<?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; Web Development</title>
	<atom:link href="http://www.joedolson.com/articles/category/web-development/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, 19 Aug 2010 16:20:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>HTML 5 has cool stuff: new input types!</title>
		<link>http://www.joedolson.com/articles/2010/06/html-5-has-cool-stuff-new-input-types/</link>
		<comments>http://www.joedolson.com/articles/2010/06/html-5-has-cool-stuff-new-input-types/#comments</comments>
		<pubDate>Thu, 03 Jun 2010 16:04:06 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Web standards]]></category>
		<category><![CDATA[forms]]></category>
		<category><![CDATA[html5]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/?p=799</guid>
		<description><![CDATA[Even though many elements of HTML 5 have only limited application at this time due to lacking browser support, there&#8217;s little reason not to make use of them. The design of the markup language is intended to minimize dependence on user agents, failing invisibly if the browser doesn&#8217;t offer that feature, which helps encourage early [...]<p><strong><a href="http://www.joedolson.com/articles/2010/06/html-5-has-cool-stuff-new-input-types/">HTML 5 has cool stuff: new input types!</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<p>Even though many elements of <abbr title="HyperText Markup Language">HTML</abbr> 5 have only limited application at this time due to lacking browser support, there&#8217;s little reason not to make use of them. The design of the markup language is intended to minimize dependence on user agents, failing invisibly if the browser doesn&#8217;t offer that feature, which helps encourage early use of new&nbsp;elements.</p>
<p>Of course, the lack of support does have some consequences. We can&#8217;t just go out writing <abbr title="HyperText Markup Language">HTML</abbr> 5 without having significant awareness of this lack of native support&thinsp;&#8212;&thinsp;we have to&nbsp;compensate. </p>
<p>Nonetheless, being able to incorporate great new elements like <code>figure</code>, <code>progress</code>, <code>meter</code>, <code>nav</code> to improve semantics or browser capabilities including <a href="http://keyboardy.com/programming/html5-link-prefetching/">content prefetching</a> to provide a faster, more seamless experience for users is actually pretty&nbsp;exciting. </p>
<p><div id="attachment_801" class="wp-caption alignleft" style="width: 329px"><img src="http://www.joedolson.com/articles/wp-content/uploads/html-input-date.png" alt="HTML5 Datetime input in Opera 10.53" title="HTML5 Datetime input in Opera 10.53" width="319" height="306" class="size-full wp-image-801" /><p class="wp-caption-text">HTML5 Datetime input in Opera&nbsp;10.53</p></div>The coolest thing coming, in my opinion, is the numerous new attribute values for the <code>input</code> element. It seems like everybody&#8217;s always talking about the video element&thinsp;&#8212;&thinsp;but, not being somebody who&#8217;s all that excited by video, those conversations just make me say&nbsp;&#8220;Meh.&#8221;</p>
<p>But new input types&#8230;<em>cold&nbsp;shivers.</em></p>
<p>Sadly, they&#8217;re also one of the less useful elements at the moment. Until support is available in browsers, they&#8217;ll simply fall back to a text field, unless supplemented by scripting to customize their behavior. But hey&thinsp;&#8212;&thinsp;easy upgrade,&nbsp;right?</p>
<p>From an accessibility perspective, this is fabulous news. Or rather, <em>potentially</em> fabulous news. These new input types&thinsp;&#8212;&thinsp;including date formats, time formats, numbers, ranges, and colors&thinsp;&#8212;&thinsp;are intended to provide user-friendly and accessibility-enabled interfaces for inputting these kinds of custom data. Ultimately, they&#8217;ll provide replacements (or fallbacks) to the innumerable JavaScripted widgets used to create date input or color selectors. Users, instead of encountering a different style of calendar every time they need to enter a date, could have a consistent user experience. Having the behavior built directly into the browser, and tied from there directly into any accessibility software in use offers a hugely more dependable experience for users of assistive&nbsp;technology. </p>
<p>Now, this all depends on several factors: vendor implementations need to meet user agent accessibility guidelines; interfaces between browsers need to be consistent; and, of course, the attribute values need to be implemented by enough browsers to make their use truly&nbsp;valuable!</p>
<p><time datetime="2010-06-03">Today</time>, support is pretty limited. You can take a look at <a href="http://www.456bereastreet.com/lab/html5-input-types/">Roger Johansson&#8217;s <abbr title="HyperText Markup Language">HTML</abbr> 5 input type test page</a> and see whether your current browser supports any of them. If you&#8217;re using recent versions of Opera or Safari, the answer will be yes&thinsp;&#8212;&thinsp;otherwise, you won&#8217;t be seeing very much of interest for a&nbsp;while. </p>
<p><strong>But you can implement these input types&nbsp;today.</strong></p>
<p>All of these different input types fallback to a simple text input. If you&#8217;re using the <abbr title="HyperText Markup Language">HTML</abbr> 5 doctype, there&#8217;s nothing stopping you from applying <abbr title="HyperText Markup Language">HTML</abbr> 5 input types <em>right now</em>. Any browser that doesn&#8217;t support them will simply provide a field to enter plain text&thinsp;&#8212;&thinsp;so if you&#8217;re currently collecting email addresses in a text input (which seems pretty likely,) then you have no excuse not to change now. You may not see the benefits right away, but why wait? You&#8217;re not going to see any downsides,&nbsp;either. </p>
<p>Creating forms has long been a thorn in many a developer&#8217;s side. Dealing with how to best layout and collect date information, for example, is always a pain. Do you leave it as a simple text field, and have to deal with who-know-what kind of data received from the user? Do you use multiple select boxes, and force the user to walk through three or more fields just to enter the date? Do you use a JavaScript-based tool to provide a calendar, which may not have great accessibility, may behave strangely in some browsers, and may take a lot of development time to massage into providing the functionality you&#8217;re looking&nbsp;for? </p>
<p>Even when browser support for <abbr title="HyperText Markup Language">HTML</abbr> 5 input types is fully available, it&#8217;s entirely possible that you&#8217;ll want to take the route to custom develop interfaces for various fields. However, unlike the past, you&#8217;ll only be needing to do this because something particularly unique is required for the project; for lower-budget projects, you can save a lot of labor and provide a solid interface just by using native&nbsp;features. </p>
<p><strong><a href="http://www.joedolson.com/articles/2010/06/html-5-has-cool-stuff-new-input-types/"><abbr title="HyperText Markup Language">HTML</abbr> 5 has cool stuff: new input types!</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2010/06/html-5-has-cool-stuff-new-input-types/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>The future of WP to Twitter</title>
		<link>http://www.joedolson.com/articles/2010/05/the-future-of-wp-to-twitter/</link>
		<comments>http://www.joedolson.com/articles/2010/05/the-future-of-wp-to-twitter/#comments</comments>
		<pubDate>Wed, 05 May 2010 20:02:17 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[wptotwitter]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/?p=787</guid>
		<description><![CDATA[In June of 2010, Twitter will be permanently disabling basic authentication in favor of the OAuth protocol for authentication. For WordPress plugins which make use of the Twitter API, this is a change which will have significant&#160;repercussions. The specific repercussion will be that every implementation of a plugin will need to be registered with Twitter [...]<p><strong><a href="http://www.joedolson.com/articles/2010/05/the-future-of-wp-to-twitter/">The future of WP to Twitter</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<p>In June of 2010, Twitter will be <a href="http://apiwiki.twitter.com/OAuth-FAQ#WhenareyougoingtoturnoffBasicAuth">permanently disabling basic authentication</a> in favor of the <a href="http://oauth.net/">OAuth protocol</a> for authentication. For WordPress plugins which make use of the Twitter <abbr title="Application Programming Interface">API</abbr>, this is a change which will have significant&nbsp;repercussions. </p>
<p>The specific repercussion will be that every implementation of a plugin will need to be <a href="http://twitter.com/oauth_clients">registered with Twitter as a separate&nbsp;application</a>. </p>
<p>This means that the development of WP to Twitter will need to move in a slightly different direction. After pondering a bit, I&#8217;m left with four plausible&nbsp;choices:</p>
<ol>
<li><a href="/articles/2010/05/the-future-of-wp-to-twitter/#die">Let the plugin&nbsp;die</a></li>
<li><a href="/articles/2010/05/the-future-of-wp-to-twitter/#oauth">Implement OAuth for the&nbsp;plugin</a></li>
<li><a href="/articles/2010/05/the-future-of-wp-to-twitter/#webservice">Build a pass-through web service to act as an application interface with&nbsp;Twitter</a></li>
<li><a href="/articles/2010/05/the-future-of-wp-to-twitter/#3rdparty">Associate with a 3rd party web service in the same&nbsp;capacity</a></li>
</ol>
<p>These all have downsides, obviously&thinsp;&#8212;&thinsp;but I want to lay out my thoughts on each possibility and I&#8217;m asking for comments from the users of my plugin on their&nbsp;preference. </p>
<h3 id="die">Death of WP to&nbsp;Twitter</h3>
<p>Although it&#8217;s not really my favorite option, I have to acknowledge that it&#8217;s plausible. It&#8217;s certainly the easy answer&thinsp;&#8212;&thinsp;maintaining an even moderately popular WordPress plugin is a lot of free labor. I already spend more time on maintaining than I really should, from a financial perspective, and this may push it over the&nbsp;edge. </p>
<h3 id="oauth">Implement&nbsp;OAuth</h3>
<p>This would be a fair amount of work for me, although not insurmountable. The real downside to it would be how much work it would be for users&thinsp;&#8212;&thinsp;every one of you would have to register one application with Twitter for every site where you installed the plugin. With one site, this may not be a big deal&thinsp;&#8212;&thinsp;but I know it could be a real pain for people with more than&nbsp;that. </p>
<p>It&#8217;s not without some potential advantages, of course&thinsp;&#8211;&thinsp;when you&#8217;re registering your own application, you could customize the application name, the home <abbr title="Uniform Resource Locator">URL</abbr> for the application,&nbsp;etc. </p>
<h3 id="webservice">Build a pass-through&nbsp;service</h3>
<p>One way around the Oauth mess is for me to build a separate service which would handle actually connecting to Twitter. WP to Twitter would authenticate with that service, and pass the post off to Twitter. Again, this would be a lot of work&thinsp;&#8212;&thinsp;but, more significantly, it would involve some definite&nbsp;expenses. </p>
<p>I&#8217;ve been happy to maintain this plugin for not-much-better than free, but when it comes to incurring expenses, I start to feel a bit unexcited. It&#8217;s not like WP to Twitter is a commercially viable business, and I have expectations of profit from it&thinsp;&#8212;&thinsp;but I&#8217;d prefer not to find myself going into the hole because of it. I&#8217;d probably need to see an increase in donations to make this&nbsp;feasible.</p>
<h3 id="thirdparty">Use a 3rd Party&nbsp;Service</h3>
<p>Obviously, if I can build a service to connect with Twitter, so can somebody else. This is almost certainly the easiest solution which keeps the plugin usable&thinsp;&#8212;&thinsp;but it does mean creating a dependency on a 3rd party to keep the plugin functioning. Depending on Twitter is just natural; obviously, if Twitter goes away, the <em>point</em> of the plugin is lost. Depending on somebody else is something I&#8217;m less certain of, on the whole. There&#8217;s a reason, after all, that the plugin allows for use of URLs without an external&nbsp;shortener. </p>
<h3>Give me your&nbsp;thoughts</h3>
<p>This is very important to me&thinsp;&#8212;&thinsp;I want to know what direction you&#8217;d like to see WP to Twitter go. Please let me know! Do you know another solution? Do&nbsp;tell! </p>
<p>And if there are no responses&#8230;well, that has a <a href="/articles/2010/05/the-future-of-wp-to-twitter/#die">pretty obvious meaning</a> as well.
<p><strong><a href="http://www.joedolson.com/articles/2010/05/the-future-of-wp-to-twitter/">The future of WP to Twitter</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2010/05/the-future-of-wp-to-twitter/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
		<item>
		<title>Form over Function? Never thought about it&#8230;</title>
		<link>http://www.joedolson.com/articles/2010/04/form-over-function-never-thought-about-it/</link>
		<comments>http://www.joedolson.com/articles/2010/04/form-over-function-never-thought-about-it/#comments</comments>
		<pubDate>Sat, 24 Apr 2010 15:15:04 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[calendar]]></category>
		<category><![CDATA[web design]]></category>
		<category><![CDATA[wp]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/?p=779</guid>
		<description><![CDATA[A couple of weeks ago, I launched a WordPress Calendar plugin. Now, there are a *lot* of Calendar plugins available out there, so I&#8217;ll freely admit that my primary reason for doing this was to meet my own needs&#8201;&#8212;&#8201;and given the &#8220;profit margin&#8221; on writing WordPress plugins, that&#8217;s generally the best plan when writing&#160;one. Interestingly, [...]<p><strong><a href="http://www.joedolson.com/articles/2010/04/form-over-function-never-thought-about-it/">Form over Function? Never thought about it&#8230;</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<p>A couple of weeks ago, I launched a <a href="/articles/my-calendar/">WordPress Calendar plugin</a>. Now, there are a *lot* of Calendar plugins available out there, so I&#8217;ll freely admit that my primary reason for doing this was to meet my own needs&thinsp;&#8212;&thinsp;and given the &#8220;profit margin&#8221; on writing WordPress plugins, that&#8217;s generally the best plan when writing&nbsp;one. </p>
<p>Interestingly, the most frequent complaints I&#8217;ve heard since launching it were in an area which I had considered to be the least important area of the plugin&thinsp;&#8212;&thinsp;what it looks&nbsp;like.</p>
<p>I only did minimal work in setting up the appearance for this plugin; checking whether it basically worked in the default WordPress themes and little else. My assumption was that if anybody needed the plugin, they&#8217;d just have to be prepared to customize it to meet their needs. There was no reasonable way I could set it up to mesh with all possible themes, after&nbsp;all!</p>
<p>But apparently, in order to have the plugin be generally accepted, people need it to have &#8220;a look.&#8221; Most advanced users will probably change it; but I clearly hadn&#8217;t considered the more beginner users, without sufficient <abbr title="Cascading Style Sheets">CSS</abbr> knowledge to readily customize the&nbsp;output.</p>
<p>What&#8217;s really interesting to me about this situation, however, is not whether the plugin is accepted, popular, or heavily designed; that&#8217;s just an example. I was intrigued to observe in my own development process an approach which almost entirely ignored what the product looked like. From start to finish, I was really thinking about whether the plugin produced well-structured <abbr title="HyperText Markup Language">HTML</abbr> and whether the various functions involved in producing information worked&nbsp;well. </p>
<p>I just never thought about design. And why would I? If I can&#8217;t predict what context the plugin will be used in, why should I design it at all, beyond making the basic functionality&nbsp;clear? </p>
<p>It&#8217;s an interesting question; from my perspective, as a fairly advanced WordPress developer, I honestly prefer plugins I use to have absolutely minimal styles, and for me to be able to disable those styles at will so that I can replace them. However, WordPress has a very broad user base. Most of those millions of users probably expect that they can install a plugin and immediately make use of it&thinsp;&#8212;&thinsp;and any changing of colors or reskinning to better match their design is purely optional. For those users, I really should be providing something which can be immediately&nbsp;useful.</p>
<p>It actually does come down to usability: advanced users can do what they want with the calendar design regardless of how extensively I&#8217;ve set up styles. Beginning users, however, may not be able to fix anything that I&#8217;ve left unresolved, or not fully tested. In order to provide the best usability, I need to consider those users, as&nbsp;well.</p>
<p>Having determined that it does make sense to actually design the plugin&#8217;s output, but also knowing that there&#8217;s no reasonable way I can design it to match all themes, I do have to make a firm decision about what the basic color scheme for the plugin will be. Originally, I&#8217;d used a basic, Kubrick-derived color set. Now? Well, the sensible thing seems to be to consider branding; set it up using my own website&#8217;s color scheme. It may be subtle, but it will convey my identity, even without my name or <abbr title="Uniform Resource Locator">URL</abbr>. That seems&nbsp;worthwhile.</p>
<p>Guess I better get to work!
<p><strong><a href="http://www.joedolson.com/articles/2010/04/form-over-function-never-thought-about-it/">Form over Function? Never thought about it&#8230;</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2010/04/form-over-function-never-thought-about-it/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>New WordPress Plugin: My Calendar</title>
		<link>http://www.joedolson.com/articles/2010/04/new-wordpress-plugin-my-calendar/</link>
		<comments>http://www.joedolson.com/articles/2010/04/new-wordpress-plugin-my-calendar/#comments</comments>
		<pubDate>Mon, 05 Apr 2010 22:59:24 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[calendar]]></category>
		<category><![CDATA[plugins]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/?p=718</guid>
		<description><![CDATA[Version 1.3.0 released. Numerous bug fixes and new&#160;features. I just launched the first public draft of an online calendar plugin I&#8217;ve been working on for a while. It&#8217;s based on a plugin from Kieran O&#8217;Shea, Calendar, but has been adapted extensively to better suit my own&#160;needs. Hopefully, it&#8217;ll also suit other people&#8217;s&#160;needs. Read more about [...]<p><strong><a href="http://www.joedolson.com/articles/2010/04/new-wordpress-plugin-my-calendar/">New WordPress Plugin: My Calendar</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<div id="update">
<p><strong>Version 1.3.0 released.</strong> Numerous bug fixes and new&nbsp;features.</p>
</div>
<p>I just launched the first public draft of an online calendar plugin I&#8217;ve been working on for a while. It&#8217;s based on a plugin from Kieran O&#8217;Shea, <a href="http://wordpress.org/extend/plugins/calendar/">Calendar</a>, but has been adapted extensively to better suit my own&nbsp;needs. </p>
<p>Hopefully, it&#8217;ll also suit other people&#8217;s&nbsp;needs.</p>
<ul>
<li><a href="/articles/my-calendar/">Read more about My&nbsp;Calendar</a>.</li>
<li><a href="http://wordpress.org/extend/plugins/my-calendar/">Download My&nbsp;Calendar</a>.</li>
<li><a href="/articles/my-calendar/sample-calendar/">View a sample&nbsp;installation</a>.</li>
</ul>
<p>Please leave comments or questions at <a href="/articles/my-calendar/faq/">the My Calendar support page</a>; leave <a href="/articles/my-calendar/requests/">feature requests</a> on the feature request&nbsp;page!</p>
<p><strong><a href="http://www.joedolson.com/articles/2010/04/new-wordpress-plugin-my-calendar/">New WordPress Plugin: My Calendar</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2010/04/new-wordpress-plugin-my-calendar/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>When More is Less</title>
		<link>http://www.joedolson.com/articles/2010/03/when-more-is-less/</link>
		<comments>http://www.joedolson.com/articles/2010/03/when-more-is-less/#comments</comments>
		<pubDate>Sat, 13 Mar 2010 16:14:08 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/?p=693</guid>
		<description><![CDATA[One of the most famously cliched spy movie themes is the absurdly complex method (and accompanying explanation) in which the villain intends to kill the hero. Layer upon layer of killer sharks, laser beams, poisonous gases, and robot assassins employed with the sole intention of killing one fundamentally normal person (albeit a very suave person, [...]<p><strong><a href="http://www.joedolson.com/articles/2010/03/when-more-is-less/">When More is Less</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<p>One of the most famously cliched spy movie themes is the absurdly complex method (and accompanying explanation) in which the villain intends to kill the hero. Layer upon layer of killer sharks, laser beams, poisonous gases, and robot assassins employed with the sole intention of killing one fundamentally normal person (albeit a very <em>suave</em> person, of&nbsp;course.)</p>
<p>And, naturally, it always fails. Something goes wrong in the system; gross negligence of maintenance causes a malfunction; or some unanticipated exception allows the hero to&nbsp;escape. </p>
<p>This is an important thing to keep in mind when designing or building a web site, in every aspect. When you think you&#8217;re adding fabulous new functionality or greater accessibility, you should always be thinking about whether you&#8217;re ultimately supporting your visitor&#8217;s needs&thinsp;&#8212;&thinsp;or just making your system needlessly more&nbsp;complex. </p>
<p>Jared Smith, from Web AIM, recently published an article on <a href="http://webaim.org/blog/web-accessibility-preferences-are-for-sissies/">web accessibility preferences</a> expounding on the notion that in most cases, providing tools for your disabled users to change their experience usually means that you haven&#8217;t done your job right in the first place. Perhaps, rather than adding a tool to enable people to adjust your site, you should simply <strong>fix the site</strong>. Jared makes the very good point that in most cases, the people who need text enlargement have already taken care of it through their browser settings or operating system; and those who need extreme enlargement can&#8217;t be helped by a common accessibility widget&thinsp;&#8212;&thinsp;they need software&nbsp;support.</p>
<p>So, given this case, what do you actually accomplish by adding accessibility widgets to a web&nbsp;site? </p>
<p>If you&#8217;ve added them to a global element, to make them available throughout the site, you&#8217;ve made your site more complex: there&#8217;s more information on every page which needs to be sorted through or skipped over. You&#8217;ve added an additional technical element which needs to be supported and maintained&thinsp;&#8212;&thinsp;as browsers change, you&#8217;ll need to be rechecking not just your default settings, but all of the various combinations you&#8217;re providing, as&nbsp;well. </p>
<p>If you&#8217;ve added the same options to a page dedicated to these accessibility options, you&#8217;ve pretty well avoided the problem of having a globally more complicated interface. However, you need to ask yourself whether the problems your accessibility options fix will prevent the users who need them from finding the options!  Take this example: you&#8217;ve chosen a relatively low-contrast (but attractive) text color for your footer and secondary header navigation. Since this color is below the <a href="http://www.joedolson.com/articles/2008/05/testing-color-contrast/"><abbr title="Web Content Accessibility Guidelines">WCAG</abbr> 2 color contrast requirements</a>, you&#8217;re providing a link to a page where the user can select a high-contrast&nbsp;option. </p>
<p>Unfortunately, since the link is in your footer, that user who needs a high-contrast page can&#8217;t actually find the page where they can make the&nbsp;change. </p>
<p>Problems with site complexity don&#8217;t only effect web accessibility, however. Any additional function to your web site needs to be carefully considered before  implementation: is it worth while to add an audio player with auto start to your home page? What are the consequences of making this change? You may think that it&#8217;s a great opportunity to immediately promote your band&#8217;s music to those who want to hear it; but you&#8217;re making the gross assumption that those visitors want to hear it <strong>right now</strong>. They may not. And if they&#8217;re in a sensitive situation&thinsp;&#8212;&thinsp;checking you out from their quiet office cubicle, for example&thinsp;&#8212;&thinsp;then their first reaction is likely to be &#8220;How do I turn this&nbsp;off!&#8221;</p>
<p>Assuming you have decided to add this audio player to your web site&thinsp;&#8212;&thinsp;you may not realize that the most important control you need to have is a prominent <em>STOP</em> button. Otherwise, the most natural way to stop the music is to leave your&nbsp;site. </p>
<p>Any piece of new functionality adds complexity to a site. It may create an undesirable reaction, it may create user confusion&thinsp;&#8212;&thinsp;or it may be a brilliant idea which turns your home business into a multi-million dollar corporation. You shouldn&#8217;t avoid adding functionality on the grounds that anything complicated is going to be a problem; but you should certainly take a very close look at every new feature and decide whether it will add to the user experience. When making that decision, the points to consider are not limited to the value of that feature alone. You need to also consider all the other features which will be simultaneously available; you may want to add a new feature, but move an existing one. It&#8217;s usually not any given feature which causes problems; it&#8217;s having too many paths to follow which may confuse your visitors.
<p><strong><a href="http://www.joedolson.com/articles/2010/03/when-more-is-less/">When More is Less</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2010/03/when-more-is-less/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Taking a holistic view of SEO in parts.</title>
		<link>http://www.joedolson.com/articles/2009/08/taking-a-holistic-view-of-seo-in-parts/</link>
		<comments>http://www.joedolson.com/articles/2009/08/taking-a-holistic-view-of-seo-in-parts/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 15:40:33 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Search Engines]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[discussion]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[sef]]></category>
		<category><![CDATA[sem]]></category>
		<category><![CDATA[seo]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/?p=582</guid>
		<description><![CDATA[A couple years ago, I wrote an article addressing the differences between working in a search engine friendly manner and working on search engine optimization. That article talked extensively about what is included in optimization which is not necessarily a part of being search engine&#160;friendly. Shari Thurow, a well-respected researcher in the search engine optimization [...]<p><strong><a href="http://www.joedolson.com/articles/2009/08/taking-a-holistic-view-of-seo-in-parts/">Taking a holistic view of SEO in parts.</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<p>A couple years ago, I wrote an <a href="http://www.joedolson.com/articles/2007/05/search-engine-friendly-vs-search-engine-optimized/">article addressing the differences between working in a search engine <em>friendly</em> manner and working on search engine <em>optimization</em></a>. That article talked extensively about what is included in optimization which is not necessarily a part of being search engine&nbsp;friendly. </p>
<p>Shari Thurow, a well-respected researcher in the search engine optimization and usability realm, suggested that separating the two concepts is, in fact,&nbsp;ridiculous. </p>
<p>Well, that may be. However, I think that it&#8217;s crucial to break a task into parts if you want to gain a thorough understanding of the whole. Search engine marketing is an excellent example of a whole which is greater than the sum of it&#8217;s&nbsp;parts. </p>
<p>As I see it, building a search engine friendly site is one of the first stages of best practice search marketing. The adage &#8220;if you build it, they will come&#8221; fails to hold, however: a site which is constructed <em>merely</em> to be search engine friendly will gain little to no&nbsp;traffic.</p>
<h3>Being part of the&nbsp;process</h3>
<p>Being search engine friendly is a part of the process of search engine optimization; which is, itself, a part of the process of search engine marketing. In addition to these two aspects, search engine marketing may also include pay-per-click advertising, print advertising, link building and social media participation. Search engine marketing is a large area, and very, very few people are expert in all aspects. I&#8217;m certainly&nbsp;not. </p>
<p>From a marketing standpoint, what parts of this marketing whole are necessary for your business to succeed is going to vary radically depending on your industry and the way your business intersects with the internet. It will also depend on your definition of success. If you&#8217;re looking to maximize growth, you&#8217;ll probably want to be investing in all aspects of&nbsp;marketing. </p>
<p>So I&#8217;m arguing that search marketing, while clearly a practice in which the parts of the whole are highly interwoven and carry clear dependencies on each other, can nonetheless be separated into it&#8217;s component parts for a variety of reasons, including for the sake of&nbsp;discussion. </p>
<p>Now let me take this a step further. Not only is it possible to separate search engine marketing into separate aspects for discussion, it&#8217;s&nbsp;<em>valuable</em>.</p>
<p>If you want to understand the interactions between the different aspects of a task, it&#8217;s important to have some information about all parts. In this context, it&#8217;s necessary to treat the whole of search engine marketing in a given discussion. However, when you want to understand the details of a specific task, it&#8217;s important to stay focused on your part of that&nbsp;task. </p>
<p>It&#8217;s necessary for practitioners in search engine marketing to know, in general, what the impact their work will be on all aspects of the marketing campaign. It is <em>crucial</em> for practitioners in search marketing to know, in detail, exactly how to perform their own tasks in the best possible manner for their clients.  It&#8217;s important to treat an area of expertise specifically. Talking through the nature of that area; comparing and contrasting it to other related areas; considering the specific nature of tasks within that area of expertise: these are all ways of better defining and refining knowledge on a specific&nbsp;subject. </p>
<h3>Why does this&nbsp;matter?</h3>
<p>It doesn&#8217;t, really. It&#8217;s all semantics. Search engine optimization is the commonly known term, and it frequently is understood to encapsulate search engine marketing. Or the other way around. The industries around search engines and marketing (and just about anything internet) are young, and the vocabularies aren&#8217;t really all the firmly established. As a result, some people have a very firm opinion of what a given term means which may not always coincide with others&nbsp;definitions. </p>
<p>Well, that&#8217;s why we write about it. We&#8217;re all hoping that our definitions will ultimately win. <img src='http://www.joedolson.com/articles/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />
<p><strong><a href="http://www.joedolson.com/articles/2009/08/taking-a-holistic-view-of-seo-in-parts/">Taking a holistic view of SEO in parts.</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2009/08/taking-a-holistic-view-of-seo-in-parts/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>How NOT to use Post meta fields in WordPress Themes</title>
		<link>http://www.joedolson.com/articles/2009/08/how-not-to-use-post-meta-fields-in-wordpress-themes/</link>
		<comments>http://www.joedolson.com/articles/2009/08/how-not-to-use-post-meta-fields-in-wordpress-themes/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 23:09:54 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[best practices]]></category>
		<category><![CDATA[custom fields]]></category>
		<category><![CDATA[post object]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/?p=577</guid>
		<description><![CDATA[A little while ago, while working on a site built by another developer, I came across this rather interesting example of how to use custom fields badly in a WordPress theme (abbreviated for, well,&#160;brevity): (The original also did this for meta keywords and meta descriptions&#8201;&#8212;&#8201;but the demonstration of this &#8220;logic&#8221; only requires one&#160;field.) &#160; &#60;? [...]<p><strong><a href="http://www.joedolson.com/articles/2009/08/how-not-to-use-post-meta-fields-in-wordpress-themes/">How NOT to use Post meta fields in WordPress Themes</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<p>A little while ago, while working on a site built by another developer, I came across this rather interesting example of how to use custom fields <em>badly</em> in a WordPress theme (abbreviated for, well,&nbsp;brevity):</p>
<p>(The original also did this for meta keywords and meta descriptions&thinsp;&#8212;&thinsp;but the demonstration of this &#8220;logic&#8221; only requires one&nbsp;field.)</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">&nbsp;
<span style="color: #000000; font-weight: bold;">&lt;?</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>is_front_page<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
	&lt;title&gt;Handwritten title&lt;/title&gt;
<span style="color: #000000; font-weight: bold;">&lt;?</span> <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elseif</span> <span style="color: #009900;">&#40;</span>is_page<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;page-name&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
	&lt;title&gt;<span style="color: #000000; font-weight: bold;">&lt;?=</span> get_post_meta<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">334</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'meta_title'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">TRUE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span> | <span style="color: #000000; font-weight: bold;">&lt;?</span> bloginfo<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/title&gt;
<span style="color: #000000; font-weight: bold;">&lt;?</span> <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elseif</span> <span style="color: #009900;">&#40;</span>is_page<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;page-name-2&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
	&lt;title&gt;<span style="color: #000000; font-weight: bold;">&lt;?=</span> get_post_meta<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">383</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'meta_title'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">TRUE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span> | <span style="color: #000000; font-weight: bold;">&lt;?</span> bloginfo<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/title&gt;
<span style="color: #000000; font-weight: bold;">&lt;?</span> <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elseif</span> <span style="color: #009900;">&#40;</span>is_page<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;page-name-3&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
	&lt;title&gt;<span style="color: #000000; font-weight: bold;">&lt;?=</span> get_post_meta<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">381</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'meta_title'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">TRUE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span> | <span style="color: #000000; font-weight: bold;">&lt;?</span> bloginfo<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/title&gt;
<span style="color: #000000; font-weight: bold;">&lt;?</span> <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elseif</span> <span style="color: #009900;">&#40;</span>is_page<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;page-name-4&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
	&lt;title&gt;<span style="color: #000000; font-weight: bold;">&lt;?=</span> get_post_meta<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">383</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'meta_title'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">TRUE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span> | <span style="color: #000000; font-weight: bold;">&lt;?</span> bloginfo<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/title&gt;
<span style="color: #000000; font-weight: bold;">&lt;?</span> <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elseif</span> <span style="color: #009900;">&#40;</span>is_page<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;page-name-5&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
	&lt;title&gt;<span style="color: #000000; font-weight: bold;">&lt;?=</span> get_post_meta<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">387</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'meta_title'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">TRUE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span> | <span style="color: #000000; font-weight: bold;">&lt;?</span> bloginfo<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/title&gt;
<span style="color: #000000; font-weight: bold;">&lt;?</span> <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>And so on. For approximately 40 separate pages. It made my brain hurt. For reference, the exact same thing&thinsp;&#8212;&thinsp;for all pages on the site&thinsp;&#8212;&thinsp;could have been accomplished (with better fallback conditions, in fact) with this&nbsp;code:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">&nbsp;
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>get_post_meta<span style="color: #009900;">&#40;</span><span style="color: #000088;">$wp_query</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">post</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">ID</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'meta_title'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">==</span><span style="color: #0000ff;">&quot;&quot;</span> <span style="color: #339933;">&amp;&amp;</span> is_page<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
	&lt;title&gt;<span style="color: #000000; font-weight: bold;">&lt;?</span> wp_title<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'|'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'right'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span> <span style="color: #000000; font-weight: bold;">&lt;?</span> bloginfo<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/title&gt;
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
	&lt;title&gt;<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> <span style="color: #990000;">stripslashes</span><span style="color: #009900;">&#40;</span>get_post_meta<span style="color: #009900;">&#40;</span><span style="color: #000088;">$wp_query</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">post</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">ID</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'meta_title'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span> | <span style="color: #000000; font-weight: bold;">&lt;?</span> bloginfo<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/title&gt;
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Now, the original code may actually look cleaner&thinsp;&#8212;&thinsp;it does, after all, have fewer functions and fewer variables. However, the second example is a <strong>hell</strong> of a lot more&nbsp;maintainable. </p>
<p>If you add a new page to the site in the first example, you have&nbsp;to:</p>
<ol>
<li>Create the new&nbsp;page.</li>
<li>Add a custom field with the&nbsp;title.</li>
<li>Check the new page&#8217;s&nbsp;ID.</li>
<li>Find the theme file which contains the meta data&nbsp;references.</li>
<li>Add a new line in the <code>elseif</code> loops which references your new page first by slug and then by&nbsp;ID</li>
</ol>
<p>With the second example, you&nbsp;simply:</p>
<ol>
<li>Create the new&nbsp;page.</li>
<li>Add a custom field with the&nbsp;title.</li>
</ol>
<p>No coding, no <abbr title="Hypertext PreProcessing">PHP</abbr>, no editing themes&thinsp;&#8212;&thinsp;it just works. Well, isn&#8217;t that handy? This is just basic good coding practice: make your code reusable. There&#8217;s absolutely no reason to code something into your WordPress Themes which is not readily transportable unless you&#8217;re doing yourself a favor by avoiding an unnecessary server call by hard-coding the site name or other known&nbsp;elements. </p>
<p>The basic difference between these two examples is simple: the first requires you to hard code the ID and page slug for each example; the second grabs the post ID from the existing post object. The second example also has a fall-back if no information has been entered in a given custom field&thinsp;&#8212;&thinsp;which is lacking in the original&nbsp;code. </p>
<p>Word to the wise: save yourself some&nbsp;work!</p>
<p><strong><a href="http://www.joedolson.com/articles/2009/08/how-not-to-use-post-meta-fields-in-wordpress-themes/">How NOT to use Post meta fields in WordPress Themes</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2009/08/how-not-to-use-post-meta-fields-in-wordpress-themes/feed/</wfw:commentRss>
		<slash:comments>5</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;2010 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;2010 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>Let&#8217;s find a way to do this right!</title>
		<link>http://www.joedolson.com/articles/2009/03/lets-find-a-way-to-do-this-right/</link>
		<comments>http://www.joedolson.com/articles/2009/03/lets-find-a-way-to-do-this-right/#comments</comments>
		<pubDate>Sat, 21 Mar 2009 17:56:53 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[project planning]]></category>
		<category><![CDATA[scope]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/?p=495</guid>
		<description><![CDATA[Most new projects come with some kind of baggage. An old version of the site with, shall we say, incredible code, an expensive CMS with rotten core HTML generation, tools the site owner has fallen in love with which fail to offer even a nod in the direction of accessibility, or demands for some kind [...]<p><strong><a href="http://www.joedolson.com/articles/2009/03/lets-find-a-way-to-do-this-right/">Let&#8217;s find a way to do this right!</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<p>Most new projects come with some kind of baggage. An old version of the site with, shall we say, <em>incredible</em> code, an expensive <abbr title="Content Management System">CMS</abbr> with rotten core <abbr title="HyperText Markup Language">HTML</abbr> generation, tools the site owner has fallen in love with which fail to offer even a nod in the direction of accessibility, or demands for some kind of concept which only barely registers as possible within the boundaries of <abbr title="HyperText Transfer Protocol">HTTP</abbr>&nbsp;protocol. </p>
<p>And, as the developer, it&#8217;s your job to figure out how to re-do these projects. Usually, there will be more than one way to get the job done: at minimum, you&#8217;ll see a quick and dirty method and an arduous, finicky, complicated method which makes tears spring to your eyes in anticipation of the painstaking&nbsp;hours. </p>
<p>Finding the &#8220;right&#8221; way to do the job is a matter of balancing needs. In an ideal world, the &#8220;right&#8221; way is the method which gives you perfect accessibility, fantastic usability, and helps sell a million copies of your client&#8217;s product in the first 24 hours. <img src='http://www.joedolson.com/articles/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>In the real world, it&#8217;s the best compromise between your time, your client&#8217;s budget, and the needs of the site audience. It may even be a more specific audience&thinsp;&#8212;&thinsp;the users of the specific portion of the site which is creating this&nbsp;challenge. </p>
<h3>The Challenge of&nbsp;Scale</h3>
<p>When you encounter a dozen pages with code which is layered with <code>font</code> elements, excessive <code>span</code> elements and dozens of unnecessary <code>style</code> attributes it&#8217;s a trivial task to strip the extra <abbr title="HyperText Markup Language">HTML</abbr> and replace it with the bare minimum required for your needs. When you encounter 12,000 pages like this, of course, you may be looking at man hours which aren&#8217;t available&nbsp;anymore. </p>
<h3>The Challenge of Legacy&nbsp;Systems</h3>
<p>Rebuilding that <abbr title="Content Management System">CMS</abbr> to deliver a reasonable facsimile of conforming <abbr title="HyperText Markup Language">HTML</abbr> may not only be beyond the scope of practicality&thinsp;&#8212;&thinsp;it could well be a violation of the client&#8217;s license to use the software. If it&#8217;s expensive software, sacrificing a support relationship with the software developer could be very&nbsp;damaging. </p>
<p>With major <abbr title="Content Management System">CMS</abbr> rebuilds, the most important thing is to identify the scope of changes you can make. Maybe you can&#8217;t replace every problem, but it&#8217;s honestly not worth discarding $30,000 worth of software investment for the sake of validation. It <em>is</em> worth discarding $30,000 worth of software for the sake of legitimate accessibility barriers. If the system will not allow you to create an accessible form, or generates a shopping cart which cannot be operated without using a mouse, that software should be&nbsp;replaced.</p>
<h3>The Challenge of Fancy&nbsp;Widgets</h3>
<p>Your client is <em>in love with</em> that poorly-designed Flash widget provided from CrazySite.com. They&#8217;ve just <em>gotta</em> have it! It can&#8217;t be used by anybody who isn&#8217;t using a mouse, the font size can&#8217;t be adjusted and is set to 8pt Arial, and there&#8217;s a constant red flash which might trigger seizures. But it&#8217;s just so&nbsp;cool!</p>
<p>Before you even start discussing the issues above&thinsp;&#8212;&thinsp;the un-sexy and hard to sell accessibility problems&thinsp;&#8212;&thinsp;it&#8217;s good to have a serious discussion with the client the answer one key question: <em>Why</em>. Does the widget serve a purpose for their business? Does it help their users? Does it help sell their product? Sometimes you can successfully get a client to make the right decision on their own once they realize that a function does not actually support their business in any&nbsp;way. </p>
<p>If, on the other hand, it <em>does</em> actually support their business, you&#8217;ve potentially stuck yourself with the greater challenge: replacing the functionality of the widget using an alternate means. Programming APIs are great, but not every site actually offers&nbsp;one. </p>
<h3>The Challenge of Impossible&nbsp;Functionality</h3>
<p><span class="dquo">&#8220;</span>Impossible&#8221; functionality is actually a bit of hyperbole. In my own experience, I&#8217;m not sure I recall ever having been asked for something which was actually <em>impossible</em>. However, I have been asked for functionality where the labor to value ratio was extremely unfavorable to the client, which is probably close&nbsp;enough. </p>
<p>Now, this is a highly variable challenge. Sometimes, the best thing to do here is just to ask for a second opinion from a programmer with more specific knowledge than you have. However, assuming that the request is actually unreasonable, the challenge is pretty much the same as above&thinsp;&#8211;&thinsp;find out what the client <em>really</em> wants. Sometimes, the difficulty is simply terminology. Some clients might use technical terms in an overly general manner, which can sometimes lead to&nbsp;misunderstandings. </p>
<p>Learning to inquire about project needs without using technical terminology is one of the most valuable tools in your scoping toolkit&thinsp;&#8212;&thinsp;it can save you tremendous amounts of time, wasted effort, and frustrated&nbsp;miscommunication. </p>
<h3>What is doing it&nbsp;right?</h3>
<p>So, in the end, what does it mean to do something right? Ultimately, it means not getting lost in the impossibilities of requests and avoiding being distracted by confusing requests. Doing a project right always starts with good scoping: continually asking questions until you&#8217;re absolutely certain that what you&#8217;re working on is really the project requested. Once the project is properly defined, the tools are known and understood, then doing the project itself is simply a matter of time and normal best practices&nbsp;development!</p>
<p><strong><a href="http://www.joedolson.com/articles/2009/03/lets-find-a-way-to-do-this-right/">Let&#8217;s find a way to do this right!</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2009/03/lets-find-a-way-to-do-this-right/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WebAIM Survey on Screen Reader Usage</title>
		<link>http://www.joedolson.com/articles/2009/01/webaim-survey-on-screen-reader-usage/</link>
		<comments>http://www.joedolson.com/articles/2009/01/webaim-survey-on-screen-reader-usage/#comments</comments>
		<pubDate>Sat, 31 Jan 2009 16:13:35 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[screen readers]]></category>
		<category><![CDATA[survey]]></category>
		<category><![CDATA[web accessibility]]></category>
		<category><![CDATA[webaim]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/?p=487</guid>
		<description><![CDATA[WebAIM has just published the preliminary results of a survey of screen reader users. With over 1,100 respondents&#8201;&#8212;&#8201;among whom over 1,000 used a screen reader due to a disability&#8201;&#8212;&#8201;the survey shows promise of revealing an interesting and valuable perspective on the practical usage of screen readers among disabled&#160;populations. Obviously, no survey is perfect&#8201;&#8212;&#8201;but observing the [...]<p><strong><a href="http://www.joedolson.com/articles/2009/01/webaim-survey-on-screen-reader-usage/">WebAIM Survey on Screen Reader Usage</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<p>WebAIM has just published the <a href="http://webaim.org/projects/screenreadersurvey/">preliminary results of a survey of screen reader users</a>. With over 1,100 respondents&thinsp;&#8212;&thinsp;among whom over 1,000 used a screen reader due to a disability&thinsp;&#8212;&thinsp;the survey shows promise of revealing an interesting and valuable perspective on the practical usage of screen readers among disabled&nbsp;populations. </p>
<p>Obviously, no survey is perfect&thinsp;&#8212;&thinsp;but observing the overall scope of responses can effectively expose some aspects of screen reader&nbsp;usage. </p>
<p>In fact, the preliminary results evidence a number of interesting conclusions. Among the statistics are indications that screen reader and web site evaluators who do not have a disability sometimes have a very disparate idea of what is more accessible than those with disabilities&thinsp;&#8212;&thinsp;an issue possibly connected to the evaluator&#8217;s lack of sophisticated familiarity with the screen&nbsp;readers. </p>
<p>It&#8217;s not altogether surprising that we in the web accessibility industry do not always choose the path which is actually most preferred&thinsp;&#8212;&thinsp;our impressions are necessarily biased by our own understanding of the technology, our presumptions of what is sufficient information, and our lack of ability to fully ignore the visual input we <em>do</em>&nbsp;receive. </p>
<p>That&#8217;s what makes this survey so particularly valuable: it begins to expose the difference between common misconceptions of what is accessible and those which are truly of&nbsp;benefit. </p>
<p>In the evidence in this study are included indications that disabled users would prefer that photos which are part of a page should be fully identified: as a photograph, and as the object depicted. There are indications that while site maps may be valuable, they are not in fact widely used by disabled users. There are indications that on-site search and navigation by headings are two of the most important navigation methods on a site for the&nbsp;disabled. </p>
<p>And, unsurprisingly, there&#8217;s fairly definitive confirmation that Flash is difficult for the disabled to&nbsp;use. </p>
<p>Nonetheless, the conclusions drawn from this information aren&#8217;t really that simple. With Flash, for example: the problem with Flash is almost certainly that the Flash web sites visited were not designed with accessibility in mind. Flash <em>can</em> be used accessibly, but in 9 cases out of 10 (a number I&#8217;m <strong>making up for hyperbolic purposes</strong>) it&#8217;s been developed with no regard whatsoever for accessibility issues. So the issue is not precisely with Flash&thinsp;&#8212;&thinsp;rather, the problem is with Flash&nbsp;<em>developers</em>.</p>
<p>The preliminary observations from this survey are well worth reading; and I&#8217;m definitely looking forward to seeing further analysis of the&nbsp;results. </p>
<p>Thank you, WebAIM!
<p><strong><a href="http://www.joedolson.com/articles/2009/01/webaim-survey-on-screen-reader-usage/">WebAIM Survey on Screen Reader Usage</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2009/01/webaim-survey-on-screen-reader-usage/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>
