<?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>Joe Dolson Accessible Web Design &#187; Usability</title>
	<atom:link href="http://www.joedolson.com/articles/category/web-development/usability/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.joedolson.com/articles</link>
	<description>Tips and Commentary on Web Accessibility, Usability, and Search Marketing best practices.</description>
	<lastBuildDate>Thu, 02 Feb 2012 18:13:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Make those links clickable, please!</title>
		<link>http://www.joedolson.com/articles/2010/12/make-those-links-clickable-please/</link>
		<comments>http://www.joedolson.com/articles/2010/12/make-those-links-clickable-please/#comments</comments>
		<pubDate>Sat, 04 Dec 2010 18:02:26 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Usability]]></category>
		<category><![CDATA[color]]></category>
		<category><![CDATA[links]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/?p=880</guid>
		<description><![CDATA[Some time ago, I ran across an interesting post on Clients from&#160;Hell: Website user who couldn’t find an article emailed our help desk. We sent him the link to the content he couldn’t&#160;find. Client: “Please change the letters in your email to blue, so I can click the&#160;link.” Clients from&#160;Hell While this was intended to [...]<p><strong><a href="http://www.joedolson.com/articles/2010/12/make-those-links-clickable-please/">Make those links clickable, please!</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2011 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<p>Some time ago, I ran across an interesting post on Clients from&nbsp;Hell:</p>
<blockquote>
<p>Website user who couldn’t find an article emailed our help desk. We sent him the link to the content he couldn’t&nbsp;find. </p>
<p><strong>Client</strong>: “Please change the letters in your email to blue, so I can click the&nbsp;link.”</p>
<p><a href="http://clientsfromhell.net/post/1455389455/website-user-who-couldnt-find-an-article-emailed">Clients from&nbsp;Hell</a></p>
</blockquote>
<p>While this was intended to ridicule a misunderstanding&thinsp;&#8212;&thinsp;that the client couldn&#8217;t click the link unless the letters were blue&thinsp;&#8212;&thinsp;it does stand to illustrate a real problem with usability. Even though there may be relatively few people who actually experience the exact problem above, there are undoubtedly many people who could fail to realize that text is a link when it doesn&#8217;t conform to their&nbsp;expectations. </p>
<p>It&#8217;s not just whether or not your links are blue&thinsp;&#8212;&thinsp;there&#8217;s also an issue with internal consistency. If you&#8217;ve made a decision that links will be something other than blue, people can learn that. But you may want to consider being internally consistent with that change&thinsp;&#8212;&thinsp;I&#8217;ve seen many web sites where different areas of the page change the coloration of links: sidebar links are gray, body links orange, footer links black,&nbsp;etc. </p>
<p>Regions of the page specifically dedicated to navigation can frequently get away with alternate appearances, but having a different link scheme all around the site is very likely to just confuse. Inconsistent coloration, inconsistent use of text underlining, or minimal hover or focus changes can all serve to reduce the usability of your web site in significant&nbsp;ways. </p>
<p>Do links need to be blue? No, not really. If you insist on always having links blue you&#8217;re going to limit your design options in more ways than are really likely to be beneficial. However, if blue links won&#8217;t compromise the design, there&#8217;s really no reason not to use&nbsp;them. </p>
<p>Keeping basic usability in mind at every stage of design is just a good idea&thinsp;&#8212;&thinsp;at least, if you&#8217;re going for a successful web site!
<p><strong><a href="http://www.joedolson.com/articles/2010/12/make-those-links-clickable-please/">Make those links clickable, please!</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2011 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2010/12/make-those-links-clickable-please/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Usability testing isn’t for you? Really?</title>
		<link>http://www.joedolson.com/articles/2010/10/usability-testing-isnt-for-you-really/</link>
		<comments>http://www.joedolson.com/articles/2010/10/usability-testing-isnt-for-you-really/#comments</comments>
		<pubDate>Mon, 18 Oct 2010 21:32:14 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Usability]]></category>
		<category><![CDATA[usability testing]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/?p=588</guid>
		<description><![CDATA[Whenever somebody tells me that they really don&#8217;t see the point in doing usability testing on their web site, I can&#8217;t help myself from asking why. Let&#8217;s be honest here&#8201;&#8212;&#8201;what&#8217;s a really good reason for skipping usability testing? The first thing that comes to my mind, of course, is because you&#8217;ve just finished a major [...]<p><strong><a href="http://www.joedolson.com/articles/2010/10/usability-testing-isnt-for-you-really/">Usability testing isn’t for you? Really?</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2011 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<p>Whenever somebody tells me that they really don&#8217;t see the point in doing usability testing on their web site, I can&#8217;t help myself from asking why. Let&#8217;s be honest here&thinsp;&#8212;&thinsp;what&#8217;s a really good reason for skipping usability testing? The first thing that comes to my mind, of course, is because you&#8217;ve just finished a major usability review. I can understand wanting to give it a skip if you&#8217;ve just gone through the usability testing&nbsp;process!</p>
<p>But, surprisingly, that&#8217;s not the response I actually hear from people. Actually, the most common reasons are very&nbsp;simple: </p>
<ol>
<li>I&#8217;ve never had a problem with&nbsp;it</li>
<li>Nobody&#8217;s every complained about a&nbsp;problem</li>
</ol>
<p>Unfortunately, both of these justifications are problematic. They really aren&#8217;t a good reason for passing on usability. See, usability isn&#8217;t just about whether or not something worked; it&#8217;s also about what happens when a process doesn&#8217;t work out. It&#8217;s not about whether <em>you</em> made it through the process, it&#8217;s about how easy it is to make it through process. You&#8217;re pretty well guaranteed to be out of the running in testing your web site&thinsp;&#8212;&thinsp;because you actually know how your web site is supposed to&nbsp;work. </p>
<p>If you know that a field takes a particular data format&thinsp;&#8211;&thinsp;say, a five-digit postal code&thinsp;&#8211;&thinsp;then you&#8217;re going to tend to provide what you know the web site wants. It&#8217;s what happens when you don&#8217;t already know the system which is more&nbsp;educational. </p>
<p>This is certainly a frustrating aspect to usability&thinsp;&#8211;&thinsp;no arguments there. But you can&#8217;t escape it: if you have inside knowledge about a system, you&#8217;re just the wrong person to test it. Obviously, this means that problems that other users have are an important element to pay attention&nbsp;to. </p>
<p>However, a lack of reported problems is not at all the same as not having&nbsp;problems.</p>
<p>Nobody&#8217;s ever complained about a problem with your web site? That&#8217;s not a certainty of any sort. It could be a different kind of issue&thinsp;&#8212;&thinsp;rather than having problems which are very clear cut, such as an inability to enter an international address, you may be experiencing time-out frustrations or issues with a particular payment type being rejected. Or perhaps the problem is actually with the ability to report problems&thinsp;&#8212;&thinsp;maybe you haven&#8217;t provided an obvious means for people to contact you. Perhaps there&#8217;s actually a problem with your contact method itself&thinsp;&#8212;&thinsp;negative evidence is essentially worthless. All you can conclude from an absense of complaints is that nobody has delivered a complaint to you. You don&#8217;t know that they didn&#8217;t try, and you don&#8217;t know that they didn&#8217;t have a&nbsp;problem. </p>
<p>And finally, having a problem isn&#8217;t exactly what usability is trying to&nbsp;fix. </p>
<p>Your users may not be having any problems&thinsp;&#8212;&thinsp;they don&#8217;t have anything concrete to complain about. However, because your purchase process is onerous, a large percentage of those who begin the purchase fail to complete it. They may not have had an actual problem&thinsp;&#8212;&thinsp;they just decided that using your web site was <em>too much&nbsp;work</em>. </p>
<p>Maybe they&#8217;re just lazy&thinsp;&#8212;&thinsp;but if you&#8217;ve got lazy prospects, your site needs to work harder at keeping them around. Don&#8217;t let your web site slack off.
<p><strong><a href="http://www.joedolson.com/articles/2010/10/usability-testing-isnt-for-you-really/">Usability testing isn’t for you? Really?</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2011 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2010/10/usability-testing-isnt-for-you-really/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>&#8220;Selling Usability,&#8221; by John Rhodes.</title>
		<link>http://www.joedolson.com/articles/2009/04/selling-usability-by-john-rhodes/</link>
		<comments>http://www.joedolson.com/articles/2009/04/selling-usability-by-john-rhodes/#comments</comments>
		<pubDate>Wed, 01 Apr 2009 14:20:31 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/?p=503</guid>
		<description><![CDATA[The worst thing I can say about John Rhodes is that the writing coming from his usability blog has been alarmingly infrequent in the last couple of years. 13 posts in the last 12 months just doesn&#8217;t really cut&#160;it! Thankfully, the reason for his blogging silence is pretty straightforward: he&#8217;s been writing a book.&#160;Sweet! The [...]<p><strong><a href="http://www.joedolson.com/articles/2009/04/selling-usability-by-john-rhodes/">&#8220;Selling Usability,&#8221; by John Rhodes.</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2011 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.amazon.com/gp/product/1442103736?ie=UTF8&#038;tag=joedolsonacce-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=1442103736"><img src="http://ecx.images-amazon.com/images/I/41klH6Jyj5L._SL500_AA240_.jpg" alt="Selling Usability: User Experience Infiltration Tactics" class="floatright" /></a> The worst thing I can say about John Rhodes is that the writing coming from <a href="http://www.webword.com/wp/">his usability blog</a> has been alarmingly infrequent in the last couple of years. 13 posts in the last 12 months just doesn&#8217;t really cut&nbsp;it!</p>
<p>Thankfully, the reason for his blogging silence is pretty straightforward: he&#8217;s been writing a book.&nbsp;<strong>Sweet</strong>!</p>
<p>The book is entitled &#8220;Selling Usability,&#8221; which is a bit of a misnomer, since the subject of the book is perhaps more accurately described as &#8220;Making Usability Happen, Despite the Regrettable Lack of Understanding on the Part of Your Managers.&#8221; To be fair, that would be a pretty unusable&nbsp;title. </p>
<p>It&#8217;s clear within the first 20 pages that John and I share a core philosophy concerning the application of usability: as much as you&#8217;d like people to buy in to the core ideals of user experience, you <em>need</em> them to buy in to making the change. By hook or by crook, making the change is what needs to happen in the&nbsp;end.</p>
<p>You can only teach those who are willing to learn; but you can guide anybody to the right decision if you use the arguments they understand and care&nbsp;about. </p>
<p><a href="http://www.amazon.com/gp/product/1442103736?ie=UTF8&#038;tag=joedolsonacce-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=1442103736">Selling Usability: User Experience Infiltration Tactics</a> is a guide to convincing decision-makers towards user-experience focused decisions by using business-focused arguments and&nbsp;tactics. </p>
<p><span class="dquo">&#8220;</span>Selling Usability&#8221; is about communicating&nbsp;effectively. </p>
<p>John&#8217;s writing is frank and clear. He writes in a casually persuasive voice which quickly drives through the description of a problem into the analysis of <em>why</em> this is a problem&thinsp;&#8212;&thinsp;and how you might start to solve&nbsp;it.</p>
<p>This book is <em>not</em> about usability. You&#8217;ll learn a lot about <em>understanding</em> and <em>communicating</em> the user experience by reading this book, but it&#8217;s not going to teach you how to study user&nbsp;interaction. </p>
<p><a href="http://www.amazon.com/gp/product/1442103736?ie=UTF8&#038;tag=joedolsonacce-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=1442103736">Buy it now</a>. You&#8217;ll learn more than you think you will, no matter your&nbsp;background.</p>
<p><strong><a href="http://www.joedolson.com/articles/2009/04/selling-usability-by-john-rhodes/"><span class="dquo">&#8220;</span>Selling Usability,&#8221; by John Rhodes.</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2011 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2009/04/selling-usability-by-john-rhodes/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Best Practices in Web Development: Part 5</title>
		<link>http://www.joedolson.com/articles/2008/09/best-practices-in-web-development-part-5/</link>
		<comments>http://www.joedolson.com/articles/2008/09/best-practices-in-web-development-part-5/#comments</comments>
		<pubDate>Fri, 05 Sep 2008 13:46:49 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Usability]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[error management]]></category>
		<category><![CDATA[interaction design]]></category>
		<category><![CDATA[site administration]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/?p=280</guid>
		<description><![CDATA[Part 1 (Contracts, Site Requirements,Information&#160;Architecture) Part 2 (Hosting and&#160;Security) Part 3 (Navigation,&#160;Scent) Part 4 (Semantics, Structure vs. Design, Universal&#160;design) Part 5 (Interaction, Errors, and&#160;Administration) After all the labor you put into designing an elegant site which allows users to readily follow the scent of information, all the work dedicated to developing effective semantics and separating [...]<p><strong><a href="http://www.joedolson.com/articles/2008/09/best-practices-in-web-development-part-5/">Best Practices in Web Development: Part 5</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2011 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<div class="aside">
<ul>
<li><a href="http://www.joedolson.com/articles/2008/08/best-practices-in-web-development-part-1/">Part 1</a> (Contracts, Site Requirements,Information&nbsp;Architecture)</li>
<li><a href="http://www.joedolson.com/articles/2008/08/best-practices-in-web-development-part-2/">Part 2</a> (Hosting and&nbsp;Security)</li>
<li><a href="http://www.joedolson.com/articles/2008/08/best-practices-in-web-development-part-3/">Part 3</a> (Navigation,&nbsp;Scent)</li>
<li><a href="http://www.joedolson.com/articles/2008/09/best-practices-in-web-development-part-4/">Part 4</a> (Semantics, Structure vs. Design, Universal&nbsp;design)</li>
<li>Part 5 (Interaction, Errors, and&nbsp;Administration)</li>
</ul>
</div>
<p>After all the labor you put into designing an elegant site which allows users to readily follow the scent of information, all the work dedicated to developing effective semantics and separating your structure from design, it&#8217;s easy for you to still end up with a royally screwed up web&nbsp;site. </p>
<p>Designing interactions with your users and managing errors (expected and unexpected) are a critical part of best practices web development. It hardly matters at all whether somebody can find their way to the right information if they encounter so many problems along the way that they lose trust in your site or give up on their purchase out of&nbsp;frustration!</p>
<p>It&#8217;s not that difficult to keep user interactions running smoothly, if you just keep a few basic rules firmly in&nbsp;mind:</p>
<ul>
<li>Your users don&#8217;t <em>care</em> about error&nbsp;codes.</li>
<li>Messages should tell people what to do next, not what they did&nbsp;wrong.</li>
<li>Every action taken by a user should have a&nbsp;response.</li>
<li>Users <em>will</em> do the things you can&#8217;t imagine them&nbsp;doing.</li>
<li>If you&#8217;re going to <em>require</em> something, you better mean&nbsp;it.</li>
</ul>
<h3 id="interaction">Interaction&nbsp;Design</h3>
<p>Even the most static web site has interactive features. If your site has a single hyperlink, there&#8217;s interaction built into your site. A very small amount of interaction, granted, but there is interaction. The interaction information you can communicate using that single link is based on five specific&nbsp;states:</p>
<ol>
<li><code>link</code>: A link in it&#8217;s normative, unactivated&nbsp;state.</li>
<li><code>hover</code>: The state of the link while a mouse-type pointer is hovering over&nbsp;it.</li>
<li><code>focus</code>: In most browsers, the state of the link when focus is placed on the link by means other than a mouse-type&nbsp;pointer.</li>
<li><code>active</code>: In most browsers, the state of the link while the requested action takes&nbsp;place.</li>
<li><code>visited</code>: The state of the link after the action is&nbsp;completed.</li>
</ol>
<p><abbr title="HyperText Markup Language">HTML</abbr> doesn&#8217;t provide a lot of options by default, but these four pieces of information are critical to making basic interactions effective for all users. Simply communicating to the user that what they are doing has an effect is&nbsp;invaluable.</p>
<p>Similarly, providing interactive information when no interaction is possible can be very confusing. Simply put: if the user can do something with a control, give them information (scent, anybody?) which indicates that <em>this</em> area has a function. If the control is a link, you are able to ensure that&nbsp;it:</p>
<ul>
<li>has an appearance different from the surrounding text (blue,&nbsp;underlined,)</li>
<li>provides information to mouse users that they are in a position to activate the&nbsp;control</li>
<li>provides information to keyboard or alternative devices users that they have focused on the&nbsp;control</li>
<li>indicates that you have performed an action, and that the link is&nbsp;activated</li>
<li>indicates that the control has been&nbsp;used.</li>
</ul>
<p>Now, from a practical perspective, this much information isn&#8217;t always necessary or helpful. For basic links, it&#8217;s rarely necessary to differentiate between <code>hover</code> states and <code>active</code> states. Because of flaws in Internet Explorer&#8217;s use of these commands, it&#8217;s frequently <em>necessary</em> to assign the same appearance to <code>active</code> and <code>focus</code>&nbsp;states. </p>
<p>Nonetheless, the basic principles at work in these five states are valuable, and can be used to guide your approach to interaction design. Simply keeping in mind that form inputs and script responses are not the <em>only</em> ways to communicate interactively with your users will help you shape the behavior of interactive&nbsp;pages.</p>
<h3 id="errors">Error&nbsp;Management</h3>
<p>The possibilities for errors in any complex project are endless, so I&#8217;m going to contain myself to a very simple example: a standard contact form. Possibly the most standard expectation for many sites is a means for the visitor to contact the site owner (or whatever appropriate person is involved.) Although providing a phone number and address is generally expected&thinsp;&#8212;&thinsp;it may not be the preferred means of communication for either party. Since email addresses are essentially a big, open invitation to spam, contact forms are left as the best method of defining a way for visitors to contact&nbsp;you.</p>
<p>The basic contact form I&#8217;m going to discuss is asking for four pieces of information: a name, an email address, a phone number (which is optional,) and a written message. It&#8217;s not a lot of information, but still leaves a lot of room for screwing&nbsp;up.</p>
<p>When creating a programming example of this form, all that&#8217;s generally covered is the basics: how to gather the information in a form and send it to an end user (usually, by email.) This is the core functionality of a contact form, so it&#8217;s reasonable that it&#8217;s the first thing to be&nbsp;covered. </p>
<p>This is only a problem if you stop programming before working through the rest of the&nbsp;scenario. </p>
<p>Depending on how it&#8217;s written, the program described above will do one of two things on being submitted: display a blank screen to the user, or show itself again, with the information submitted removed from the fields. Neither of these options are particularly palatable by themselves, but they each serve a purpose in providing best practice responses to the&nbsp;users.</p>
<p>First, let&#8217;s assume that the user is making a <em>lot</em> of errors. They&#8217;re putting a phone number in the name field, gave a web address for an email, and left out their message&nbsp;entirely.</p>
<p>Without any data checking, this message may simply be sent off: the site owner gets useless information, and the visitor wonders why that damned site owner never answers his&nbsp;email.</p>
<p>Obviously, doing a little data checking is good for more than just security: it helps make sure that you&#8217;ll actually get the information you needed from the&nbsp;form.</p>
<p>Now, having checked this information, we want to let the user know that something just wasn&#8217;t working quite right. But this is a crucial thing to do right&thinsp;&#8212;&thinsp;I&#8217;m sure we&#8217;ve all been to forms where one of the following&nbsp;happened:</p>
<ul>
<li>The error message didn&#8217;t tell you what your errors were, and requires you to use the Back button to return to the&nbsp;form.</li>
<li>The error message doesn&#8217;t tell you the errors, and <em>deleted</em> all the work you did with the&nbsp;form.</li>
<li>The error message tells you what errors you made, but <em>doesn&#8217;t</em> tell you that it also blanked the password field (which was&nbsp;fine.)</li>
<li>The error message informs you of an error which you wouldn&#8217;t have made had the information been available before you used the&nbsp;form.</li>
</ul>
<p>Ideally, if an error is made with the form, the response&nbsp;will:</p>
<ul>
<li>Identify which fields included&nbsp;errors.</li>
<li>Return the user to the form&nbsp;itself.</li>
<li>Retain any information the user supplied in the&nbsp;form.</li>
</ul>
<p>If relevant, the response might tell you what was wrong with the data you supplied&thinsp;&#8212;&thinsp;but, ideally, this shouldn&#8217;t be necessary. To take passwords as an example, a response error might inform you that passwords are required to include a capital letter, a number, and a non-alphanumeric character. It may <em>appear</em> helpful for the message to tell you this&thinsp;&#8212;&thinsp;but in truth, the form should have already contained that&nbsp;information.</p>
<p>If you&#8217;re going to check data, you need to make a point to inform the user what data is required <em>before</em> they submit the form. With the <a href="http://www.joedolson.com/articles/2007/10/accessibility-and-usability-issues-with-ajax/">wonders of AJAX</a> available, it&#8217;s possible for a form to point out your errors as you make them: but you can&#8217;t count on the perceivability or availability of AJAX to your user, so this shouldn&#8217;t be the only means of gathering the&nbsp;information. </p>
<p>Information which should be made available to the user in advance includes any required formatting (999-123-4567); any required fields; any specifically forbidden information (profanity or <abbr title="HyperText Markup Language">HTML</abbr>); or any specific requirements or restrictions on length (passwords must be at least 8 characters, message a maximum of&nbsp;1000.) </p>
<p>Preventing errors before they are made is possibly one of the most important aspects of error&nbsp;management!</p>
<p><span class="dquo">&#8220;</span>Error management&#8221; is actually a bit of a misnomer, when you get right down to it. Above, I mentioned a scenario in which a form is submitted resulting in either a blank page or itself: while having the form re-appear following a user error is an absolute must, the blank page introduces an equally valuable scenario: the success&nbsp;response. </p>
<p>After all, &#8220;error messages&#8221; are merely a subset of all the responses a form might make&thinsp;&#8212;&thinsp;having a useful <em>success</em> message is equally&nbsp;important.</p>
<p>Obviously, a blank page is not a great success message. All it tells the user is that <em>something</em> happened&thinsp;&#8212;&thinsp;but what that was, who knows?  An effective success response should clearly state to the user what happened with their request.&nbsp;Specifically,</p>
<ul>
<li>What information they&nbsp;entered.</li>
<li>What information was&nbsp;sent.</li>
<li>Whether the script believes the information was sent&nbsp;successfully.</li>
<li>Whether they should expect any response, and&nbsp;when.</li>
<li>If a response is expected, what to do if they <em>don&#8217;t</em> receive it within the specified&nbsp;time.</li>
</ul>
<p>Whether the form is offered up to the user again following submission is going to depend on the context. Some forms (like a basic contact form) are primarily intended to be submitted only once in succession. It&#8217;s <em>preferable</em>, in my view, for these kinds of forms not to be displayed after submission. Other forms (like a photo uploader) may be expecting repeat use&thinsp;&#8212;&thinsp;it&#8217;s far more helpful to the user to allow them the option to upload a second image immediately following the first, without having to return to the&nbsp;form. </p>
<h4>What about server&nbsp;errors?</h4>
<p>Yes, obviously I haven&#8217;t addressed basic error messages such as a 404 &#8220;missing&#8221; error or other important messages from the server. This is a long article already, so I&#8217;ll be brief: provide a customized error message. Make sure that it includes pointers to key pages including the home page, site map, and search&nbsp;page.</p>
<h3 id="admin">Site&nbsp;Administration</h3>
<p>It may seem like long-term administration is a completely different issue from best practices in web development. After all, administration is pretty far removed from doing all the design, configuration, and development work you&#8217;ve worked hard&nbsp;on!</p>
<p>However, you also need to acknowledge that the vast majority of the lifespan of most projects is the time <em>after you&#8217;ve finished</em>. Whether you&#8217;re going to be maintaining the site yourself, passing it over to an assistant, or passing it off to the client, there are a lot of things you can do to help protect the&nbsp;site.</p>
<p>For yourself, you can establish a style guide for the site: a list of pre-established styles and elements, what they look like, how they&#8217;re used, etc. For myself, I use a custom piece of database-driven software which ties a database of elements and script fragments for a given site to the templates for that site. This allows me (or anybody else) to readily browse either for the element I want or the appearance I want and grab the template code I&nbsp;need.</p>
<p>This kind of a tool helps you remember what you&#8217;ve done, even if you&#8217;re looking at the site a year down the road&thinsp;&#8212;&thinsp;and it can provide a guide for your clients or assistants to know what is expected for a given&nbsp;site. </p>
<p>When a client is maintaining the site, the best thing you can offer them (in addition to a style guide) is education and documentation: teach them what they need to know. Document everything they need to do. There&#8217;s absolutely no way you can truly cover everything, but you can certainly&nbsp;try.</p>
<p>In the long run, your site belongs to your client, and there&#8217;s nothing you can do to prevent them from screwing it up. However, the more you&#8217;ve done to make sure they know how to do things <em>right</em>, the better the chances are that they&nbsp;will.</p>
<p class="supplemental">This concludes the <a href="http://www.joedolson.com/articles/2008/08/best-practices-in-web-development-part-1/">Best Practices in Web Development</a> series. Although much has not been covered, those subjects will just have to&nbsp;wait!
</p>
<p><strong><a href="http://www.joedolson.com/articles/2008/09/best-practices-in-web-development-part-5/">Best Practices in Web Development: Part 5</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2011 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2008/09/best-practices-in-web-development-part-5/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Best Practices in Web Development: Part 3</title>
		<link>http://www.joedolson.com/articles/2008/08/best-practices-in-web-development-part-3/</link>
		<comments>http://www.joedolson.com/articles/2008/08/best-practices-in-web-development-part-3/#comments</comments>
		<pubDate>Fri, 29 Aug 2008 12:26:17 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[navigation design]]></category>
		<category><![CDATA[noise]]></category>
		<category><![CDATA[scent]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/?p=276</guid>
		<description><![CDATA[Part 1 (Contracts, Site Requirements,Information&#160;Architecture) Part 2 (Hosting and&#160;Security) Part 3 (Navigation,&#160;Scent) Part 4 (Semantics, Structure vs. Design, Universal&#160;design) Part 5 (Interaction, Errors, and&#160;Administration) You could say that this part of the series is really breaking the concepts of information architecture down into components immediately relevant to web development. Practically speaking, I&#8217;m going to cover [...]<p><strong><a href="http://www.joedolson.com/articles/2008/08/best-practices-in-web-development-part-3/">Best Practices in Web Development: Part 3</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2011 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<div class="aside">
<ul>
<li><a href="http://www.joedolson.com/articles/2008/08/best-practices-in-web-development-part-1/">Part 1</a> (Contracts, Site Requirements,Information&nbsp;Architecture)</li>
<li><a href="http://www.joedolson.com/articles/2008/08/best-practices-in-web-development-part-2/">Part 2</a> (Hosting and&nbsp;Security)</li>
<li>Part 3 (Navigation,&nbsp;Scent)</li>
<li><a href="http://www.joedolson.com/articles/2008/09/best-practices-in-web-development-part-4/">Part 4</a> (Semantics, Structure vs. Design, Universal&nbsp;design)</li>
<li><a href="http://www.joedolson.com/articles/2008/09/best-practices-in-web-development-part-5/">Part 5</a> (Interaction, Errors, and&nbsp;Administration)</li>
</ul>
</div>
<p>You could say that this part of the series is really breaking the concepts of information architecture down into components immediately relevant to web development. Practically speaking, I&#8217;m going to cover the necessities of navigation design, the concept of &#8220;scent of information&#8221; and the question of design &#8220;noise.&#8221; (Canonicalization was supposed to be covered in this part of the series, as well, but I&#8217;ve moved&nbsp;it.)</p>
<p>Navigation design is obvious: the primary organization of all aspects of site navigation. This is an area of web design and development where it&#8217;s very easy to go massively and devastatingly wrong&thinsp;&#8212;&thinsp;like most best practice concepts, avoiding the pitfalls is 90% of the&nbsp;battle. </p>
<p><span class="dquo">&#8220;</span>Scent&#8221; refers to information design which provides &#8220;clues&#8221; to help show the user where they are, where they&#8217;ve been, and how to get where they need to go. Planning your site should include careful planning to think about these&nbsp;processes.</p>
<p><span class="dquo">&#8220;</span>Noise&#8221; is a term I&#8217;m using to describe the opposite of &#8220;scent.&#8221; Noisy elements of design are those elements which detract or distract from a user&#8217;s needs. They may generate confusion or prevent users from following the path of action they&nbsp;need. </p>
<h3 id="navigation">Navigation&nbsp;Design</h3>
<p>Navigation design has two parts: organizing the documents and sections of your site into links, and generating the visual and interactive method which will be used to access that navigation. It&#8217;s important to do this in the correct order&thinsp;&#8212;&thinsp;and this is the point in the development process where you simply need to know the scope of content on the web&nbsp;site. </p>
<p>It&#8217;s neither necessary nor desirable to actually know every single item which will be on the site. In fact, it&#8217;s usually not even possible. A website should grow after it&#8217;s initial development, so you should always provision for the addition of future documents. What you need to know <em>now</em> is as much as possible about the documents which will definitely be on the&nbsp;site. </p>
<p>To get started, ask your clients for this&nbsp;information:</p>
<ul>
<li>A list of content&nbsp;categories,</li>
<li>A list of representative content titles and&nbsp;summaries,</li>
<li>A list of additional features which will require&nbsp;access.</li>
</ul>
<p>Ideally, you&#8217;ve already got a lot of this information from the contract phase. But, if not, now is the time to get&nbsp;it. </p>
<p>For the first steps in navigation design, you&#8217;re going to focus exclusively on the content and&nbsp;features. </p>
<p>The organizational needs will be different from site to site. Obviously, a site which is focused primarily around a specific tool will need to primarily concentrate on getting people to that tool. Text content, such as help files or related articles, will automatically be relegated to a secondary position in the navigation. In general, however, this article is dealing with text and content oriented sites: sites which need to communicate certain types of information to&nbsp;users.</p>
<p>A classic method for categorizing documents is to <a href="http://www.boxesandarrows.com/view/card_sorting_a_definitive_guide">perform a simple card sort</a>.  You can perform this test with as large or as small a test group as you feel comfortable with. Restrict users to people who have a reasonable chance of being able to use the information&thinsp;&#8212;&thinsp;you may not want to use your grandmother to sort documents on structural engineering. (Depends on <a href="http://www.dwforum.org/award.html">your grandmother</a>,&nbsp;naturally.)</p>
<p>Ultimately, you may want to perform two separate card sorts: an open sort (with no established groupings) and a closed sort (using the client&#8217;s requested groupings.) For the sake of brevity, I&#8217;m assuming that you&#8217;ve worked with the client to refine the requested&nbsp;categories.</p>
<p>The guidelines for the process are simple: write the document titles (and brief descriptions, if the title is ambiguous) on index cards. Give people a pile of cards (usually between 30 and 100), and ask them to sort them into groups of like items. This is an excellent way to gain insight into how potential users of the site might expect to find&nbsp;information. </p>
<p>A card sort certainly shouldn&#8217;t be your only method to find a logical navigation structure, but it will provide valuable clues concerning what might be expected by visitors. You should also realize that disagreement between sorters doesn&#8217;t mean that you need to pick one option: it may simply mean that additional lists of information using different sorting mechanisms may need to be&nbsp;available.</p>
<p>Your ultimate goal in sorting information is to avoid requiring users to look in more than one place: the apparent likelihood that a given document will be found in one category should always lean in one&nbsp;direction. </p>
<p>The second step is relatively simple: building and designing the navigation. Best practices pretty much insist on accessibility and the use of web standards to construct navigation. I&#8217;ve written an <a href="http://www.joedolson.com/accessible-navigation.php">extensive article on accessible navigation design already</a>, so I&#8217;m simply going to refer you to that article for this&nbsp;section.</p>
<h3 id="scent">Scent of&nbsp;Information</h3>
<p>Providing a strong scent of information is a good follow up to categorizing your information. Having spent all this time filing information away, I&#8217;m sure you noticed that some information just flat out belongs in more than one place. A classic example (for almost everything, actually) is the iPod. Is it computer equipment? Is it audio equipment? What about entertainment&nbsp;equipment? </p>
<p>Ideally, you want to provide enough information about your categories to help users visit the right category first&thinsp;&#8212;&thinsp;and not by using the site-cluttering cop-out of putting your items in all relevant&nbsp;categories. </p>
<h4>Seed your navigation with extra&nbsp;information</h4>
<p>When there&#8217;s a possibility of doubt, one of the first steps you can take is to add information which describes your category. Instead of just listing &#8220;Computers&#8221; in the navigation, say &#8220;Computer: Laptops, monitors, mice, keyboards.&#8221;  You can&#8217;t (and shouldn&#8217;t) list everything in the category, but providing a representative sample can help users target their navigation more&nbsp;accurately.</p>
<h4>Provide navigation to related&nbsp;information</h4>
<p>A second method you can use it to provide links to related information. When you have a site set up where there&#8217;s a possibility of confusion, you should be able to identify most of these potential problems in advance. Using the same example, you may want to provide a link to iPods and digital music players if somebody is browsing under sound cards or audio&nbsp;software.</p>
<h4>Use descriptive&nbsp;linking</h4>
<p>A link which tells you precisely what it links to is far more valuable than a generic link text. It&#8217;s more likely to attract the eye, more likely to result in an action by the user, and will help your users quickly target the <em>right</em>&nbsp;document. </p>
<p>It&#8217;s not just for accessibility that you want to avoid repetitive or meaningless link texts. From a usability or marketing perspective, the right words can make all the&nbsp;difference. </p>
<h4>Use meaningful trigger&nbsp;words</h4>
<p>What behavior do you want to encourage? When somebody writes &#8220;Click here,&#8221; they are obviously interested in the short term: they want a <em>click</em>. If somebody writes &#8220;Read &#8216;The biography of a whale&#8217; Now&#8221; they&#8217;re asking you to <em>read</em> the document. Similarly, using words like &#8220;Buy,&#8221; &#8220;Explore,&#8221; or &#8220;Hire,&#8221; you&#8217;re providing a specific, task-oriented clue within the text of the link. Because of this, the user knows better what to expect when they follow the link&thinsp;&#8212;&thinsp;and are more likely to follow the link they really want&nbsp;first.</p>
<p>Or, thinking persuasively, are more likely to <em>want</em> what you&#8217;re trying to offer. It goes both&nbsp;ways. </p>
<h3 id="noise">Design&nbsp;Noise</h3>
<p>On the opposite side of the coin from scent, we find noise. Bad information, information pollution, stink&thinsp;&#8212;&thinsp;whatever you might want to call it, the end result is the same. This is information which leads the user the <em>wrong&nbsp;way</em>.</p>
<h4>Identify your primary&nbsp;goal</h4>
<p>If you&#8217;re a sales-oriented site, the strongest scent should be provided to guide users to products and along the purchase path. You may want to provide a lot of essential and valuable information about your products, about your business, or about the industry you&#8217;re working in&thinsp;&#8212;&thinsp;but if information isn&#8217;t your primary business, you should let these parts of your site take <em>somewhat</em> of a back&nbsp;seat. </p>
<h4>Link to your documents accurately and&nbsp;understandably</h4>
<p>Make sure that whatever you&#8217;ve used to link to a page is <em>accurate</em>. If you&#8217;ve stated that an article contains certain information, or has a certain product on it&thinsp;&#8212;&thinsp;it bloody well better! This seems like it should be obvious, yet I can&#8217;t even begin to count the number of times I&#8217;ve found myself following a seemingly valuable link just to be stymied by the document&nbsp;itself. </p>
<p>Following a related logic, you should be careful to link the document in a manner which is readily understood. If you&#8217;re providing a tool for people to estimate what the salary for their desired job should be, don&#8217;t link it using &#8220;Proximal Salary/Earnings Indices by Region.&#8221; Instead, link to it saying &#8220;What should you earn where you live? Find out&nbsp;here!&#8221; </p>
<p>Using easy language may sometimes be less precise, but will almost always be more&nbsp;useful.</p>
<h4>Don&#8217;t try to give everybody everything at&nbsp;once!</h4>
<p>Too much information crammed into a finite space means only one thing: you don&#8217;t know what your users need. And as a result, your visitors probably only need one link&thinsp;&#8212;&thinsp;the back button in their&nbsp;browser. </p>
<p>The reason for information organization, at heart, is to reduce the problem of information overload. It&#8217;s certainly <em>possible</em> for people to find information given a page of 700 links, but is it an efficient way of working? No. Ultimately, it&#8217;s far faster to follow two or three links with a strong scent than to have the possibility of offering a single-click path to&nbsp;information. </p>
<h3>Additional&nbsp;Resources</h3>
<ul>
<li><a href="http://www.steptwo.com.au/papers/kmc_informationscent/">Information scent: helping people find the content they&nbsp;want</a></li>
<li><a href="http://www.useit.com/alertbox/20040802.html">Deceivingly Strong Information Scent Costs&nbsp;Sales</a></li>
<li><a href="http://www.boxesandarrows.com/view/card_sorting_a_definitive_guide">Card Sorting: A Definitive&nbsp;Guide</a></li>
</ul>
<p class="supplemental">
<a href="http://www.joedolson.com/articles/2008/09/best-practices-in-web-development-part-4/">Web Development Best Practices: Part 4</a> (published on Wednesday, September 3rd) covers semantics, separation of structure from content, and the fundamentals of universal design for the&nbsp;web.
</p>
<p><strong><a href="http://www.joedolson.com/articles/2008/08/best-practices-in-web-development-part-3/">Best Practices in Web Development: Part 3</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2011 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2008/08/best-practices-in-web-development-part-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Spam vs. Accessibility</title>
		<link>http://www.joedolson.com/articles/2008/06/spam-vs-accessibility/</link>
		<comments>http://www.joedolson.com/articles/2008/06/spam-vs-accessibility/#comments</comments>
		<pubDate>Tue, 24 Jun 2008 13:18:06 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[captcha]]></category>
		<category><![CDATA[robots]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[web accessibility]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/?p=248</guid>
		<description><![CDATA[The whole world of spam is an accessibility nightmare. The concept behind web accessibility is to ensure that users can access the complete functionality of your web site&#8201;&#8212;&#8201;but how do you cope with the fact that spambots will happily take advantage of any hole you&#160;leave? Comment forms, contact pages, email addresses and enrollment forms. All [...]<p><strong><a href="http://www.joedolson.com/articles/2008/06/spam-vs-accessibility/">Spam vs. Accessibility</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2011 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<p>The whole world of spam is an accessibility nightmare. The concept behind web accessibility is to ensure that users can access the complete functionality of your web site&thinsp;&#8212;&thinsp;but how do you cope with the fact that spambots will <em>happily</em> take advantage of any hole you&nbsp;leave?</p>
<p>Comment forms, contact pages, email addresses and enrollment forms. All methods of giving critical access to previously unidentified users&thinsp;&#8212;&thinsp;and all in positions where you just need to find that crucial differentiation between real people and&nbsp;robots.</p>
<p>When you&#8217;re talking about functionality which is locked behind a log-in form, there&#8217;s not really a huge amount of trouble in defining the security/accessibility conundrum. Require a good, secure password and you&#8217;re pretty safe. People with disabilities, for the most part, can use a password field just as effectively as anybody else. Once you&#8217;re behind that iron curtain, you can usually stop worrying about the distinction: everybody who has access to your private functionality is a <em>known</em> user. They&#8217;ve identified themselves, provided credentials which grant them a certain degree of access, and you can stop worrying about&nbsp;them. </p>
<p>But your front door can be a big&nbsp;problem.</p>
<p>You need to create a doorway which will allow visitors you don&#8217;t already know to reach you. They need to be able to contact you in order to initiate business, or enroll in your program, or at least create an account with your site. It&#8217;s therefore absolutely critical that you create a form which can be accessed by&nbsp;anybody. </p>
<p>But you still only want <em>people</em> using your form. Robot visitors rarely pay the enrollment fee, so they&#8217;re not exactly welcome visitors in every area of your site. You certainly don&#8217;t want to be thanking them for contacting you with an offer to enlarge your&nbsp;anatomy! </p>
<p>Spam protection and accessibility have inherent conflicts of interest: the formar goal attempts to prevent a form from being used, the latter promotes it. The two goals aren&#8217;t actually antipathetic of each other, but getting the two goals to work collaboratively does require a detailed understanding of what the issues&nbsp;are.</p>
<h3>Stopping the&nbsp;Robots</h3>
<p>One of the most common solutions to the spam problem is to prevent a problem which a computer can&#8217;t solve. The most obvious solutions (pictures of animals, pictures of people, etc.) are inherently flawed because they require specific pieces of information in order to solve. They&#8217;ll require correct spelling in the correct language with knowledge of the subject depicted. Although most visitors may be able to identify an elephant, <em>some</em> visitors will inevitably (and correctly_ identify it as an&nbsp;<span  lang="de">elefant</span>. </p>
<p><strong>Presumed knowledge is a barrier to both humans and&nbsp;computers.</strong></p>
<p>This is what has led to the numerous garishly blurred and colored text images you&#8217;ve undoubtedly had to interpret. Computers can use character recognition to examine images and identify the text, so the presentation is warped to decrease the likelihood of recognition. Of course, this also decreases the likelihood that humans will be able to read the image. Humans with disabilities? No chance. Either you include an <code>alt</code> attribute, making the solution trivial for a computer, or you leave it out&thinsp;&#8212;&thinsp;making the solution impossible for somebody with a visual&nbsp;disability.</p>
<p>Thus was born the audio <abbr title="Completely Automated Public Turing test to tell Computers and Humans Apart">CAPTCHA</abbr>. However, audio <abbr title="Completely Automated Public Turing test to tell Computers and Humans Apart">CAPTCHA</abbr> requires specific technology&thinsp;&#8212;&thinsp;an audio format must be chosen, and an audio player provided. Additionally, computers are capable of recognizing audio excerpts in much the same way they can recognize images. As a result, the audio output is distorted. I&#8217;ve listened to audio CAPTCHAs, and all I can say is that I hope others have better luck than I do. <em>I&#8217;ve never passed&nbsp;one.</em></p>
<p>And, of course, neither of these methods will provide access for anybody who is both hearing and visually&nbsp;impaired.</p>
<p>There are numerous other examples of attempts at accessible CAPTCHAs. Most of them depend on the fact that while robots may be text-aware, they are not necessarily capable of following instructions provided in text. Simple question <span class="amp">&amp;</span> answer bot-blocking techniques&nbsp;like:</p>
<ol>
<li>Write &#8220;human&#8221; in the field&nbsp;below.</li>
<li>What is 3 +&nbsp;4?</li>
<li>Is fire hot or&nbsp;cold?</li>
</ol>
<p>These simple questions can slow spam&thinsp;&#8212;&thinsp;these can be considered <em>generic</em> spam prevention methods. They will stop almost all spam which is not specifically targeted at the form. However, if any programmer decides that they want to write a bot to attack your site, it is a trivial problem. Simply put, these kinds of questions generate <a href="http://en.wikipedia.org/wiki/Security_through_obscurity">security through&nbsp;obscurity</a>.</p>
<p>A second class of bot-blocking techniques are found in more complex question <span class="amp">&amp;</span> answer&nbsp;sets:</p>
<ol>
<li>Write &#8220;red&#8221; in the 2nd text field on the&nbsp;left.</li>
<li>Enter your name in the 3rd row, 2nd&nbsp;column.</li>
</ol>
<p>These programmatically variable questions may also slow a bot, but can also be incredibly challenging&thinsp;&#8212;&thinsp;if not impossible&thinsp;&#8212;&thinsp;for a human visitor who is not using an visual browser with an output equivalent to the&nbsp;instructions. </p>
<h3>Tricking the&nbsp;Robots</h3>
<p>Now, robots aren&#8217;t terribly intelligent. Usually, their decision making skills are fairly limited. As such, it&#8217;s not terribly difficult to simply deceive them. These methods may have some effectiveness at slowing down&nbsp;bots:</p>
<ol>
<li>Required selections on option menus. Not that a specific option is required&thinsp;&#8212;&thinsp;just anything <em>available in the&nbsp;menu</em>.</li>
<li><a href="http://en.wikipedia.org/wiki/Honeypot_%28computing%29">Honeypots</a>&thinsp;&#8212;&thinsp;fields which should <em>not</em> be filled in, but probably will be by your average bot in it&#8217;s quest to cover all it&#8217;s&nbsp;options.</li>
<li>Limited length fields&thinsp;&#8212;&thinsp;if you set this client-side, using the <abbr title="HyperText Markup Language">HTML</abbr> maxlength attribute, a bot can easily limit it&#8217;s own input. However, if you set it server-side (at a safe margin for real users) you can stop a few bots which get&nbsp;over-eager.</li>
</ol>
<p>Mike Cherim has valuable tips on these techniques in his article <a href="http://green-beast.com/blog/?p=220">Protecting Forms from Spam &#8216;Bots</a>, so I&#8217;m not going to elaborate on these points excessively. Again, however, these are all valuable methods within the &#8220;security through obscurity&#8221; school of protection&thinsp;&#8212;&thinsp;no serious protection against a motivated&nbsp;spammer. </p>
<p>Mike&#8217;s <a href="http://green-beast.com/gbcf-v3/">secure and accessible contact form</a> makes use of a wide variety of techniques and provides thorough accessibility, so if you&#8217;re looking for a simple contact form which will block generic spam, it&#8217;s a great&nbsp;option. </p>
<h3>Behavior&nbsp;Detection</h3>
<p>This is a complicated area, which I&#8217;m not going to delve into in any significant detail. Primarily because I&#8217;m not really qualified. However, it&#8217;s an important category of spam control, so it&#8217;s worth an&nbsp;overview.</p>
<p>The principle of behavior detection is based on one core observation: bots don&#8217;t behave like people. People are, for the most part, a complex blend of random behavior and systematic exploration. Bots are generally much more absolute. When you observe a web site &#8220;user&#8221; visit every single navigable page of your site at 30 second intervals, that user is clearly <em>not</em>&nbsp;human. </p>
<p>Although the actual interpretation is significantly more complicated, the challenge is simple: look for patterns. If a user&#8217;s time on a site matches a mathematical pattern, that&#8217;s a signal. The <a href="http://www.bad-behavior.ioerror.us/">Bad Behavior</a> package works (at least partially) on this general logic: search for indications about the user or user-agent and identify signals which suggest non-human&nbsp;activity. </p>
<h3>Requiring Specific&nbsp;Capabilities</h3>
<p>Some spam solutions make the choice that they will require specific capabilities from the visitor in order to allow them to make contact. The WordPress comment spam plugin <a href="http://www.hybrid6.com/webgeek/plugins/wp-spamfree#wpsf_how_it_works">WP-Spamfree</a> takes this strategy. The first layer of protection for this plugin is to require that any visitor trying to submit a comment have support for Javascript <em>and</em> for cookies&nbsp;enabled.</p>
<p>Immediately, this strategy eliminates the vast majority of bots&thinsp;&#8212;&thinsp;and a small minority of&nbsp;humans. </p>
<h3>Conclusion</h3>
<p>I&#8217;m not aware that there&#8217;s any solution which has 100% success at differentiating humans from bots. Any barrier put in place to spam will also create a barrier for <em>somebody</em>. However, this is a decision that must be made for any site: when you&#8217;re receiving thousands of spam messages a day through an insecure contact form, is it better to stop the occasional human or massively reduce your daily spam-killing time&nbsp;commitment?</p>
<p>Ultimately, there isn&#8217;t a real answer. Spam is too great of an issue to simply ignore. However, any time you create a <abbr title="Completely Automated Public Turing test to tell Computers and Humans Apart">CAPTCHA</abbr>&thinsp;&#8212;&thinsp;of any sort&thinsp;&#8212;&thinsp;just remember this: provide an alternative. If you provide a phone number to those who have failed your little test, they may be able to reach you. If somebody needs to reach you, make it possible: even if they&#8217;ll have to write you a letter in order to post a comment on your blog.
<p><strong><a href="http://www.joedolson.com/articles/2008/06/spam-vs-accessibility/">Spam vs. Accessibility</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2011 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2008/06/spam-vs-accessibility/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>What is &#8220;Cross-browser compatibility?&#8221;</title>
		<link>http://www.joedolson.com/articles/2008/03/what-is-cross-browser-compatibility/</link>
		<comments>http://www.joedolson.com/articles/2008/03/what-is-cross-browser-compatibility/#comments</comments>
		<pubDate>Sat, 29 Mar 2008 21:00:25 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[browser compatibility]]></category>
		<category><![CDATA[mobile design]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/2008/03/what-is-cross-browser-compatibility/</guid>
		<description><![CDATA[Here&#8217;s the first clue: it&#8217;s not creating a pixel-perfect replication of your ideal version of a site in all&#160;browsers. In fact, cross-browser compatibility ultimately has very little to do with what a web site looks like, and a lot more to do with how it functions. It also has relatively little to do with browsers, [...]<p><strong><a href="http://www.joedolson.com/articles/2008/03/what-is-cross-browser-compatibility/">What is &#8220;Cross-browser compatibility?&#8221;</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2011 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s the first clue: it&#8217;s <em>not</em> creating a pixel-perfect replication of your ideal version of a site in all&nbsp;browsers. </p>
<p>In fact, cross-browser compatibility ultimately has very little to do with what a web site looks like, and a lot more to do with how it functions. It also has relatively little to do with browsers, and perhaps could better be explained as multiple user-agent&nbsp;compatibility.</p>
<p><span class="dquo">&#8220;</span>Compatibility&#8221; (in this context) is not a term which means &#8220;looks and behaves identically&#8221;&thinsp;&#8212;&thinsp;instead, it may be better described as &#8220;performs equivalently under alternative conditions.&#8221; But developers and designers tend to most immediately seize upon appearance as the guiding line for cross-browser&nbsp;compatibility.</p>
<p>Of course, let&#8217;s be honest: there are a lot of very good reasons for this. Completely disregarding what we may know about the behavior of a site, clients tend to be very visually oriented. They pop their new site open at home one day during development and notice a whole variety of differences which they&#8217;re suddenly concerned about.  If you&#8217;re lucky, they&#8217;re opening up Internet Explorer 6 <em>after</em> you&#8217;ve gone through the painstaking process of correct its inability to cope with standards-compliant code, rather than before you&#8217;ve gotten around to it. That can be&nbsp;awkward&#8230;</p>
<p>Another good reason is that despite what I&#8217;ve stated above, making the design behave more-or-less identically between different browsers is actually quite desirable. From a usability perspective, a seamless change in interactivity between different user-agents is very desirable. If you&#8217;ve ever tried to guide somebody through using a website which delivers a different experience to their browser than to yours, you are intimately familiar with one reason it&#8217;s a very bad&nbsp;idea.</p>
<p>But the absolute key to cross-browser compatibility is simply <em>functionality</em>. A lack of cross-browser compatibility doesn&#8217;t mean that something looks different; it means that it <strong>doesn&#8217;t&nbsp;work</strong>. </p>
<p>And a good thing, too. Otherwise, compatibility would be pretty well impossible between desktop browsers and mobile browsers. <img src='http://www.joedolson.com/articles/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>With web design, it&#8217;s occasionally entirely possible to make two browsers render a design exactly the same&#8230;if you assume certain factors will remain constant, such as the user settings described in <a href="http://www.joedolson.com/articles/2008/03/refining-text-presentation/">my last post</a>. If any of those have been changed, everything pretty well goes out the window. As desirable as it is to make your designs look as similar as possible between the various desktop browsers, it always has to be acknowledged that there are&nbsp;limits. </p>
<p>There&#8217;s nothing at all that you can do to actually guarantee the same view for everybody; instead, you need to guarantee an equivalent view for everybody. Equivalent in that they will be able to get the same information and use the functions of the site to perform the same&nbsp;actions. </p>
<p><strong><a href="http://www.joedolson.com/articles/2008/03/what-is-cross-browser-compatibility/">What is &#8220;Cross-browser compatibility?&#8221;</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2011 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2008/03/what-is-cross-browser-compatibility/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Usability and Trust</title>
		<link>http://www.joedolson.com/articles/2008/01/usability-and-trust/</link>
		<comments>http://www.joedolson.com/articles/2008/01/usability-and-trust/#comments</comments>
		<pubDate>Sat, 12 Jan 2008 23:39:58 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Usability]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[data reliability]]></category>
		<category><![CDATA[error mesages]]></category>
		<category><![CDATA[trust]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/2008/01/usability-and-trust/</guid>
		<description><![CDATA[Without both, it&#8217;s very difficult to have a successful online business. Unusable web sites have an incredible ability to generate a lack of trust in the business&#8201;&#8212;&#8201;as soon as one feature fails to work correctly, or doesn&#8217;t behave as you expect, there&#8217;s an immediate connection&#160;made: &#8220;If they can&#8217;t get this right, what else might they [...]<p><strong><a href="http://www.joedolson.com/articles/2008/01/usability-and-trust/">Usability and Trust</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2011 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<p>Without both, it&#8217;s very difficult to have a successful online business. Unusable web sites have an incredible ability to generate a lack of trust in the business&thinsp;&#8212;&thinsp;as soon as one feature fails to work correctly, or doesn&#8217;t behave as you expect, there&#8217;s an immediate connection&nbsp;made:</p>
<p><span class="dquo">&#8220;</span>If they can&#8217;t get <em>this</em> right, what else might they have problems&nbsp;with?&#8221;</p>
<p>Will they lose your financial data? Will they ship you the right product? Will they bill you the right amount of shipping? What are they going to do with your private&nbsp;information? </p>
<p>It&#8217;s hard to fully trust a website which gets in your way when you&#8217;re trying to perform basic tasks. The above questions may come up as reactions to pretty severe site problems, such as incorrect product data or frightening error messages, such as this&nbsp;one:</p>
<div class="center">
<a href="http://www.experienceproject.com/uw.php?e=117528"><img src='http://www.joedolson.com/articles/wp-content/uploads/scary-error-message.jpg' alt="Okay, I've gone to read my mail 2x and gotten a frightening red box that says: You cannot do that. This action is being recorded." /></a>
</div>
<p><span class="dquo">&#8220;</span>You cannot do that. This action is being&nbsp;recorded.&#8221;</p>
<p>Yikes! Not really an ideal situation. Now, having written error messages before, I can imagine what was meant, which might be better stated like&nbsp;this:</p>
<p><span class="dquo">&#8220;</span>You may not perform that action. We have logged the error and will work to take care of any&nbsp;problems!&#8221;</p>
<p>There are a couple of important differences between those&nbsp;statements. </p>
<p>First, there&#8217;s the tense of the statement: we are <em>currently</em> recording vs. we <em>have recorded</em>. The first leaves an ongoing implication that your actions are being monitored which may be a bit&nbsp;disturbing. </p>
<p>Second, we have the indication of what has been recorded. In the first case, it sounds like the system is recording <em>your actions</em>. The second message clearly states that the information recorded was the <em>error</em> which occurred, and assures you that the problem will be worked&nbsp;on. </p>
<p>Maintaining trust in your application depends on good data, clear and non-threatening error messages, and clear task pathways. If your task paths aren&#8217;t clear, you may lose users due to sheer confusion. If you aren&#8217;t checking your data and perfecting your error messages (and all other responses, of course!) you may lose the visitors trust that you&#8217;ve really got their needs in mind.
<p><strong><a href="http://www.joedolson.com/articles/2008/01/usability-and-trust/">Usability and Trust</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2011 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2008/01/usability-and-trust/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Usability Issues with Domain Management</title>
		<link>http://www.joedolson.com/articles/2008/01/usability-issues-with-domain-management/</link>
		<comments>http://www.joedolson.com/articles/2008/01/usability-issues-with-domain-management/#comments</comments>
		<pubDate>Thu, 10 Jan 2008 23:19:59 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Usability]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[domain]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[interface design]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/2008/01/usability-issues-with-domain-management/</guid>
		<description><![CDATA[Working as a web developer, I find myself dealing with a lot of different domain registrars, hosting services, etc. It&#8217;s inevitable. It&#8217;s also not the slightest bit uncommon to run across one very specific usability inconvenience with how these services manage their services. (Not all of them&#8201;&#8212;&#8201;but enough that it&#8217;s&#160;irritating.) This specific problem is that [...]<p><strong><a href="http://www.joedolson.com/articles/2008/01/usability-issues-with-domain-management/">Usability Issues with Domain Management</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2011 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<p>Working as a web developer, I find myself dealing with a lot of different domain registrars, hosting services, etc. It&#8217;s inevitable. It&#8217;s also not the slightest bit uncommon to run across one very specific usability inconvenience with how these services manage their services. (Not <em>all</em> of them&thinsp;&#8212;&thinsp;but enough that it&#8217;s&nbsp;irritating.)</p>
<p>This specific problem is that when you&#8217;re managing domains, some of these services handle multiple-domain management in the following&nbsp;manner: </p>
<ol>
<li>Select the action you wish to&nbsp;perform.</li>
<li>Select the domain you wish to&nbsp;change.</li>
<li>Rinse and&nbsp;repeat.</li>
</ol>
<p>It should be readily apparent what the problem is: choosing the action prior to choosing the domain is an extremely ineffective way of making a large number of changes to a specific&nbsp;domain. </p>
<p>Now, the way I tend to work (and I don&#8217;t see any great likelihood that this will change) is to focus on a particular site and do everything I need to do on that site in one working&nbsp;session. </p>
<p>End result: if I need to make, say, five changes to a domain, I need to take 10 individual actions. If I selected the domain, and then performed a variety of actions on that domain, I could easily reduce this to only 6&nbsp;actions. </p>
<p>Even if I needed to work a different way, such as making the same change to a large number of domains, this continues not to be an efficient way of making the same change on a large number of domains, which would be best handled by allowing selection of multiple domains for simultaneous&nbsp;changes.</p>
<p>At any rate, if you happen to be a large company which manages hosting and/or registration of domains, <em>don&#8217;t set up your management interface like this</em>. It&#8217;s&nbsp;annoying.</p>
<p>End&nbsp;rant. </p>
<p><strong><a href="http://www.joedolson.com/articles/2008/01/usability-issues-with-domain-management/">Usability Issues with Domain Management</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2011 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2008/01/usability-issues-with-domain-management/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Following User Navigation Paths</title>
		<link>http://www.joedolson.com/articles/2007/12/following-user-navigation-paths/</link>
		<comments>http://www.joedolson.com/articles/2007/12/following-user-navigation-paths/#comments</comments>
		<pubDate>Tue, 18 Dec 2007 19:11:21 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Usability]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[analytics]]></category>
		<category><![CDATA[navigation]]></category>
		<category><![CDATA[user paths]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/2007/12/following-user-navigation-paths/</guid>
		<description><![CDATA[An interesting thread at Cre8asiteforums, titled &#8220;When lots of your visitors go straight to search? discusses a member&#8217;s curiosity about navigation patterns after noticing that a significant percentage of his visitors&#8201;&#8212;&#8201;25%&#8201;&#8212;&#8201;go directly to search after arriving at his&#160;site. It&#8217;s an interesting element of site navigation to investigate, and the thread raises a pretty significant number [...]<p><strong><a href="http://www.joedolson.com/articles/2007/12/following-user-navigation-paths/">Following User Navigation Paths</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2011 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<p>An interesting thread at Cre8asiteforums, titled &#8220;<a href="http://www.cre8asiteforums.com/forums/index.php?showtopic=57533">When lots of your visitors go straight to search?</a> discusses a member&#8217;s curiosity about navigation patterns after noticing that a significant percentage of his visitors&thinsp;&#8212;&thinsp;25%&thinsp;&#8212;&thinsp;go directly to search after arriving at his&nbsp;site. </p>
<p>It&#8217;s an interesting element of site navigation to investigate, and the thread raises a pretty significant number of additional questions worth&nbsp;analyzing.</p>
<p>The navigation path of any given user will be fundamentally unique. However, when taken in aggregate, navigation paths begin to suggest a lot about your navigation structures. The percentage of visitors who immediately jump into a site search, however, suggests a very different thought&nbsp;process.</p>
<p>On sites which I visit frequently, for example, I generally have a very set system for finding information. If the site has a good search, then I may use the search. If they have a very clear navigation, I may use that, instead. If they have neither, it&#8217;s unlikely that I visit the site frequently&#8230;but if I do, I generally have separate bookmarks to the individual features which I actually&nbsp;use.</p>
<p>And that raises a separate question&thinsp;&#8212;&thinsp;if a site has difficult navigation and inferior search, what would drive you to actually visit it frequently? For me, the site has to offer some specific information or functionality that I simply can&#8217;t get elsewhere. Otherwise, there&#8217;s simply no justification for the challenge of using the&nbsp;site. </p>
<p>You can learn a lot about the effectiveness of site navigation by following analytics data. Knowing that most users who use your search feature fail to find what they&#8217;re looking for, for example, should suggest that this is a feature of your site which needs work. Finding that users frequently enter several sections of your site before finding the right information can be significant as well&thinsp;&#8212;&thinsp;it suggests that you need to rethink the way your site categories/sections are&nbsp;organized. </p>
<p>So&#8230;important question, then: HOW do you follow this? Where do you get this&nbsp;information?</p>
<p>You&#8217;re not going to get meaningful user information from standard statistics packages like AWStats or Webalizer. You need to use some tool which will provide a means to track the path of specific users. This can be parsed from your server logs. A high-end statistics package such as <a href="http://www.clicktracks.com/">Clicktracks</a> will give you user path data. There are a number of other services which can provide this information (and, if you know what you&#8217;re doing, you&#8217;ve already got the&nbsp;information).</p>
<p>I&#8217;m not really an expert on analytics packages, of course. If you want a lot of detailed information about web analytics and analytics packages, here are a few&nbsp;resources:</p>
<ul>
<li><a href="http://www.stonetemple.com/articles/analytics-report-august-2007.shtml">Stone Temple Consulting: Analytics Report</a>&thinsp;&#8211;&thinsp;Great resource. Extensive commentary and analysis of multiple&nbsp;packages.</li>
<li><a href="http://www.kaushik.net/avinash/">Occam&#8217;s Razor by Avinash Kaushik</a>&thinsp;&#8211;&thinsp;Blog on web analytics from one of the top experts in the&nbsp;field.</li>
<li><a href="http://www.amazon.com//exec/obidos/ASIN/0470130652/joedolsonacce-20">Web Analytics: An Hour a Day, by Avinash Kaushik</a>&thinsp;&#8211;&thinsp;Same author, but you can read him in&nbsp;<em>print</em>.</li>
<li><a href="http://manojjasra.blogspot.com/2007/03/ultimate-web-analytics-comparison.html">Ultimate Web Analytics Comparison&thinsp;&#8211;&thinsp;Manoj Jasra</a>&thinsp;&#8211;&thinsp;lists numerous packages, providing immediate access to features lists and comparisons between different stats packages. Particularly good for comparing Google Analytics to other&nbsp;packages.</li>
</ul>
<p><strong><a href="http://www.joedolson.com/articles/2007/12/following-user-navigation-paths/">Following User Navigation Paths</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2011 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2007/12/following-user-navigation-paths/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

