<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Carsonified &#187; HTML</title>
	<atom:link href="http://carsonified.com/blog/category/dev/html/feed/" rel="self" type="application/rss+xml" />
	<link>http://carsonified.com</link>
	<description></description>
	<lastBuildDate>Wed, 17 Mar 2010 10:17:01 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>How to Design a Portfolio Site, Part 2</title>
		<link>http://carsonified.com/blog/design/how-to-design-a-portfolio-site-part-2/</link>
		<comments>http://carsonified.com/blog/design/how-to-design-a-portfolio-site-part-2/#comments</comments>
		<pubDate>Mon, 20 Jul 2009 07:00:52 +0000</pubDate>
		<dc:creator>Elliot Jay Stocks</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Dev]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Learn]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://carsonified.com/?p=2072</guid>
		<description><![CDATA[By <strong>Elliot Jay Stocks</strong><br />
Editor&#8217;s Note: Elliot will be doing a talk called &#8220;The Perfect Portfolio Site&#8221; on the FOWD Tour.
This is the second video in our two-part series focusing on how to design a killer portfolio site (feel free to check out Part One).
In Part Two you&#8217;ll learn &#8230;

How to &#8216;design in the browser&#8217;
How to take your design [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style=""><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fcarsonified.com%2Fblog%2Fdesign%2Fhow-to-design-a-portfolio-site-part-2%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fcarsonified.com%2Fblog%2Fdesign%2Fhow-to-design-a-portfolio-site-part-2%2F" height="61" width="51" /></a></div><p><img src="http://img.skitch.com/20090719-bir73e4f826wkt5krs9dct3khf.jpg" alt="Elliot talking about portfolio design" /></p>
<p><em>Editor&#8217;s Note: Elliot will be doing a talk called &#8220;The Perfect Portfolio Site&#8221; on the <a href="http://events.carsonified.com/fowd/2009/tour/">FOWD Tour</a>.</em></p>
<p>This is the second video in our two-part series focusing on how to design a killer portfolio site (feel free to <a href="http://carsonified.com/blog/design/how-to-design-a-portfolio-site/">check out Part One</a>).</p>
<p>In Part Two you&#8217;ll learn &#8230;</p>
<ol>
<li>How to &#8216;design in the browser&#8217;</li>
<li>How to take your design from Photoshop to HTML and CSS</li>
<li>How to integrate your design into a CMS like WordPress</li>
<li>How to structure your CSS files</li>
<li>How to enrich your design with CSS3</li>
<li>How to use &#8216;custom fields&#8217; in WordPress to make powerful templates</li>
<li>How to use <a href="http://webkit.org/blog/138/css-animation/">Webkit Transistions</a> to add extra beauty to your site</li>
</ol>
<p><span id="more-2072"></span></p>
<h3>30-Minute Screencast</h3>
<p>You can also <a href="http://vimeo.com/5666504">download the hi-res video</a> if you have a <a href="http://vimeo.com">Vimeo</a> account.</p>
<p><object width="471" height="294"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=5666504&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=eb6f00&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=5666504&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=eb6f00&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="471" height="294"></embed></object></p>
<img src="http://carsonified.com/?ak_action=api_record_view&id=2072&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://carsonified.com/blog/design/how-to-design-a-portfolio-site-part-2/feed/</wfw:commentRss>
		<slash:comments>41</slash:comments>
		</item>
		<item>
		<title>Six Useful Tips for Web Designers and Developers</title>
		<link>http://carsonified.com/blog/dev/six-useful-tips-for-web-designers-and-developers/</link>
		<comments>http://carsonified.com/blog/dev/six-useful-tips-for-web-designers-and-developers/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 08:27:53 +0000</pubDate>
		<dc:creator>Ryan Carson</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Dev]]></category>
		<category><![CDATA[Features]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://thinkvitamin.com/?p=1544</guid>
		<description><![CDATA[By <strong>Ryan Carson</strong><br />We&#8217;ve compiled six useful tips for all you web designers and developers out there. They cover various topics including: accessibility, SQL, web developer plugins for Firefox, HTML emails, design and jQuery.
Feel free to disagree or add your own in the comments below. If you&#8217;d like to submit a tip to be considered for future articles, [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style=""><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fcarsonified.com%2Fblog%2Fdev%2Fsix-useful-tips-for-web-designers-and-developers%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fcarsonified.com%2Fblog%2Fdev%2Fsix-useful-tips-for-web-designers-and-developers%2F" height="61" width="51" /></a></div><p>We&#8217;ve compiled six useful tips for all you web designers and developers out there. They cover various topics including: accessibility, SQL, web developer plugins for Firefox, HTML emails, design and jQuery.</p>
<p>Feel free to disagree or add your own in the comments below. If you&#8217;d like to submit a tip to be considered for future articles, just head over to <a href="http://tipster.carsonified.com">Tipster</a> and add your own.</p>
<h3><a href="http://tipster.carsonified.com/categories/accessibility/alt-tags-screen-readers/">Alt Tags and Screen Readers</a></h3>
<p>By: <a href="http://www.bitsnbobs.info/">James Fenton</a></p>
<p>I can&#8217;t claim these tips as my own, though my web accessibility hero Bim Egan (of the RNIB) recently gave me a few simple tips regarding alt tags and screen readers.</p>
<ol>
<li>Keep your alt tags as concise as possible.</li>
<li>Don&#8217;t just describe exactly what is going on in an image, describe what message it is trying to convey.</li>
<li>It is OK to leave the alt attribute blank (alt=&#8221;") as it can be more of a hindrance to blind users than a help.</li>
<li>When an image is essentially just style, use it as a background-image.</li>
</ol>
<p>Spending a few hours watching (and listening) to a blind user on the web is a mind blowing experience and will totally change how you approach accessibility</p>
<h3><a href="http://tipster.carsonified.com/categories/sql/shorter-sql-statements-by-abbreviating-table-prefi/">Shorter SQL statements by abbreviating table prefixes</a></h3>
<p>By: <a href="http://twitter.com/moonbeetle">Joris Heyndrickx</a></p>
<p>Instead of writing:</p>
<p><code>SELECT books.title, books.short, books.releasedate, authors.firstname, authors.lastname<br />
FROM books, authors<br />
WHERE books.author_id = authors.id AND authors.id = 21<br />
</code></p>
<p>You can write:</p>
<p><code>SELECT b.title, b.short, b.releasedate, a.firstname, a.lastname<br />
FROM books b, authors a<br />
WHERE b.author_id = a.id AND a.id = 21</code></p>
<h3><a href="http://tipster.carsonified.com/categories/development/my-top-6-firefox-plugins-for-web-development/">My Top 6 Firefox Plugins for Web Development</a></h3>
<p>By: <a href="http://flipstorm.co.uk/">Simon Hamp</a></p>
<p>FireBug with FirePHP FTW!</p>
<ol>
<li>FireBug (<a rel="nofollow" href="http://getfirebug.com/">getfirebug.com</a>)</li>
<li>FirePHP (<a rel="nofollow" href="http://www.firephp.org/">firephp.org</a>) req. FireBug</li>
<li>ColorZilla (<a rel="nofollow" href="http://www.colorzilla.com/firefox/">colorzilla.com/firefox/</a>)</li>
<li>HTML Validator (<a rel="nofollow" href="http://users.skynet.be/mgueury/mozilla/">users.skynet.be/mgueury/mozilla</a>)</li>
<li>YSlow (<a rel="nofollow" href="http://developer.yahoo.com/yslow/">developer.yahoo.com/yslow/</a>) req. FireBug</li>
<li>Web Developer (<a rel="nofollow" href="http://chrispederick.com/work/web-developer/">chrispederick.com/work/web-developer</a>)</li>
</ol>
<h3><a href="http://tipster.carsonified.com/categories/css/image-headers-in-table-based-html-emails/">Image headers in table based HTML Emails</a></h3>
<p>By: <a href="http://www.twitter.com/zoltarSpeaks">Pete Roome</a></p>
<p>If you have an image as a header on a table based HTML Email it is likely you will find you have a very annoying gap beneath it between your two &lt;tr&gt;&#8217;s. Simply add the following styling to your image to close this gap:</p>
<p><code>{vertical-align:bottom;}</code></p>
<h3><a href="http://tipster.carsonified.com/categories/design/lighting-effects-on-boxes/">Lighting effects on boxes</a></h3>
<p>By: <a href="http://twitter.com/get_dave">David Smith</a></p>
<p>To make a box stand out in your design simply:</p>
<ol>
<li>Choose a colour for your box</li>
<li>Create a subtle gradient starting from a slightly darker version of your colour (bottom) to a lighter version of your colour (top)</li>
<li>Make sure your gradient is SUBTLE!</li>
<li>Draw a horizontal line across the top of your box so that it spans the whole width.</li>
<li>Pick a colour from the top of your gradient and lighten it still more. Apply this colour to the line you just created.</li>
</ol>
<p>You should have an effect which looks like light is hitting the top of your box making it stand out. The blue <a href="http://tipster.carsonified.com">Tipster</a> banner uses this to good effect.</p>
<h3><a href="http://tipster.carsonified.com/categories/jquery/manual-filmstrips-in-jquery/">Manual filmstrips in jQuery</a></h3>
<p>By: <a href="http://www.michaelpeacock.co.uk/">Michael Peacock</a></p>
<p>Here&#8217;s how to create a really simple manual photo film-strip in jQuery. It can be used to swap a large image on a page with that of a thumbnail elsewhere on the page, such as different photos of a product in an e-commerce store.</p>
<p><code>$(document).ready(function(){<br />
imageSwapper(&quot;.thumbnails a&quot;);<br />
});</code></p>
<p><code>function imageSwapper(link) {<br />
$(link).click(function(){<br />
$(&#039;#largeimage&#039;).attr(&#039;src&#039;, this.href);<br />
return false;<br />
});<br />
};</code></p>
<p>Just link the thumbnails to their larger versions and pop them in a div or paragraph of class thumbnails, and give the large image an ID of large image, and you are good to go!</p>
<h3>Any tips you can add?</h3>
<p>If you have any tips you&#8217;d like to add, please do so in the comments below. Thanks!</p>
<p>[Photo Credit: <a href="http://www.flickr.com/photos/dunechaser">flickr.com/photos/dunechaser</a>]</p>
<h3>Like this article?</h3>
<p>If you enjoyed, this article, feel free to re-tweet it to let others know. Thanks, we appreciate it! :)<br />
<script type="text/javascript"><!--
tweetmeme_source = 'carsonified';
// --></script><br />
<script src="http://tweetmeme.com/i/scripts/button.js" type="text/javascript"></script></p>
<img src="http://carsonified.com/?ak_action=api_record_view&id=1544&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://carsonified.com/blog/dev/six-useful-tips-for-web-designers-and-developers/feed/</wfw:commentRss>
		<slash:comments>41</slash:comments>
		</item>
		<item>
		<title>How to Create an RSS-Enabled, Micro-Blog with Twitter</title>
		<link>http://carsonified.com/blog/web-apps/how-to-create-an-rss-enabled-micro-blog-with-twitter/</link>
		<comments>http://carsonified.com/blog/web-apps/how-to-create-an-rss-enabled-micro-blog-with-twitter/#comments</comments>
		<pubDate>Tue, 20 Jan 2009 19:59:33 +0000</pubDate>
		<dc:creator>Ryan Carson</dc:creator>
				<category><![CDATA[Features]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Social Media]]></category>
		<category><![CDATA[Web Apps]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[news feed]]></category>
		<category><![CDATA[RSS]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://thinkvitamin.com/?p=780</guid>
		<description><![CDATA[By <strong>Ryan Carson</strong><br />Have you ever wanted to create a simple multi-person blog, but didn&#8217;t want to bother setting up an entire WordPress installation? If so then we&#8217;ve got just the answer. By combining Twitter Search, Atom feeds, hash-tags and PHP, you can create an RSS-enabled, micro-blog using Twitter and be up and running in less than 10 [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style=""><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fcarsonified.com%2Fblog%2Fweb-apps%2Fhow-to-create-an-rss-enabled-micro-blog-with-twitter%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fcarsonified.com%2Fblog%2Fweb-apps%2Fhow-to-create-an-rss-enabled-micro-blog-with-twitter%2F" height="61" width="51" /></a></div><p>Have you ever wanted to create a simple multi-person blog, but didn&#8217;t want to bother setting up an entire WordPress installation? If so then we&#8217;ve got just the answer. By combining <a href="http://search.twitter.com">Twitter Search</a>, Atom feeds, hash-tags and PHP, you can create an RSS-enabled, micro-blog using Twitter and be up and running in less than 10 minutes.</p>
<p>The new <a href="http://feeds.feedburner.com/vnews">Think Vitamin news feed</a> is powered this way, so let me show you how we built it.</p>
<div class="wp-caption alignnone" style="width: 333px"><img title="Screenshot of a micro-blog" src="http://img.skitch.com/20090119-nwfaked8h5c71db9ns32dptkfp.png" alt="" width="323" height="262" /><p class="wp-caption-text">Screenshot of the Think Vitamin news feed</p></div>
<p><strong>Sign up for Twitter</strong></p>
<p>First off, make sure you and the other blog contributors have <a href="http://twitter.com">Twitter</a> accounts. It&#8217;s free and only takes two minutes to sign up.</p>
<p><strong>Choose your Hash-Tag</strong></p>
<p>The way you will post to the blog is by including a &#8216;hash-tag&#8217; in your Twitter post. For example, we chose <a href="http://search.twitter.com/search?q=%23thinkvitamin">#thinkvitamin</a> for the news feed. It can be anything, but make sure it&#8217;s not too common so you don&#8217;t pull in Tweets that are irrelevant (ie #strawberries or #obama). A great way to check is to search for potential hash-tags at <a href="http://search.twitter.com">search.twitter.com</a> and see how many times they&#8217;re used. The fewer the better.</p>
<p><strong>Create Your Atom Feed</strong></p>
<p>Head over to <a href="http://search.twitter.com">search.twitter.com</a> and type the following into the search bar:</p>
<p><code>#your-hash-tag from:user01 OR from:user02 OR from:user03</code></p>
<p>Replace &#8216;your-hash-tag&#8217; with the hash-tag you&#8217;ve chosen, and &#8216;user01&#8242;, &#8216;user02&#8242; and &#8216;user03&#8242; with the Twitter usernames of the folks who have permission to contribute to the blog. You can include as many Twitter usernames as you like.</p>
<p>This will return results from user01 or user02 or user03 where the hash-tag &#8216;#your-hash-tag&#8217; was used. Now copy the &#8216;Feed for this query&#8217; link to your clipboard (you&#8217;ll need it later).</p>
<p><a href="http://img.skitch.com/20090119-x6naumbyeueikstqkkkkwjwfgm.png"><img class="alignnone" title="Feed Query screenshoot" src="http://img.skitch.com/20090119-fpqegsdxst2j2eajysm8dsrct6.png" alt="" width="400" height="230" /></a></p>
<p><strong>Output the Atom Feed as HTML</strong></p>
<p>You can use PHP (or any language of your choice) to parse the feed and output it to a page as HTML. This is where you&#8217;ll need the feed URL you copied in the last step.</p>
<p>The file atom-html.php (<a href="http://carsonified.com/wp-content/uploads/2009/01/atom-html.zip">download the source</a>) outputs certain nodes of the Atom feed as list items in an unordered list. You can then style this list however you like. Here is an example of how to implement the code:</p>
<p><code><br />
&lt;ul&gt;<br />
&lt;?php<br />
include('atom-html.php');</code></p>
<p># The URL for the Atom feed from search.twitter.com<br />
$url = &#8220;http://search.twitter.com/search.atom?q=<br />
%23your-hash-tag+from%3Auser01+OR+from%3Auser02+OR+from%3Auser03&#8243;;</p>
<p># Create object to hold data and display output<br />
$atom_parser = new myAtomParser($url);</p>
<p># Return string containing HTML. The argument for getOutput() is the<br />
# number of items to display<br />
$output = $atom_parser-&gt;getOutput(5);<br />
echo $output;<br />
?&gt;<br />
&lt;/ul&gt;</p>
<p><strong>Count the Subscribers with FeedBurner</strong></p>
<p>It&#8217;s important to know how many subscribers you have, so make sure to pipe the Atom feed (that you created in the &#8216;Create Your Atom Feed&#8217; above) through <a href="http://feedburner.com">FeedBurner</a>. If you don&#8217;t have an account, it&#8217;s free and easy to sign up.</p>
<p>Once you have a URL from FeedBurner for your feed, make sure to include it as the &#8216;Subscribe&#8217; link in the HTML.</p>
<p><strong>What About Comments?</strong></p>
<p>We haven&#8217;t enabled any commenting on the Think Vitamin news feed, but this could be added by including a <a href="http://disqus.com">Disqus</a> snippet in the HTML output.</p>
<p><strong>That&#8217;s it.</strong></p>
<p>We told you it was easy. Let us know if you&#8217;re currently using Twitter on any of your sites in an interesting way.</p>
<img src="http://carsonified.com/?ak_action=api_record_view&id=780&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://carsonified.com/blog/web-apps/how-to-create-an-rss-enabled-micro-blog-with-twitter/feed/</wfw:commentRss>
		<slash:comments>322</slash:comments>
		</item>
		<item>
		<title>Don&#8217;t be the Weakest Hypertext Link</title>
		<link>http://carsonified.com/blog/dev/dont-be-the-weakest-link/</link>
		<comments>http://carsonified.com/blog/dev/dont-be-the-weakest-link/#comments</comments>
		<pubDate>Tue, 30 Jan 2007 08:34:57 +0000</pubDate>
		<dc:creator>Paul Boag</dc:creator>
				<category><![CDATA[Dev]]></category>
		<category><![CDATA[Features]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[link tag]]></category>

		<guid isPermaLink="false">http://www.thinkvitamin.com/features/design/dont-be-the-weakest-link</guid>
		<description><![CDATA[By <strong>Paul Boag</strong><br />In a world of social participation, AJAX and rich user experience, the humble hypertext link can seem so web 1.0. However, this often-neglected tag is the fundamental building block of every web application and is in the front line for usability. This article seeks to re-evaluate its role and suggest some best practice for its [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style=""><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fcarsonified.com%2Fblog%2Fdev%2Fdont-be-the-weakest-link%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fcarsonified.com%2Fblog%2Fdev%2Fdont-be-the-weakest-link%2F" height="61" width="51" /></a></div><p>In a world of social participation, AJAX and rich user experience, the humble hypertext link can seem so web 1.0. However, this often-neglected tag is the fundamental building block of every web application and is in the front line for usability. This article seeks to re-evaluate its role and suggest some best practice for its use.</p>
<p>Let&#8217;s be honest, the hypertext link isn&#8217;t very sexy. Familiarity breeds contempt the saying goes and this is certainly true for the &#8216;a&#8217; tag. Every day we code it many times over without giving it a second thought. Unfortunately, as web designers we can often become sloppy when working with links and start to take liberties with the way we implement them. Not only is it incredibly common, it is also very simple: after all, its just a link.  And at the other end of the scale you can find all manner of creatively styled solutions.</p>
<p>So in order to redress the balance I will endeavour to lay out some good practice here.</p>
<h3>Make it descriptive</h3>
<p>The content of a link should always clearly describe where the link goes. Simple stuff I know, however its amazing how often this most basic of principles is ignored. How many times do we see links with labels such as click here and more?</p>
<p>The enlightened will know that links like this create accessibility problems when read out of context by assertive technologies. In fact there is a W3C accessibility guideline that specifically addresses this issue (checkpoint 13.1): </p>
<blockquote><p>Clearly identify the target of each link </p>
</blockquote>
<p>However, instead of addressing the problem properly, some people simply add an additional title attribute to the existing links in the belief that this satisfies the guideline. In fact the W3C recommendations go on to say:</p>
<blockquote><p>In addition to clear link text, content developers may further clarify the target of a link with an informative link title </p>
</blockquote>
<p>In other words, the title attribute is a useful addition to a clearly labelled link, but not a replacement.</p>
<p>The problem isnt merely an accessibility issue. There are also significant usability concerns. We all know that users dont read websites, they scan them. When users are scanning a page they look for things like headings, lists and more often than not, links. Because the reader is scanning the page they often do not read the text surrounding a link and so (once again) the link needs to make sense out of context. The user is not going to hover over each link to see what the title attribute says!</p>
<p>Of course, as with everything, we need to be pragmatic about how we implement this. Sometimes it would be necessary to turn several sentences into a link in order to make it truly descriptive. In such cases I would encourage some common sense and good use of the title attribute instead. However the general principle stands; wherever possible make your links descriptive.</p>
<h3>Keep users informed</h3>
<p>Not only should a link describe its destination, it should also inform the user about any unusual behaviour. Probably the most obvious example is that it is important to inform the user when spawning a new window. This ensures you conform to checkpoint 10.1: </p>
<blockquote><p>Until user agents allow users to turn off spawned windows, do not cause pop-ups or other windows to appear and do not change the current window without informing the user.</p>
</blockquote>
<p>However, there are other occasions where the user requires additional information. For example, if a link goes to a file that is not a standards HTML page (such as a PDF, MP3 etc) then it is important to inform the user of this. Additional information such as the type of file, its size and what information it contains helps the user make a decision on whether they should follow the link or not.</p>
<p>How this information is displayed needs to be decided on a site-by-site basis. However, a typical approach might consist of adding the information as a title attribute or including it after the main link text within brackets.</p>
<h3>Leave the underline alone! </h3>
<p>Links can seem so boring. Blue by default, purple when visited, always underlined. Where&#8217;s the fun in that? As a result, we can be tempted to look for ways to make them more interesting. I am constantly amazed at the different ways we have found to mess with the underlining of links. Let&#8217;s look at a few of them and see why they can be such a bad idea.</p>
<h4>Replacing the underline with a border-bottom</h4>
<p>I have noticed a growing trend among designers to replace the standard underlining of a link with a bottom border defined in CSS. The argument is that this improves legibility because the default underline clips the descenders of certain characters. Although this is true and a border is often much more attractive, I have concerns about the accessibility of this approach.</p>
<p>The problem is that some user agents have less than perfect CSS support and fail to render the bottom border. This makes it significantly harder to identify links, especially if you have some form of visual impairment.</p>
<p>I have seen the problem occur with Internet Explorer 5 (which one could argue is becoming less of an issue) but also on a number of mobile devices, which is a much more significant problem.</p>
<p>Generally speaking it is unwise to override the browsers default behaviour and so although I wouldnt rule this approach out entirely, I would suggest some degree of caution.</p>
<h4>Replacing the underline with a dotted line </h4>
<p>An even more worrying trend is the replacement of the traditional solid underline with a dotted border instead. This is most commonly used to distinguish between visited and unvisited links where visited links have the less prominent dotted underline. </p>
<p>Not only does this suffer from the same accessibility problem mentioned above, it also causes confusion among users as it doesnt conform to their expectations of what a link should look like. Because it is unfamiliar, users doubt whether it is still actually a link. This doubt is reinforced by the fact that a dotted underline is the default browser rendering (within some browsers) for acronyms and abbreviations. </p>
<h4>Striking through visited links </h4>
<p>Another popular approach these days is to put a line through visited links in much the same way you would cross out an item on a to-do list. Of course this is a fundamentally flawed analogy because unlike a to-do list a user could well wish to revisit a page they have previous viewed. By striking through a visited link designers are making it considerably harder to read and therefore more difficult to find, previously visited pages.</p>
<p>The idea of striking through a link is not without its merits however. After all, you could argue that simply indicating visited links by colour does in fact break accessibility checkpoint 2.1: </p>
<blockquote><p>Ensure that all information conveyed with colour is also available without colour, for example from context or markup.</p>
</blockquote>
<p>Although this point is debatable, the principle of providing a non-colour based visual indicator of visited links is a good one. However, striking through the link is not the answer. Instead, consider adding an icon such as a tick immediately before or after the link. This approach does not obscure the text of the link but still communicates the concept that this page has been visited.</p>
<h4>Removing the underline entirely </h4>
<p>Although the abuses of the underline that I have outlined above are bad, they do at least give an indication to the user that &#8220;this is a link&#8221;. However, a growing number of sites are choosing to remove the underline entirely so leaving the user to guess as to what text is actually a link. Relying on the user to identify links by colour alone is not an advisable approach. At the very minimum they need some other visual cue that something is a link and the underline is the standard convention for this.</p>
<h3>Ensure legibility</h3>
<p>We have already discussed the problems associated with &#8217;striking through&#8217; a link. Another common practice is to &#8216;fade out&#8217; visited links in order to make them less prominent. The problem with this approach is that it assumes users are not going to be seeking ways to return to previously visited pages. Users still need to be able to clearly read visited links and so they need to have sufficient contrast with background colours. </p>
<p>Indeed, all links (both visited and unvisited) need sufficient contrast in order to conform to accessibility checkpoint 2.2: </p>
<blockquote><p>Ensure that foreground and background colour combinations provide sufficient contrast when viewed by someone having colour deficits or when viewed on a black and white screen. </p>
</blockquote>
<h3>Use clean semantic markup </h3>
<p>The majority of this article has focused on the content of your link or how it is visually displayed. However, it is just as important to ensure that your link is properly marked up. </p>
<p>Although we all know how to create an &#8216;a&#8217; tag it is still remarkably common to find this simple piece of code being abused. The most common culprits are the addition of style or behaviour elements into our code.</p>
<p>Let me give you an example of what I mean. Setting aside the &#8216;ethical&#8217; debates about whether this is a good idea, it is not uncommon for links to external sites to open in a new window. I have encountered many sites that include code like this: </p>
<pre>
<code>

&lt;a href="javascript:window.open(http://www.boagworld.com)" style="background: url(external.gif) no-repeat right;" &gt;Boagworld&lt;/a&gt;

</code>
</pre>
<p>When in actual fact the HTML could be as simple as this: </p>
<pre>
<code>
&lt;a href="http://www.boagworld.com"&gt;Boagworld&lt;/a&gt;

</code>
</pre>
<p>The rest could be managed using external style sheets and Javascript includes. A Javascript function could easily scan through all of the links on a page identifying those that link to an external domain. It could then override the default behaviour and open that link in a new window while at the same time applying the visual styling to the link. </p>
<p>This approach is the principle of Unobtrusive Javascript and provides many benefits most of which are beyond the scope of this article. However, it is worth noting that not only is your code cleaner, but this approach also allows you to change the default behaviour of your links without having to edit every link on the site. </p>
<p>Finally, this article would not be complete without briefly mentioning the application of Microformats to link elements. Like Unobtrusive Javascript, Microformats are far too broad a discussion to cover here (but <a href="http://www.thinkvitamin.com/features/design/how-to-use-microformats">read John Alsopps article</a> for a comprehensive overview). </p>
<p>However, it is worth noting that it is possible to add a vast amount of semantic meanings to links simply by marking them up as Microformats. Through Microformats you can specify whether a link relates to creative common licenses, or whether it contains contact or event information. You can review links, tag links or even explain your relationship with the website owner being linked to. Although Microformats are still in relative infancy, the potential for building applications that leverage all of this hidden meaning is immense. Best of all, this is achievable by simply adding some extra attributes to the humble &#8216;a&#8217; tag. </p>
<h3>A fundamental tool </h3>
<p>Hopefully this article has given you a renewed respect for the humble hypertext link and helped you recognised the fundamental role it plays.</p>
<p>I know that throughout much of it, I have sounded like a killjoy, intent on crushing any creativity in your design. But I think it is important to remember that our job is to improve usability not produce a piece of modern art. The majority of people using the web lack confidence. To them every time they go to a different site they are faced with a new and strange user interface. We have no right to undermine one of the few consistencies they have between sites&#8230; the humble hypertext link.</p>
<p><img src="http://www.digg.com/img/digg-guy-small.gif" alt="digg.com logo" /> Like this article? <a href="http://digg.com/design/Dont_be_the_weakest_link">Digg it</a>!</p>
<img src="http://carsonified.com/?ak_action=api_record_view&id=1733&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://carsonified.com/blog/dev/dont-be-the-weakest-link/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Bye-bye to Boring Page Footers</title>
		<link>http://carsonified.com/blog/carsonified/features/bye-bye-to-boring-page-footers/</link>
		<comments>http://carsonified.com/blog/carsonified/features/bye-bye-to-boring-page-footers/#comments</comments>
		<pubDate>Mon, 04 Dec 2006 08:39:51 +0000</pubDate>
		<dc:creator>Simon Collison</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Features]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[page footers]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://www.thinkvitamin.com/features/css/bye-bye-to-boring-page-footers</guid>
		<description><![CDATA[By <strong>Simon Collison</strong><br />Gone are the days when a footer merely ended the page. Now it is just as likely to be an all-encompassing launchpad to other areas of the site. Typically a footer will run the full length of the layout, and it is usually used to display information at the bottom of the content hierarchy, such [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style=""><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fcarsonified.com%2Fblog%2Fcarsonified%2Ffeatures%2Fbye-bye-to-boring-page-footers%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fcarsonified.com%2Fblog%2Fcarsonified%2Ffeatures%2Fbye-bye-to-boring-page-footers%2F" height="61" width="51" /></a></div><p>Gone are the days when a footer merely ended the page. Now it is just as likely to be an all-encompassing launchpad to other areas of the site. Typically a footer will run the full length of the layout, and it is usually used to display information at the bottom of the content hierarchy, such as copyright information, accessibility or validation information, and possibly contact details or company legal information.</p>
<p>For the quirky footer, the aim is to use a large background image that blurs the boundary between column area and footer, by acknowledging the background color of the page and having it influence the footer. In this case, the white background of the page becomes the bubble coming out of my mouth.</p>
<p>Let&#8217;s go through this idea step by step, but consider how you could use an equally inventive image to make your footers that bit quirkier. Armed with a correctly-sized image and some well-styled text, the dull footer can be consigned to history.</p>
<h3>Prepare the Footer Markup</h3>
<p>The first task is to add the information that you want to show in the footer. At this stage, you should not be thinking about the presentation, only the important stuff &#8211; the content. Here, it is important to show copyright information and other site acknowledgments, so these go into the markup inside paragraphs.</p>
<pre><code>
<div id="footer">

Copyright Simon Collison 2006

Made with the finest <a href="">XHTML</a> and <a href="">CSS</a>.

Content protected with a <a href="">Creative Commons</a> license. Some rights reserved.
</div>

</code></pre>
<p>The idea is that whatever madness you use to make the footer seem all wacky and zany, the actual markup is never compromised. Basically, I know I&#8217;m going to place the information in a comedy bubble, but at no point should I limit the amount of information because I fear it might not fit the graphic. Content is always more important than presentation &#8211; but you already know that.</p>
<h3>Apply the Background Image</h3>
<p>The aim here is to make it look as if I&#8217;m speaking the information, so a speech bubble graphic is created. This graphic is exactly the same width as the layout (760 pixels), and has ended up being 128 pixels in height. As you&#8217;ll see in Figure 1, the author needs a shave.</p>
<p><img src="http://www.thinkvitamin.com/images/articles/features/quirky-footer/collison_footer_1.gif" alt="The image used as a background for our footer" /></p>
<p><em>Figure 1: Customized background image for the footer. Simon says&#8230;</em></p>
<p>Now the CSS. The first task is to ensure that there is no internal padding for the footer, or left or right margins. This ensures that the image will sit perfectly, and that any element to be placed within can be positioned using its own CSS rules to avoid confusion. </p>
<p>Next, the background image is declared and set to <code>no-repeat</code>. Sure, it&#8217;s the same size as the container, but it is worth ensuring there will be no hint of tiling. Finally, the height of the footer is adjusted to match the height of the image.</p>
<pre><code>
            /* Footer */
              #footer {
                clear:both;
                 margin:10px 0 0 0;
                 background:url(/images/bubble_footer.jpg) no-repeat;
                 height:128px;
                 width:760px;
                 }
</code></pre>
<p>Figure 2 shows the result in the browser. Note that the juxtaposition of image and text is OK, but not quite right. Longer paragraphs extend beyond the boundary of the speech bubble.  </p>
<p><img src="http://www.thinkvitamin.com/images/articles/features/quirky-footer/collison_footer_2.gif" alt="Image showing the height of the footer set to background image height" /></p>
<p><em>Figure 2: The paragraphs are too long, extending outside of the bubble.</em></p>
<h3>Fine-Tune the Paragraphs </h3>
<p>This exact placement of the paragraphs can be controlled by first using 15 pixels of padding at the top of the footer to shunt the first paragraph down further into the bubble, and then by defining properties for all paragraphs that appear inside the footer. The key values are for the paragraph margins, and these can be tweaked until the exact effect is achieved.</p>
<p>Most importantly, the paragraphs are given a <code>width</code>, which is just a bit shorter than the average distance between the left side of the footer and the curve of the bubble. This <code>width</code> declaration will force the text to wrap way before it reaches the curve.</p>
<pre><code>

           /* Footer */
             #footer {
               clear:both;
               margin:10px 0 0 0;
               <strong>padding-top:15px;</strong>
               background:url(/images/bubble_footer.jpg) no-repeat;
               height:128px;
               width:760px;
               }
             <strong>#footer p {
               margin:0 0 6px 35px;
               padding:0;
               width:330px;
               font:13px/120% normal Verdana,Arial,sans-serif;
               }</strong>
</code></pre>
<p>The final result is shown in Figure 3, as it would appear in the base of the browser window. It is possible that if more text were used, the paragraph margins and <code>width</code> might need adjusting as the curve sharpens, but it is fine for this example, and the quirky footer is achieved with minimal effort.</p>
<p><img src="http://www.thinkvitamin.com/images/articles/features/quirky-footer/collison_footer_3.gif" alt="Image showing the finished footer" /></p>
<p><em>Figure 3: Simon says, &#8220;Touch this code, and I&#8217;ll find you&#8230;&#8221;</em></p>
<p class="diggit"><img src="http://www.digg.com/img/digg-guy-small.gif" alt="digg.com logo" /> Like this article? <a href="http://digg.com/design/Bye_bye_to_boring_page_footers">Digg it</a>!</p>
<h3>The Book</h3>
<p>This feature is an excerpt from &#8216;Beginning CSS Web Development: From Novice to Professional&#8217; by Simon Collison. This book will quickly see you on your way to building rich CSS layouts, plus it has advice on common tricks and troubles. In the next part of this chapter, you&#8217;ll learn how to create advanced footers, such as this one from Derek Powazek. Order the book <a href="http://www.amazon.com/Beginning-CSS-Web-Development-Professional/dp/1590596897/sr=8-1/qid=1165257477/ref=pd_bbs_sr_1/103-0033148-7384674?ie=UTF8&#038;s=books">here</a>.</p>
<p><img src="http://www.thinkvitamin.com/images/articles/features/quirky-footer/collison_footer_4.gif" alt="Image showing example of action-packed footer from Derek Powazek" /></p>
<img src="http://carsonified.com/?ak_action=api_record_view&id=1728&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://carsonified.com/blog/carsonified/features/bye-bye-to-boring-page-footers/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
