<?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 standards</title>
	<atom:link href="http://www.joedolson.com/articles/category/web-standards/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>It&#8217;s still important to talk about HTML 4</title>
		<link>http://www.joedolson.com/articles/2010/12/its-still-important-to-talk-about-html-4/</link>
		<comments>http://www.joedolson.com/articles/2010/12/its-still-important-to-talk-about-html-4/#comments</comments>
		<pubDate>Wed, 08 Dec 2010 17:51:52 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Web standards]]></category>
		<category><![CDATA[deprecation]]></category>
		<category><![CDATA[html4]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/?p=883</guid>
		<description><![CDATA[Yes, that does say HTML 4 in the title. This is not an article about HTML 5, or, indeed, about anything which is at all new. But it&#8217;s not just new technology which needs discussion in the web development&#160;sphere! It&#8217;s sometimes hard to remember that HTML 5 is still not in common use&#8201;&#8212;&#8201;and that writing [...]<p><strong><a href="http://www.joedolson.com/articles/2010/12/its-still-important-to-talk-about-html-4/">It&#8217;s still important to talk about HTML 4</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2011 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<p>Yes, that does say <abbr title="HyperText Markup Language">HTML</abbr> <strong>4</strong> in the title. This is not an article about <abbr title="HyperText Markup Language">HTML</abbr> 5, or, indeed, about anything which is at all <em>new</em>. But it&#8217;s not just new technology which needs discussion in the web development&nbsp;sphere!</p>
<p>It&#8217;s sometimes hard to remember that <abbr title="HyperText Markup Language">HTML</abbr> 5 is still not in common use&thinsp;&#8212;&thinsp;and that writing about <abbr title="HyperText Markup Language">HTML</abbr> 5 is something which almost exclusively targets forward-thinking and experienced web developers. <abbr title="HyperText Markup Language">HTML</abbr> 4 is still in widespread use across the web. If you&#8217;re looking at volume, <abbr title="HyperText Markup Language">HTML</abbr> 4.01 and <abbr title="eXtensible HyperText Markup Language - HTML reformulated as XML">XHTML</abbr> 1.0 cover most of the web site editing by webmasters, internet entrepreneurs, content management systems, or on personal&nbsp;sites.</p>
<p>But, more importantly, the internet continues to be littered with tutorials on how to abuse&nbsp;<abbr title="HyperText Markup Language">HTML</abbr>. </p>
<p>If you look for <abbr title="HyperText Markup Language">HTML</abbr> tutorials, you will primarily find fair and reasonable articles on standards-based usage. This is good. You will not, however, <em>exclusively</em> find tutorials which exhibit best practices in front-end development. This is, in part, the fault of an un-revised web: the well-reasoned article you wrote in 1998 may still be present, exhibiting years of inbound links and an honest but obsolete point of view. To the undiscerning reader, the authority of your article may be more apparent than it&#8217;s&nbsp;obsolescence. </p>
<p>I have mixed feelings about the idea of deprecating web content. There&#8217;s a part of me which is hesitant to edit the past by deleting and redirecting from older articles. After all, this isn&#8217;t done in print materials&thinsp;&#8212;&thinsp;if a volume is edited and re-released, the prior version is still available. In fact, the prior versions won&#8217;t even have any reference of any kind to let you know that they&#8217;ve been updated! The web has the power to avoid that problem entirely: in theory, you can delete, revise, or redirect away from any obsolete article on the web, making it impossible for any new explorer to come across out-dated&nbsp;material. </p>
<p>In practice, however, that doesn&#8217;t always happen. The best publications focus (as they should) on producing quality new content, and let their archives stand. While this means that they retain an honest history of their publishing, it also means that authoritative publications may still be promoting outdated&nbsp;ideas. </p>
<p>Today, for example, I ran across a web site which had a professional-looking design (albeit rather generic) and offered a prominent section of <abbr title="HyperText Markup Language">HTML</abbr> tutorials. The first article in the set of tutorials was discussing how to use the <code>font</code> element to change the size, color, and font used in your&nbsp;text. </p>
<p>It even used Comic Sans as the example for an alternate font to use.&nbsp;Seriously.</p>
<p>For obvious reasons, I&#8217;m not actually linking to this site&thinsp;&#8212;&thinsp;the whole point of my article is to try and avoid the promotion of outdated material, after&nbsp;all. </p>
<p>Now, to me, it&#8217;s fairly apparent that this article is sitting here pretty much as advertising fodder. The site isn&#8217;t one which has anything like a prominent position in results for <abbr title="HyperText Markup Language">HTML</abbr> tutorial, or is a place somebody would be expected to land when looking for an <abbr title="HyperText Markup Language">HTML</abbr> tutorial. But it&#8217;s there, and somebody has undoubtedly made use of&nbsp;it. </p>
<h3>Is the article above a representative&nbsp;example?</h3>
<p>In point of fact, a lot of web publications have behaved moderately responsibly about promoting better practices in web development. However, the actual results you&#8217;ll find in a search are all over the map&thinsp;&#8212;&thinsp;and examples like what I cited above are definitely present. In an example search for &#8220;html tutorial change font color&#8221;, among the 9 relevant results in the the top 10&nbsp;included:</p>
<ul>
<li><strong>3</strong> sites which mentioned that the <code>font</code> element had been&nbsp;deprecated;</li>
<li><strong>5</strong> sites which suggested the use of stylesheets&nbsp;instead;</li>
<li><strong>3</strong> sites which linked to a tutorial page on Cascading Style&nbsp;Sheets;</li>
<li><strong>3</strong> sites which linked to a tutorial page on adjusting fonts with Cascading Style&nbsp;Sheets;</li>
<li><strong>0</strong> sites which had removed the information on changing font size with the <code>font</code>&nbsp;element;</li>
<li><strong>4</strong> sites which did none of these things, and recommended use of the <code>font</code> element&nbsp;whole-heartedly;</li>
</ul>
<p>Interestingly, not one of the results was <strong>exclusively</strong> a discussion of changing font color using <abbr title="Cascading Style Sheets">CSS</abbr>. None of them. In fact, only one of these articles even included information on changing colors with <abbr title="Cascading Style Sheets">CSS</abbr> on the page, and the example provided in that article only pertained to changing the colors of of the anchor element. This very fact should make it evident that people searching for <abbr title="HyperText Markup Language">HTML</abbr> information are still very likely to come across bad&nbsp;information. </p>
<p>It&#8217;s not 1998 anymore, but 1998&#8242;s <abbr title="HyperText Markup Language">HTML</abbr> tutorials are still haunting&nbsp;us.</p>
<p>It&#8217;s clear from examining the search results that the larger players in the tutorial realm (Tizag.com and W3schools.com, for example) have done some due diligence in updating their articles, which is good. However, they could do&nbsp;better. </p>
<h3>The&nbsp;Conclusion</h3>
<p>So, I get back to my original point. It&#8217;s still important to talk about older technology: it&#8217;s still relevant to write or promote articles which offer tutorials on simple tasks, like changing font color using <abbr title="Cascading Style Sheets">CSS</abbr> or properly forming an unordered list. The reason it&#8217;s relevant is because the internet knowledge base is polluted&thinsp;&#8212;&thinsp;those who are in control of outdated material should take responsibility for updating their information, ideally, but we don&#8217;t all have that power. The best we can do is continue to promote best practices in all&nbsp;areas. </p>
<p>If you think about it, a significant part of web site updating is done by non-experts: the person tasked with maintaining the web site in a small business may not be at all knowledgeable. The beginning blogger may not know anything about <abbr title="HyperText Markup Language">HTML</abbr>. Their learning will still come through basic searches, starting from a task-oriented question which is probably not technology specific. Those are people we need to reach if we seriously want to improve the quality of <abbr title="HyperText Markup Language">HTML</abbr> on the internet.
<p><strong><a href="http://www.joedolson.com/articles/2010/12/its-still-important-to-talk-about-html-4/">It&#8217;s still important to talk about <abbr title="HyperText Markup Language">HTML</abbr> 4</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/its-still-important-to-talk-about-html-4/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Forthcoming Updates on Federal Section 508 Rules</title>
		<link>http://www.joedolson.com/articles/2010/06/forthcoming-updates-on-federal-section-508-rules/</link>
		<comments>http://www.joedolson.com/articles/2010/06/forthcoming-updates-on-federal-section-508-rules/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 17:23:53 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Web standards]]></category>
		<category><![CDATA[a11y]]></category>
		<category><![CDATA[section508]]></category>
		<category><![CDATA[wcag2]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/?p=820</guid>
		<description><![CDATA[Section 508 web accessibility standards were written as an amendment to the Rehabilitation Act in 1998. In web development terms, this isn&#8217;t short of an eternity&#8201;&#8212;&#8201;and in all practical sense defines an era. The web programming methods and styles of 1998 were radically different to what you see in normal use today. The Section 508 [...]<p><strong><a href="http://www.joedolson.com/articles/2010/06/forthcoming-updates-on-federal-section-508-rules/">Forthcoming Updates on Federal Section 508 Rules</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2011 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<p>Section 508 web accessibility standards were written as an amendment to the Rehabilitation Act in 1998. In web development terms, this isn&#8217;t short of an eternity&thinsp;&#8212;&thinsp;and in all practical sense defines an era. The web programming methods and styles of 1998 were radically different to what you see in normal use today. The <a href="http://www.access-board.gov/sec508/refresh/draft-rule.htm">Section 508 rules have been under revision</a> recently, and were available for public comment until June 21, 2010. Unfortunately, my time didn&#8217;t allow me to take a look at these prior to the expiration of the public comment period&thinsp;&#8212;&thinsp;but that doesn&#8217;t lessen the importance of examining the&nbsp;revisions.</p>
<p>To help explain these changes in Federal web accessibility standards, I&#8217;m going to look at three specific questions. These questions will hopefully answer some of the questions concerning what&#8217;s coming&nbsp;up:</p>
<ol>
<li><a href="http://www.joedolson.com/articles/2010/06/forthcoming-updates-on-federal-section-508-rules/#follow">Has this changed anything about who must follow Section 508&nbsp;guidelines?</a></li>
<li><a href="http://www.joedolson.com/articles/2010/06/forthcoming-updates-on-federal-section-508-rules/#reference">What has been the primary reference for changes to Section 508&nbsp;rules?</a></li>
<li><a href="http://www.joedolson.com/articles/2010/06/forthcoming-updates-on-federal-section-508-rules/#changes">What are the specific changes to the Section 508&nbsp;documents?</a></li>
</ol>
<h3 id="follow">Has this changed anything about who must follow Section 508&nbsp;guidelines?</h3>
<p><em>No</em>. The section 508 rules still exist under the same body of law&thinsp;&#8212;&thinsp;this is not a revision of the application of the law, it&#8217;s only a revision of the methods which are acceptable in following the law. Section 508 continues to apply only to Federal departments or agencies or entities providing services or products to Federal agencies. Further, it only applies to the specific services or products provided by those contracted entities, <em>not</em> to any external presence or non-Federally funded&nbsp;projects.</p>
<h3 id="reference">What has been the primary reference for changes to Section 508&nbsp;rules?</h3>
<p>Based on the document guidelines and on references made in the updated document, it seems that the primary reference was the <a href="http://www.w3.org/TR/WCAG20/">Web Content Accessibility Guidelines, Version 2.0</a>, as created by the World Wide Web Consortium. In fact, there is a specific section referring to <abbr title="Web Content Accessibility Guidelines">WCAG</abbr> harmonization, which indicates that web pages as defined under <abbr title="Web Content Accessibility Guidelines">WCAG</abbr> 2.0 which are conformant to Level AA will be considered to be in conformance with Section 508 (with a few elaborations on additional&nbsp;requirements.) </p>
<p>This is an excellent change, since it explicitly states a subset of requirements which need to be reviewed in addition to <abbr title="Web Content Accessibility Guidelines">WCAG</abbr> 2.0, Level AA requirements.  From a consulting perspective, this simplifies the process: you can review <abbr title="Web Content Accessibility Guidelines">WCAG</abbr> 2.0 requirements, then check the additional requirements under Section&nbsp;508. </p>
<p>The additional requirements are fairly straightforward. A significant percentage of them relate explicitly to video accessibility&thinsp;&#8212;&thinsp;an area which <abbr title="Web Content Accessibility Guidelines">WCAG</abbr> 2.0 frequently describes as Level AAA requirements. It seems clear that the Section 508 <a href="http://www.access-board.gov/sec508/refresh/about.htm">review group</a> was concerned about the use of video in government communications, and wanted to be sure to avoid a situation where creating a video would allow Federal agencies to ignore Section 508 requirements&thinsp;&#8212;&thinsp;which is certainly a wise&nbsp;concern.</p>
<h3 id="changes">What are the specific changes to the Section 508&nbsp;documents?</h3>
<p>To work through all of the specific changes would be a Herculean labor&thinsp;&#8212;&thinsp;and I&#8217;m not prepared to undertake it right this moment. I&#8217;m not sure an article is the right place to do this, in fact. A permanent document demonstrating the changes may be more valuable, in the long run. Suffice it to say that the basic fundamentals of Section 508 have been updated to reflect the changes between versions 1.0 and 2.0 of the Web Content Accessibility Guidelines. The requirements which are beyond the specific conformance expectations of <abbr title="Web Content Accessibility Guidelines">WCAG</abbr> 2.0, Level AA are worth elaborating on,&nbsp;however!</p>
<p><strong>Chapter 4, section 409: User Preferences</strong>. This section explicitly requires that applications allow users to set preferences for color, contrast, font type, size, and focus cursor. Thankfully, the rule is clearly written when it comes to development which is operated within a web browser: web browsers, as platforms which take some settings from an underlying platform, are expected to allow the underlying platform&#8217;s settings for these issues to take&nbsp;precedence. </p>
<p>To clarify this in simple terms: web browsers, or applications running within web browsers should not over-ride settings from the operating&nbsp;system. </p>
<p><strong>Chapter 4, section 413: Authoring Tools</strong>. Essentially, this is an extension of the web authoring tool accessibility guidelines applied within Section 508. What it requires is that any tool which is used to author content or create documents&thinsp;&#8212;&thinsp;such as Microsoft Word, as a desktop application, or as WordPress, as a web-based content authoring tool&thinsp;&#8212;&thinsp;must allow the creation of accessible documents (such as by allowing the creation of <code>alt</code> attributes for images) <em>and</em> must not by default remove any accessibility feature&thinsp;&#8212;&thinsp;such as a video editing tool which would remove captions if editing a captioned&nbsp;video. </p>
<p>The section seems very reasonably written&thinsp;&#8212;&thinsp;it requires prompts for creating conforming documents, but also specifies that not every element should be prompted, as this can decrease&nbsp;usability. </p>
<p><strong>Chapter 6, section 604, part 4: Real-Time Video</strong>. Live, streaming video must include real-time video description, with certain exceptions. This seems pretty explicit, and definitely is a valuable addition for people with disabilities. The exception provides for an exclusion for primarily visual and unattended situations. The example provided is a web camera overlooking a national park&thinsp;&#8212;&thinsp;it is purely visual, and there is little to no significant information to be gained from live video&nbsp;description.</p>
<p><strong>Chapter 6, section 604, part 5: Multiple Visual Areas of Focus</strong>. When a video contains multiple areas of focus&thinsp;&#8212;&thinsp;such as a news program which also includes scrolling event notices beneath the main program&thinsp;&#8212;&thinsp;video description must be provided for all areas of focus. The provision suggests a couple of methods for accomplishing this, including divided audio tracks between left and right channels. It&#8217;s an interesting area to address. I can certainly see that this requirement can open up new areas of information availability to people with disabilities, but I can also see a number of potential problems in implementation. However, that is a question for another&nbsp;time!</p>
<p><strong>Chapter 6, section 607: User Controls for Captions and Video Description</strong>. User controls must meet certain standards for accessibility functionality: in addition to the requirement that controls for closed captions or video description need to be present, they must also be present in the same context as other controls. It is not an acceptable option to hide controls for closed captions or video description in a corner&thinsp;&#8212;&thinsp;they should appear in contexts which have a similar prominence to other controls such as channel selection or volume&nbsp;adjustment. </p>
<p><strong>Chapter 6, section 608: Audio Track and Volume Control</strong>. Essentially, media players must provide users an ability to isolate speech tracks and background sounds. This is obviously dependent on video production in order to function; as such, this section indicates that any videos produced must be produced with separate speech and background audio tracks, in addition to requiring that players must offer controls to separately adjust these&nbsp;tracks. </p>
<p>This clause seems to have some flaws to me&thinsp;&#8212;&thinsp;specifically, in the gross generality of &#8220;background audio&#8221; versus &#8220;speech.&#8221; Stating &#8220;speech&#8221; is very explicit, as it only refers to spoken text. However, in practical terms, there are actually three important bands of audio in synchonized media: background audio which is non-referential (music and some background sound effects), audio which is referential (some background sound effects: a knock at the door or other sound which is reacted to by the video), and speech. It can create a great deal of confusion to exclude those key sound effects from the speech track. The issue is closely related to issues with captioning and video description: it&#8217;s important to note certain sound events, since some conversations or events will lose meaning if the viewer is unaware of relevant background&nbsp;sounds.</p>
<p>On the whole, in my relatively brief examination of the updates to Section 508 standards, I&#8217;m happy with the results. Obviously, there&#8217;s always room for improvement&thinsp;&#8212;&thinsp;there&#8217;s still room for improvement in <abbr title="Web Content Accessibility Guidelines">WCAG</abbr> 2.0, which Section 508 could have changed&thinsp;&#8212;&thinsp;but I&#8217;d rather have a single set of base standards to reference than requirements which contradict each other! Working with standards isn&#8217;t the answer to every accessibility quandary, but you should never just ignore standards out of ignorance&thinsp;&#8212;&thinsp;instead, ignore them out of an educated disagreement. <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/2010/06/forthcoming-updates-on-federal-section-508-rules/">Forthcoming Updates on Federal Section 508 Rules</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/06/forthcoming-updates-on-federal-section-508-rules/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<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;2011 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;2011 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>6</slash:comments>
		</item>
		<item>
		<title>When the right hand doesn&#8217;t listen to the left.</title>
		<link>http://www.joedolson.com/articles/2010/01/when-the-right-hand-doesnt-listen-to-the-left/</link>
		<comments>http://www.joedolson.com/articles/2010/01/when-the-right-hand-doesnt-listen-to-the-left/#comments</comments>
		<pubDate>Sun, 24 Jan 2010 19:47:03 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Web standards]]></category>
		<category><![CDATA[alistapart]]></category>
		<category><![CDATA[forms]]></category>
		<category><![CDATA[html]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/?p=650</guid>
		<description><![CDATA[Thanks to the power of internet criticism, the code discussed in this blog post has since been fixed! Sometimes just making a complaint is all it takes to get something fixed. I was highly critical of the code authors for this low-quality code; but they truly did care, and made changes. Thank&#160;you. Authoring forms is [...]<p><strong><a href="http://www.joedolson.com/articles/2010/01/when-the-right-hand-doesnt-listen-to-the-left/">When the right hand doesn&#8217;t listen to the left.</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2011 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<div id="update">
<p>Thanks to the power of internet criticism, the code discussed in this blog post has since been fixed! Sometimes just making a complaint is all it takes to get something fixed. I was highly critical of the code authors for this low-quality code; but they truly did care, and made changes. Thank&nbsp;you.</p>
</div>
<p>Authoring forms is an important part of keeping the web fully accessible&thinsp;&#8212;&thinsp;not just providing access to information, but allowing users to fully interact with the web in all it&#8217;s glory. Interactivity is what makes the web powerful and&nbsp;persuasive.</p>
<p>As such, I can&#8217;t help but be frustrated when I run across basic form construction which is simply well below the standards I&#8217;ve come to expect. A form like this one, for example, is incredibly irritating to my sense of what the web should&nbsp;be:</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;">  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">form</span> <span style="color: #000066;">action</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;/store/add_event_to_cart/53&quot;</span> autocomplete<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;off&quot;</span> <span style="color: #000066;">method</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;post&quot;</span>&gt;</span>    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">table</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span> nowrap&gt;&lt;<span style="color: #000000; font-weight: bold;">span</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;required&quot;</span>&gt;</span>First Name:<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;attendee_first_name&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;attendee[first_name]&quot;</span> <span style="color: #000066;">size</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;40&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text&quot;</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #66cc66;">/</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span> nowrap&gt;&lt;<span style="color: #000000; font-weight: bold;">span</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;required&quot;</span>&gt;</span>Last Name:<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
&nbsp;
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;attendee_last_name&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;attendee[last_name]&quot;</span> <span style="color: #000066;">size</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;40&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text&quot;</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #66cc66;">/</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
&nbsp;
...[numerous similar fields deleted to avoid boring the hell out of you]...
&nbsp;
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span> <span style="color: #000066;">colspan</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;2&quot;</span>&gt;</span><span style="color: #ddbb00;">&amp;nbsp;</span><span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span> <span style="color: #000066;">colspan</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;2&quot;</span>&gt;</span>
&nbsp;
      <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;attendee[sponsor_email]&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;hidden&quot;</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #66cc66;">/</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">checked</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;checked&quot;</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;attendee_sponsor_email&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;attendee[sponsor_email]&quot;</span> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;vertical-align: top;&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;checkbox&quot;</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;1&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span>
      <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;display: inline-block; width: 360px;&quot;</span>&gt;</span>Please sign me up to get occasional information from select sponsors, partners, and other fun people.<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span> <span style="color: #000066;">colspan</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;2&quot;</span>&gt;</span>Discount code (if applicable): <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">input</span> autocomplete<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;off&quot;</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;attendee_discount_code&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;attendee[discount_code]&quot;</span> <span style="color: #000066;">size</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;10&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text&quot;</span> <span style="color: #66cc66;">/</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">tr</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">table</span>&gt;</span>
&nbsp;
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;commit&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;submit&quot;</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Add Attendee&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">form</span>&gt;</span></pre></div></div>

<p>But in this case, it&#8217;s not just the nature of the form itself. There&#8217;s a lot wrong here&thinsp;&#8212;&thinsp;the use of <code>table</code> for layout is a big problem, but even if you&#8217;re accepting the table as logical (and there <em>is</em> a particular logic which would except tables for forms,) the lack of a summary or headings in that table and the use of empty table cells to provide spacing is a big problem. Then we look at the form itself&thinsp;&#8212;&thinsp;not a <code>label</code> element in sight; instead we have plain text using a <code>span</code> and <code>class</code> to indicate if a field is required. There&#8217;s no coded indication that a field is required; it&#8217;s a purely visual&nbsp;indicator. </p>
<p>My sense of accessibility&nbsp;hurts.</p>
<p>And do you want to know where this code came from? <a href="https://store.aneventapart.com/store/add_attendee/53">Here it&nbsp;is</a>.</p>
<p>Here are a few good articles on high quality form construction&thinsp;&#8211;&thinsp;but don&#8217;t bother reading them. After all, they&nbsp;didn&#8217;t.</p>
<ul>
<li><a href="http://www.alistapart.com/articles/sensibleforms">Sensible&nbsp;Forms</a></li>
<li><a href="http://www.alistapart.com/articles/prettyaccessibleforms/">Pretty Accessible&nbsp;Forms</a></li>
<li><a href="http://www.alistapart.com/articles/makingcompactformsmoreaccessible">Making Compact Forms more&nbsp;Accessible</a></li>
</ul>
<p>This is something that pisses me off; but you can find it everywhere. Large organizations responsible for web publishing don&#8217;t always maintain the standards they talk about. Is it just talk, then? Does the fact that <a href="http://www.aneventapart.com">An Event Apart</a> does what <a href="http://www.alistapart.com">A List Apart</a> condemns mean following standards and implementing accessibility doesn&#8217;t mean&nbsp;anything? </p>
<p>Thankfully, no. It does mean that web sites aren&#8217;t perfect; and the people doing the labor are frequently not the people who know best how it should be done. But it is a problem&thinsp;&#8212;&thinsp;as much as we can evangelize best practices, it doesn&#8217;t mean that they&#8217;ll be&nbsp;used.</p>
<p>There&#8217;s a lot of pressure in the web industry to produce fast results. Sometimes this means people take shortcuts; sometimes it means hiring people who may not be as fully trained or qualified as you really wish you had; and sometimes it means things just go&nbsp;wrong.</p>
<p>But I&#8217;m left with a definite feeling of frustration to find that a leading web standards event like An Event Apart should exhibit this kind of <abbr title="HyperText Markup Language">HTML</abbr> on their web&nbsp;site. </p>
<h3>How can this be&nbsp;avoided?</h3>
<p>Ooh, that&#8217;s a tough one. Work processes, new employees, insufficient testing&thinsp;&#8212;&thinsp;all of these can allow inferior code onto a site. As a freelance designer, it&#8217;s positively rare that I have sole control over new content or template changes after the initial launch. As a member of a team, I can only imagine that it&#8217;s even more difficult&thinsp;&#8212;&thinsp;anybody with sufficient permissions to commit a change can change the overall level of competency exhibited on the&nbsp;site.</p>
<p>Application of a tool like Marco Battilani&#8217;s <a href="http://accessites.org/site/2006/07/big-red-angry-text/">Big Red Angry Text</a> technique can help, but it&#8217;s a little scary to put into a published site if you know that the editing won&#8217;t always be done by knowledgeable people. It may demonstrate mistakes, but can sometimes serve to do nothing more than piss off or frustrate your client or staff. It depends on the control and education you&#8217;ve been able to&nbsp;impose.</p>
<ol>
<li>Educate. Teach the people who will be doing work on the site as much as you can&thinsp;&#8211;&thinsp;the what and the&nbsp;why.</li>
<li>Review the site. Review the work that&#8217;s been done; a 30 second glance at the code is likely to result in fixing at least some errors, and will hopefully prevent future errors of the same&nbsp;type.</li>
<li>Provide tools for self-checking. Not a first choice, since all automated tools are flawed by their very nature, but they can still be of&nbsp;use.</li>
</ol>
<p>It&#8217;s not always practical; but if following these steps is at all an option, it&#8217;s really worthwhile.
<p><strong><a href="http://www.joedolson.com/articles/2010/01/when-the-right-hand-doesnt-listen-to-the-left/">When the right hand doesn&#8217;t listen to the left.</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/01/when-the-right-hand-doesnt-listen-to-the-left/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Minimum Color Contrast Ratio Changed in WCAG 2</title>
		<link>http://www.joedolson.com/articles/2008/12/minimum-color-contrast-ratio-changed-in-wcag-2/</link>
		<comments>http://www.joedolson.com/articles/2008/12/minimum-color-contrast-ratio-changed-in-wcag-2/#comments</comments>
		<pubDate>Mon, 15 Dec 2008 16:24:22 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Web standards]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/?p=461</guid>
		<description><![CDATA[In the final release of WCAG 2, the acceptable minimum color contrast ratio was changed from 5:1 to 4.5:1. I&#8217;ve updated both my color contrast tests&#8201;&#8212;&#8201;Color Contrast Comparison Tool and the Color Contrast Spectrum Tool to reflect the change in contrast&#160;ratio. What does this change&#160;mean? Essentially, this means that the working group decided that color [...]<p><strong><a href="http://www.joedolson.com/articles/2008/12/minimum-color-contrast-ratio-changed-in-wcag-2/">Minimum Color Contrast Ratio Changed in WCAG 2</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2011 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<p>In the final release of <abbr title="Web Content Accessibility Guidelines">WCAG</abbr> 2, the acceptable minimum color contrast ratio was changed from <code>5:1</code> to <code>4.5:1</code>. I&#8217;ve updated both my color contrast tests&thinsp;&#8212;&thinsp;<a href="/color-contrast-compare.php">Color Contrast Comparison Tool</a> and the <a href="/color-contrast-tester.php">Color Contrast Spectrum Tool</a> to reflect the change in contrast&nbsp;ratio.</p>
<h3>What does this change&nbsp;mean?</h3>
<p>Essentially, this means that the working group decided that color combinations with lower contrast (more similar colors) were acceptable for general use on the web. This is certainly good news for designers, since it will provide for a greater variety design voices than&nbsp;previously. </p>
<blockquote cite="http://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-contrast.html">
<p>The contrast ratio of 4.5:1 was chosen for level AA because it compensated for the loss in contrast sensitivity usually experienced by users with vision loss equivalent to approximately 20/40 vision. (20/40 calculates to approximately 4.5:1.) 20/40 is commonly reported as typical visual acuity of elders at roughly age&nbsp;80.</p>
<p><cite>Understanding <abbr title="Web Content Accessibility Guidelines">WCAG</abbr> 2.0; <a href="http://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-contrast.html">Understanding Success Criterion&nbsp;1.4.3</a></cite></p>
</blockquote>
<p>While the previous higher ratio requirement may have accommodated for an even larger audience, the decision of the committee appears to have been that it had crossed a line of diminishing returns, and that the lower requirement is sufficient for most common&nbsp;use.</p>
<p>This effects the minimum ratio to accommodate at Level AA, and the minimum ratio to accommodate at Level AAA for large&nbsp;print.</p>
<p>Still&thinsp;&#8212;&thinsp;don&#8217;t get carried away!
<p><strong><a href="http://www.joedolson.com/articles/2008/12/minimum-color-contrast-ratio-changed-in-wcag-2/">Minimum Color Contrast Ratio Changed in <abbr title="Web Content Accessibility Guidelines">WCAG</abbr> 2</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/12/minimum-color-contrast-ratio-changed-in-wcag-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>WCAG 2 Reaches Recommendation Status</title>
		<link>http://www.joedolson.com/articles/2008/12/wcag-2-reaches-recommendation-status/</link>
		<comments>http://www.joedolson.com/articles/2008/12/wcag-2-reaches-recommendation-status/#comments</comments>
		<pubDate>Thu, 11 Dec 2008 19:20:25 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Web standards]]></category>
		<category><![CDATA[recommendation]]></category>
		<category><![CDATA[w3c]]></category>
		<category><![CDATA[wcag]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/?p=457</guid>
		<description><![CDATA[It&#8217;s been a long time coming, but as of today the standards of accessibility expressed in the Web Content Accessibility Guidelines are officially&#160;updated. A W3C recommendation is the most final state a document can reach in the W3C standards system, and should now be considered the standard document for accessibility, superceding WCAG&#160;1. A W3C Recommendation [...]<p><strong><a href="http://www.joedolson.com/articles/2008/12/wcag-2-reaches-recommendation-status/">WCAG 2 Reaches Recommendation Status</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2011 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a long time coming, but as of today the standards of accessibility expressed in the Web Content Accessibility Guidelines are officially&nbsp;updated.</p>
<p>A <a href="http://www.w3.org/2004/02/Process-20040205/tr.html#RecsW3C"><abbr title="World Wide Web Consortium">W3C</abbr> recommendation</a> is the most final state a document can reach in the <abbr title="World Wide Web Consortium">W3C</abbr> standards system, and should now be considered the standard document for accessibility, superceding <abbr title="Web Content Accessibility Guidelines">WCAG</abbr>&nbsp;1.</p>
<blockquote cite="http://www.w3.org/2004/02/Process-20040205/tr.html#RecsW3C">
<p>A <abbr title="World Wide Web Consortium">W3C</abbr> Recommendation is a specification or set of guidelines that, after extensive consensus-building, has received the endorsement of <abbr title="World Wide Web Consortium">W3C</abbr> Members and the Director. <abbr title="World Wide Web Consortium">W3C</abbr> recommends the wide deployment of its Recommendations. Note: <abbr title="World Wide Web Consortium">W3C</abbr> Recommendations are similar to the standards published by other&nbsp;organizations.</p>
</blockquote>
<p>Although there has been a great deal of controversy over the past few years concerning the validity of the <abbr title="Web Content Accessibility Guidelines">WCAG</abbr> 2 revision, the final document has managed to deal with the greater proportion of problems. Not everything, certainly&thinsp;&#8212;&thinsp;but expecting perfection in such a vast area of concern is, frankly, an unrealistic&nbsp;concern. </p>
<p><a href="http://webaim.org/blog/wcag-20-finalized/">Jared Smith recommends</a> reviewing the <a href="http://www.w3.org/TR/2001/WD-WCAG20-20010125/">original draft from January 2001</a> to make comparison&thinsp;&#8212;&thinsp;could be entertaining! However, if you&#8217;ve got limited time to spend, now is definitely the time to make certain you&#8217;re thoroughly familiar with the new standard for web accessibility. <em>It&#8217;s actually&nbsp;final.</em></p>
<ul>
<li><a href="http://www.w3.org/TR/2008/REC-WCAG20-20081211/"><abbr title="Web Content Accessibility Guidelines">WCAG</abbr> 2 Recommendation&nbsp;Document</a></li>
<li><a href="http://www.w3.org/2008/12/wcag20-pressrelease.html">Press&nbsp;Release</a></li>
</ul>
<p><strong><a href="http://www.joedolson.com/articles/2008/12/wcag-2-reaches-recommendation-status/"><abbr title="Web Content Accessibility Guidelines">WCAG</abbr> 2 Reaches Recommendation Status</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/12/wcag-2-reaches-recommendation-status/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Web site Tune-up: 8 Quick Checkups</title>
		<link>http://www.joedolson.com/articles/2008/06/8-quick-checkups-for-web-site-optimization/</link>
		<comments>http://www.joedolson.com/articles/2008/06/8-quick-checkups-for-web-site-optimization/#comments</comments>
		<pubDate>Mon, 02 Jun 2008 12:56:11 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Search Engines]]></category>
		<category><![CDATA[Web standards]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[seo]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/?p=245</guid>
		<description><![CDATA[Perfecting a web site is a long and involved process. There&#8217;s no getting around the fact that if you want every aspect of your site to be right&#8201;&#8212;&#8201;accessibility, search optimization, and just all-around pizzazz, you&#8217;ve probably got some significant work to do. However, that&#8217;s not to say that there aren&#8217;t things you can check quickly [...]<p><strong><a href="http://www.joedolson.com/articles/2008/06/8-quick-checkups-for-web-site-optimization/">Web site Tune-up: 8 Quick Checkups</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2011 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<p>Perfecting a web site is a long and involved process. There&#8217;s no getting around the fact that if you want every aspect of your site to be right&thinsp;&#8212;&thinsp;accessibility, search optimization, and just all-around <em>pizzazz</em>, you&#8217;ve probably got some significant work to do. However, that&#8217;s not to say that there aren&#8217;t things you can check quickly and efficiently to make sure you&#8217;re not making some of the more egregious&nbsp;errors!</p>
<p>Here are 8 speedy checkups (in no particular order) which you can easily perform on your site to inspect it for problems. No methods suggested require special knowledge of <abbr title="HyperText Markup Language">HTML</abbr> or web programming. Excluding acquiring and installing software, these tasks shouldn&#8217;t take more than a few minutes for most&nbsp;sites. </p>
<p>That doesn&#8217;t include <em>fixing</em> any problems found, of&nbsp;course&#8230; </p>
<p><span id="more-245"></span></p>
<ol>
<li><a href="#headings">Check&nbsp;Headings</a></li>
<li><a href="#alternatives">Check for Image&nbsp;Alternatives</a></li>
<li><a href="#javascript">Behavior without&nbsp;Javascript</a></li>
<li><a href="#titles">Unique Page&nbsp;Titles</a></li>
<li><a href="#links">Check for Broken&nbsp;Links</a></li>
<li><a href="#canonicalization"><abbr title="Uniform Resource Locator">URL</abbr>&nbsp;Canonicalization</a></li>
<li><a href="#robots">Robots&nbsp;Control</a></li>
<li><a href="#downloads">Download&nbsp;Times</a></li>
</ol>
<h3 id="headings">1. Check for&nbsp;Headings</h3>
<p>The use of appropriately coded <abbr title="HyperText Markup Language">HTML</abbr> headings is important for both SEO and Accessibility. Headings should be used to define the content structure of the page, semantically demonstrating the importance of that text and providing additional in-page navigation tools for screen reader&nbsp;users.</p>
<p><strong>Software required</strong>: <a href="http://www.mozilla.com/firefox/">Firefox Web Browser</a>, <a href="http://www.standards-schmandards.com/projects/fangs/">FANGS Extension for&nbsp;Firefox</a>.</p>
<p><strong>What to do</strong>: After installing Fangs, navigate to the <em>Tools</em> menu in Firefox and select <em>Fangs</em>. Flip to the &#8220;Headings List&#8221; tab in Fangs. The output displayed in this list shows all of the headings on the current page and their heading levels. Sometimes you&#8217;ll see output with a number but no text&thinsp;&#8212;&thinsp;these are most likely headings which are using images within the heading&nbsp;element. </p>
<p>Which leads to the next&nbsp;point&#8230;</p>
<h3 id="alternatives">2. Check for Image Alternative&nbsp;Text</h3>
<p>Providing alternative text attributes for your images is critical to accessibility. The logic behind <em>how</em> to <a href="http://www.joedolson.com/articles/2007/09/search-optimization-accessibility-and-images-best-practices/">provide alt attributes appropriately</a> can be complicated, but the presence of the attribute itself is always&nbsp;necessary. </p>
<p>The quickest check for this problem is very simple: disable images in your&nbsp;browser.</p>
<p><strong>Software required</strong>: Any&nbsp;browser. </p>
<p><strong>What to&nbsp;do</strong>: </p>
<ul>
<li>Firefox: <code>Tools &raquo; Options &raquo; Content &raquo; "Load Images Automatically" --&nbsp;Unchecked</code></li>
<li>Internet Explorer: <code>Tools &raquo; Internet Options &raquo; Advanced &raquo; Scroll to "Multimedia" &raquo; "Show pictures" --&nbsp;Unchecked</code></li>
<li>Opera: <code>Tools &raquo; Preferences &raquo; Web Pages &raquo; "Images" -- Select "No&nbsp;Images"</code></li>
<li>Safari 3 for Windows: Although you can disable images, the browser does not automatically display <code>alt</code> attributes in their&nbsp;place.</li>
</ul>
<p>The results will vary somewhat from browser to browser, but in general they&#8217;re fairly consistent. If an alt attribute is present and contains text, that text will be displayed in place of the image. Look at the text and decide whether it&#8217;s appropriate! If there is no alt attribute text, the image will be left as a blank space. If there is no <code>alt</code> attribute at <em>all</em>, however, the image will instead be replaced in some cases by the file name of the image, in others by a simple broken image icon. If the navigation button for &#8220;Purchase my Widgets&#8221; suddenly says &#8220;Nav_image_10x10_30.gif&#8221; then that&#8217;s really not&nbsp;useful.</p>
<h3 id="javascript">3. Behavior without&nbsp;Javascript</h3>
<p>The definitive key concern about Javascript is that search spiders browse the web without it. For accessibility, the issue is <a href="http://www.webaim.org/techniques/javascript/">significantly more complex</a>, but there can be no question that making sure that your site is usable without Javascript is a major concern for both&nbsp;concerns. </p>
<p>As with images, the simple test is to disable Javascript in your&nbsp;browser.</p>
<p><strong>Software required</strong>: Any&nbsp;browser. </p>
<p><strong>What to&nbsp;do</strong>: </p>
<ul>
<li>Firefox: <code>Tools &raquo; Options &raquo; Content &raquo; "Enable Javascript" --&nbsp;Unchecked</code></li>
<li>Internet Explorer: <code>Tools &raquo; Internet Options &raquo; Security &raquo; Scroll to "Scripting" &raquo; "Active Scripting" --&nbsp;Disable</code></li>
<li>Opera: <code>Tools &raquo; Quick Preferences &raquo; "Enable Javascript" --&nbsp;Unchecked"</code></li>
<li>Safari 3 for Windows: <code>Edit &raquo; Preferences &raquo; Security &raquo; "Enable Javascript" --&nbsp;Unchecked</code></li>
</ul>
<p>If there are problems, they should become immediately apparent. I&#8217;ve seen occasions where the entire content area vanished or the entire navigation menu suddenly disappeared. It may be more subtle, but the simple test is to look for key content which is no longer available to your&nbsp;browser. </p>
<h3 id="titles">4. Page&nbsp;Titles</h3>
<p>A unique page title for every page of your site is a crucial part of best practices for both accessibility and SEO. It helps orient your visitors, and allows searchers to know what they&#8217;re coming&nbsp;to. </p>
<p><strong>Test Page Titles (Simple&nbsp;version)</strong></p>
<p><strong>Software required</strong>: Any&nbsp;browser. </p>
<p><strong>What to do</strong>: Look at the top of your browser window. Does it say something like &#8220;Untitled Document&#8221; or just read the <abbr title="Uniform Resource Locator">URL</abbr> of your site? You&#8217;ve probably got a problem. In order to really get anywhere with this, you need to check most pages of your site, so for larger sites, you may want a more thorough&nbsp;method.</p>
<p><strong>Test Page Titles (Thorough&nbsp;version)</strong></p>
<p><strong>Software required</strong>: <a href="http://home.snafu.de/tilman/xenulink.html">Xenu Link Sleuth</a> or similar site spidering&nbsp;tool.</p>
<p><strong>What to do</strong>: Install the software and run it. Navigate to the <em>File</em> menu and select &#8220;Check <abbr title="Uniform Resource Locator">URL</abbr>.&#8221; Enter the <abbr title="Uniform Resource Locator">URL</abbr> of your web site. Select &#8220;OK.&#8221; Wait. The tool will now spider your web site and generate a list of linked documents on your site. This will include all images, external links, etc., by default, although it can be configured&nbsp;differently. </p>
<p>One of the columns in the results is &#8220;Title.&#8221; If you sort the results by type (select the header of the column &#8220;Type&#8221;) such that <code>text/html</code> filters to the top, you&#8217;ll have a list of pages on your site. Simply scan down the &#8220;Title&#8221; column. Are they all the same, or are large numbers of pages the same? That&#8217;s a problem. Every page should have a unique&nbsp;title. </p>
<h3 id="links">5. Broken&nbsp;Links</h3>
<p>Don&#8217;t close Xenu yet&thinsp;&#8212;&thinsp;because it&#8217;ll also check for broken links. Re-sort the output by &#8220;Status.&#8221; Find the section with the status of &#8220;not found.&#8221; Any file which came up as not found is, simply stated, a broken link. Broken links can have a lot of consequences for your website&thinsp;&#8212;&thinsp;loss of trust, frustration for your visitors, or even causing an inability for visitors to get key&nbsp;information. </p>
<h3 id="canonicalization">6. <abbr title="Uniform Resource Locator">URL</abbr>&nbsp;Canonicalization</h3>
<p><abbr title="Uniform Resource Locator">URL</abbr> Canonicalization is a big, fancy word which simply means that all possible variations on a page&#8217;s <abbr title="Uniform Resource Locator">URL</abbr> lead ultimately to the same&nbsp;<abbr title="Uniform Resource Locator">URL</abbr>. </p>
<p>The issue is simply that all of these URLs can be exactly the same&nbsp;page:</p>
<ul>
<li>http://www.yourdomain.com/index.php
<li>http://www.yourdomain.com/</li>
<li>http://www.yourdomain.com/index.php?t=success&#038;r=fail</li>
<li>http://www.yourdomain.com/index.php?r=fail&#038;t=success</li>
<li>http://yourdomain.com/index.php
<li>http://yourdomain.com/</li>
<li>http://yourdomain.com/index.php?t=success&#038;r=fail</li>
<li>http://yourdomain.com/index.php?r=fail&#038;t=success</li>
</ul>
<p>And it&#8217;s entirely probable there could be more. Now, checking for all variations can be a somewhat tedious task. However, the one big variation which is likely to apply to every page of your site is the &#8220;www&#8221; or no &#8220;www&#8221; conundrum. It really doesn&#8217;t matter which you choose as your preferred site&thinsp;&#8212;&thinsp;but you should absolutely choose just&nbsp;one. </p>
<p>Testing the behavior of your site with this problem is absurdly&nbsp;easy. </p>
<p><strong>Software required</strong>: Any&nbsp;browser. </p>
<p><strong>What to do</strong>: Go to your website. Place your cursor in the address bar of your browser and change the <abbr title="Uniform Resource Locator">URL</abbr>. If your site is currently displaying &#8220;http://www.yourdomain.com,&#8221; remove the &#8220;www.&#8221;. If it&#8217;s currently displaying &#8220;http://yourdomain.com,&#8221; add it&nbsp;in. </p>
<p>There are three basic possibilities for what will happen at this&nbsp;point:</p>
<ol>
<li>The site will automatically redirect to the alternate version. If you change the address, hit return, and the <abbr title="Uniform Resource Locator">URL</abbr> immediately switches back to what it was before, then this is what has happened. This is the correct behavior, although from a technical standpoint you&#8217;ll also want to check that <a href="http://www.internetofficer.com/seo-tool/redirect-check/">the right type of redirect has happened</a>. (You want a 301&nbsp;redirect.) </li>
<li>Nothing will happen. The site will reload identically with the new <abbr title="Uniform Resource Locator">URL</abbr>. This isn&#8217;t a total disaster, but it does mean that your site isn&#8217;t canonicalized&thinsp;&#8212;&thinsp;both versions of your URLs are available. You should investigate implementing <a href="http://www.mattcutts.com/blog/seo-advice-url-canonicalization/"><abbr title="Uniform Resource Locator">URL</abbr> canonicalization</a>.
<li>You&#8217;ll get a file not found or server error. This is <em>bad</em>. This may mean that your hosting service is not configured to send both versions of your <abbr title="Uniform Resource Locator">URL</abbr> to your account, although this isn&#8217;t the only explanation. You can&#8217;t ever assume that people will link to the correct version of your <abbr title="Uniform Resource Locator">URL</abbr> or check their links, so it&#8217;s very important that every possible variation will eventually arrive at the right&nbsp;destination!</li>
</ol>
<h3 id="robots">7. Robots&nbsp;Control</h3>
<p>Most of the time, robots control isn&#8217;t a critical part of your site. The various directives, either in meta elements on your web site pages or in a robots.txt file on your site are usually intended to prevent specific information from being indexed by search engine spiders. If it&#8217;s missing entirely, it&#8217;s not really the end of the&nbsp;world.</p>
<p>However, <em>if</em> you have a robots.txt problem, you have a <strong>serious</strong> problem. If you&#8217;ve accidentally set your robots.txt file or meta elements to block robots from crawling or indexing your pages, then you&#8217;re simply dead in the&nbsp;water. </p>
<p>This is somewhat of a multiple step&nbsp;process:</p>
<ol>
<li>Enter your home page <abbr title="Uniform Resource Locator">URL</abbr> in your browser address bar like this: http://www.yourdomain.com/robots.txt. If you receive an error message, than the file simply isn&#8217;t there. You may wish to add one&thinsp;&#8212;&thinsp;to reduce the number of error messages in your server logs, if nothing else, but you can be pretty certain that you aren&#8217;t blocking search spiders with&nbsp;it.</li>
<li>If you do have a robots.txt file, you&#8217;ll see it displayed in your browser. It&#8217;s a very simple file format, consisting primarily of three types of statement: <em>User-Agent</em>, <em>Disallow</em> and <em>Allow</em>. By default, everything is allowed; so most robots.txt files only contain User-Agent and Disallow statements. This is the Disallow statement you really don&#8217;t want to see:
<pre>
User-Agent: *
Disallow: /
</pre>
<p>In simple terms, this says &#8220;No search spiders are allowed to access this site.&#8221; The single forward slash means that the statement refers to all directories on the site. The * means all user agents&thinsp;&#8212;&thinsp;which includes Google&#8217;s search spider, Yahoo&#8217;s search spider, and so&nbsp;on. </p>
<p>A more common file will be something like&nbsp;this:</p>
<pre>
User-Agent: *
Disallow: /private/
Disallow: /images/
Disallow: /admin/
</pre>
<p>This is more specifically disallowing three folders which the web site owner does not want available to the&nbsp;public.</p>
<p>If you want to check specific URLs, or find that your robots.txt is quite complicated (they can be!) Google offers robots.txt checking tools in their <a href="https://www.google.com/webmasters/tools/">webmaster tools</a>. (Requires a Google&nbsp;account.)
</li>
</ol>
<p>That&#8217;s taken care of your robots.txt file; but what about more specific directions? Meta elements can provide instructions to robots as well, which operate on a page specific basis. These are much harder to check, since it requires a page by page check&thinsp;&#8212;&thinsp;and, frankly, there may be specific pages which you don&#8217;t want indexed. Regardless, this is what to look&nbsp;for:</p>
<p><code><br />
<meta name="robots" content="noindex,nofollow" /><br />
</code></p>
<p>Or variations on that theme. The code states that, for the current page, spiders should not index the information and should not follow links from the page. If you find this on a page which you&#8217;re having trouble getting in the search index: that&#8217;s the&nbsp;reason!</p>
<h3 id="downloads">8. Check your Web site&#8217;s Download&nbsp;Time</h3>
<p>The time it takes your site to download can have a huge impact on the likelihood a visitor will stick around. Although broadband is popular, it&#8217;s still just barely a majority of the internet market. Assuming that visitors will wait around to see that high-resolution image of your product is simply&nbsp;foolish.</p>
<p>It&#8217;s easy to check approximately how long it will take your site to load at a variety of download speeds. The actual download times for a given user will be hugely variable, since there are many more factors than raw bandwidth at play when accessing a web site&thinsp;&#8212;&thinsp;but this quick test will at least give you an&nbsp;idea.</p>
<p>Visit <a href="http://www.websiteoptimization.com/services/analyze/">the web site optimization analyzer</a>. This tool will give you the total anticipated download time at a variety of bandwidths, and also breaks down, file by file, the total size of the elements of your web&nbsp;page. </p>
<p>Even if you&#8217;re satisfied with the time required to download your site (8 seconds at 56k used to be the benchmark; although you need to make your own decision depending on your site&#8217;s needs,) you can use this information to streamline your site. Optimizing graphics and only loading scripts on pages which actually use them can make a <em>huge</em>&nbsp;difference.</p>
<h3>Conclusion</h3>
<p>Touching on these issues won&#8217;t clear up every problem you could have: but they can save you a lot of headaches. Fixing these issues will generally improve the overall condition of your web site in a variety of ways. You&#8217;ll end up in a better position to work on SEO and you&#8217;ll offer your visitors a more accessible web&nbsp;site. </p>
<p>It can&#8217;t hurt to&nbsp;check! </p>
<p><strong><a href="http://www.joedolson.com/articles/2008/06/8-quick-checkups-for-web-site-optimization/">Web site Tune-up: 8 Quick Checkups</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/8-quick-checkups-for-web-site-optimization/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Testing Color Contrast for WCAG 1 &amp; 2</title>
		<link>http://www.joedolson.com/articles/2008/05/testing-color-contrast/</link>
		<comments>http://www.joedolson.com/articles/2008/05/testing-color-contrast/#comments</comments>
		<pubDate>Wed, 14 May 2008 22:11:12 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Web standards]]></category>
		<category><![CDATA[brightness]]></category>
		<category><![CDATA[color contrast]]></category>
		<category><![CDATA[difference]]></category>
		<category><![CDATA[luminosity]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[wcag]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/?p=242</guid>
		<description><![CDATA[Use the Color Contrast Spectrum Tester or compare the contrast of two&#160;colors. Some time ago, while pondering whether web accessibility posed limitations on design, the thought occurred to me that there are presumably some colors which simply cannot be used for text or text backgrounds in any&#160;site. WCAG 1 does not, in fact, provide any [...]<p><strong><a href="http://www.joedolson.com/articles/2008/05/testing-color-contrast/">Testing Color Contrast for WCAG 1 &#038; 2</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">
<p><a href="/color-contrast-tester.php">Use the Color Contrast Spectrum Tester</a> or <a href="/color-contrast-compare.php">compare the contrast of two&nbsp;colors.</a></p>
</div>
<p>Some time ago, while pondering whether web accessibility posed limitations on design, the thought occurred to me that there are <em>presumably</em> some colors which simply cannot be used for text or text backgrounds in any&nbsp;site. </p>
<div class="aside">
<p><abbr title="Web Content Accessibility Guidelines">WCAG</abbr> 1 does not, in fact, provide any specific guidelines concerning color contrast. The formulas commonly used to judge this were specified in <a href="http://www.w3.org/TR/AERT#color-contrast">Techniques For Accessibility Evaluation And Repair Tools</a>, published in 2000. The document is intended to help authors conform to <abbr title="Web Content Accessibility Guidelines">WCAG</abbr>, but is not actually <em>part</em> of the <abbr title="Web Content Accessibility Guidelines">WCAG</abbr>&nbsp;document.</p>
</div>
<p>The nature of the Web Content Accessibility Guidelines (<abbr title="Web Content Accessibility Guidelines">WCAG</abbr>) specifications of color contrast fairly well ensures that some colors in the middle range of the spectrum (in hexadecimal, generally between #666666 and #999999) simply won&#8217;t be compatible with <strong>any other&nbsp;color</strong>.</p>
<p>My first thought on this point was to create a chart of colors which simply couldn&#8217;t be used in these contexts. I decided against this, on the grounds that it didn&#8217;t really seem all that valuable to me. But the thought of viewing color contrast problems in a different way than most color contrast checkers stuck with&nbsp;me.</p>
<p>It seems that most color contrast checking tools work in one of two ways: they either take a webpage and check the contrast factors between text and background on that page, or they allow you to enter a pair of colors and find out how they mesh up. <ins datetime="2008-09-07T15:11:00">Since this article was authored, I&#8217;ve created this basic tool as well. <a href="/color-contrast-compare.php">Evaluate contrast between two colors</a>.</ins></p>
<p>What I&#8217;ve done instead is set up a <a href="/color-contrast-tester.php">color contrast checker</a> which only requires you to enter one color, then displays a selection of possible color combinations using that color. It&#8217;s pretty straightforward: you can choose to view results ordered according to <abbr title="Web Content Accessibility Guidelines">WCAG</abbr> 1&#8242;s color brightness and color difference tests or according to <abbr title="Web Content Accessibility Guidelines">WCAG</abbr> 2&#8242;s contrast ratio algorithm. Either way, all three factors are displayed, providing a good sense for how the two systems&nbsp;differ. </p>
<p>The results can be quite interesting. Compare the results for <code>#888888</code> under <abbr title="Web Content Accessibility Guidelines">WCAG</abbr> 1 and under <abbr title="Web Content Accessibility Guidelines">WCAG</abbr> 2, for&nbsp;example:</p>
<ul>
<li><a href="http://www.joedolson.com/color-contrast-tester.php?color=888888&#038;granularity=40&#038;pass=on&#038;partial=on&#038;type=wcag1">#888888 Tested for Color Brightness and Color&nbsp;Difference</a></li>
<li><a href="http://www.joedolson.com/color-contrast-tester.php?color=888888&#038;granularity=40&#038;pass=on&#038;partial=on&#038;type=wcag2">#888888 Tested for Luminosity&nbsp;Contrast</a></li>
</ul>
<p>Altogether, I&#8217;m hoping that this tool provides an interesting way to approach color contrast issues and to view the differences between <abbr title="Web Content Accessibility Guidelines">WCAG</abbr> versions 1 and&nbsp;2. </p>
<h3>Resources:</h3>
<ul>
<li><a href="http://juicystudio.com/article/luminositycontrastratioalgorithm.php">Explanation of luminosity contrast ratio algorithm</a> (Gez&nbsp;Lemon)</li>
<li><a href="http://www.w3.org/TR/WCAG20/#relativeluminancedef"><abbr title="Web Content Accessibility Guidelines">WCAG</abbr> 2, definition of relative&nbsp;luminance</a></li>
<li><a href="http://www.w3.org/TR/WCAG20/#contrast-ratiodef"><abbr title="Web Content Accessibility Guidelines">WCAG</abbr> 2, definition of contrast&nbsp;ratio</a></li>
<li><a href=" http://www.w3.org/TR/2008/WD-UNDERSTANDING-WCAG20-20080430/visual-audio-contrast.html"><abbr title="Web Content Accessibility Guidelines">WCAG</abbr> 2, understanding Guideline 1.4</a>
<ul>
<li><a href="http://www.w3.org/TR/2008/WD-UNDERSTANDING-WCAG20-20080430/visual-audio-contrast-contrast.html">1.4.3 Contrast&nbsp;(minimum)</a></li>
<li><a href="http://www.w3.org/TR/2008/WD-UNDERSTANDING-WCAG20-20080430/visual-audio-contrast7.html">1.4.6 Contrast&nbsp;(enhanced)</a></li>
</ul>
</li>
<li><a href="http://www.456bereastreet.com/archive/200709/10_colour_contrast_checking_tools_to_improve_the_accessibility_of_your_design/">List of color contrast checking tools</a> (Roger&nbsp;Johansson)</li>
</ul>
<h3>Color Comparison&nbsp;Formulas</h3>
<p><strong>Color brightness formula:</strong>  <small>(must be greater than&nbsp;125)</small></p>
<p><code>((Red value X 299) + (Green value X 587) + (Blue value X 114)) /&nbsp;1000</code></p>
<p><strong>Color difference formula:</strong>  <small>(must be greater than&nbsp;500)</small></p>
<p><code>(maximum (Red value 1, Red value 2) - minimum (Red value 1, Red value 2)) + (maximum (Green value 1, Green value 2) - minimum (Green value 1, Green value 2)) + (maximum (Blue value 1, Blue value 2) - minimum (Blue value 1, Blue value&nbsp;2))</code></p>
<p><strong>Contrast Ratio with Relative Luminance formulas:</strong> <small>(greater than 3:1 for print sizes over 14pt Bold equivalence or 18pt normal, greater than 5:1 for smaller&nbsp;text)</small></p>
<p><code>(L1 + 0.05) / (L2 + 0.05)</code> where <code>L1 = 0.2126 * R1 + 0.7152 * G1 + 0.0722 * B1</code> on the RGB values of the lighter color and <code>L2 = 0.2126 * R2 + 0.7152 * G2 + 0.0722 * B2</code> on the RGB values of the darker&nbsp;color.</p>
<p><strong><a href="http://www.joedolson.com/articles/2008/05/testing-color-contrast/">Testing Color Contrast for <abbr title="Web Content Accessibility Guidelines">WCAG</abbr> 1 <span class="amp">&amp;</span> 2</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/05/testing-color-contrast/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>Why use semantic HTML?</title>
		<link>http://www.joedolson.com/articles/2008/04/why-use-semantic-html/</link>
		<comments>http://www.joedolson.com/articles/2008/04/why-use-semantic-html/#comments</comments>
		<pubDate>Thu, 03 Apr 2008 13:25:24 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Semantics]]></category>
		<category><![CDATA[Web standards]]></category>
		<category><![CDATA[best practices]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[specifications]]></category>
		<category><![CDATA[w3c]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/?p=210</guid>
		<description><![CDATA[This is part 1 of 2. Part 2 is my Guide to the use of Semantic HTML&#160;Elements I&#8217;ve seen a lot of articles discussing the importance of HTML and XHTML semantics. I&#8217;ve seen articles describing what it means for a document to be semantic. Most of these articles, however, don&#8217;t provide a serious overview of [...]<p><strong><a href="http://www.joedolson.com/articles/2008/04/why-use-semantic-html/">Why use semantic HTML?</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">
<p>This is part 1 of 2. Part 2 is my <a href="/articles/2008/04/guide-to-semantic-html/">Guide to the use of Semantic <abbr title="HyperText Markup Language">HTML</abbr>&nbsp;Elements</a></p>
</div>
<p>I&#8217;ve seen a lot of articles discussing the importance of <abbr title="HyperText Markup Language">HTML</abbr> and <abbr title="eXtensible HyperText Markup Language - HTML reformulated as XML">XHTML</abbr> semantics. I&#8217;ve seen articles describing what it <em>means</em> for a document to be semantic. Most of these articles, however, don&#8217;t provide a serious overview of what <abbr title="HyperText Markup Language">HTML</abbr> elements actually may be considered semantic&thinsp;&#8212;&thinsp;and what those semantic elements actually&nbsp;mean.</p>
<p>And, even more particularly, why it&nbsp;matters.</p>
<p>Semantics is an erudite area of study. Literally, semantics can be fairly defined as the study of meaning in communication. Communication can readily be extended to cover symbolic notations, representations of language, organization of language, body language and information structures. In developing a web page, we are organizing a means to communicate the content of that page: ideally, we are organizing the page in such a manner that it will be understood regardless of the method by which the page is accessed. It should be equally understandable whether seen, heard, or&nbsp;felt.</p>
<p>The semantics of <abbr title="HyperText Markup Language">HTML</abbr> structure, then, are clearly an important part of web design. Sending mixed signals to the user agent or the user by using a <code>blockquote</code> purely for it&#8217;s native indentation is an abuse of semantics: even the visual impact is dependent on the assumption that user agents will consistently render a <code>blockquote</code> in an indented&nbsp;manner. </p>
<p>It&#8217;s not precisely an issue that you&#8217;ve used a semantic element for presentational means, because, in fact, you&#8217;ve done more than that: you&#8217;ve presented a block of text which is <em>not quoted material</em> as if it&nbsp;were. </p>
<p>Semantic elements of <abbr title="HyperText Markup Language">HTML</abbr> carry meaning regardless of your knowledge of that meaning. The result is that the misuse of an element creates the potential to mislead or confuse an&nbsp;end-user. </p>
<p>The most obvious examples in common use are those which make use of elements with semantic meaning which also offer a browser-contributed default presentation in order to use that presentational style. The <code>blockquote</code> example above is not uncommon; similarly, the use of empty <code>p</code> elements to create extra white space or heading elements used as a questionable SEO technique in substitution for normal&nbsp;paragraphs. </p>
<p>Other examples which bear mentioning include the use of empty anchor elements to trigger Javascript events&thinsp;&#8212;&thinsp;in this case, it&#8217;s partially a limitation of the identity of an anchor element, but an empty anchor element should always be considered an error, as it results in a behavior-less anchor if the Javascript is not&nbsp;available. </p>
<p>Now, you may point to the following paragraph, <a href="http://www.w3.org/TR/html401/struct/links.html#edef-A">from the <abbr title="HyperText Markup Language">HTML</abbr> 4.01 specifications</a>, as a response to my&nbsp;opinion:</p>
<blockquote><p>
Authors may also create an A element that specifies no anchors, i.e., that doesn&#8217;t specify href, name, or id. Values for these attributes may be set at a later time through&nbsp;scripts.
</p></blockquote>
<p>The fact that it is allowed by the specification does not make it a best practice. With all due respect to the <abbr title="World Wide Web Consortium">W3C</abbr>, this should not be permitted. For reference, the <a href="http://www.w3.org/html/wg/html5/#the-a"><abbr title="HyperText Markup Language">HTML</abbr> 5 specification currently&nbsp;reads</a>:</p>
<blockquote><p>
If the a element has no <code>href</code> attribute, then the element is a placeholder for where a link might otherwise have been placed, if it had been&nbsp;relevant.
</p></blockquote>
<p>In addition, although I won&#8217;t quote everything, the specification states that an anchor which <em>does</em> have the <code>href</code> attribute must specify a <abbr title="Uniform Resource Identifier">URI</abbr> as the value of that attribute. It appears to essentially state that an anchor element should have no semantic meaning if the <code>href</code> attribute is not set and valid. But I could be&nbsp;wrong.</p>
<p>The best means to avoid the misuse of elements is to have a clear understanding of <em>when</em> and <em>why</em> a given element should be used in web development. To hopefully expand on your knowledge in that respect, I&#8217;m attempting to provide a semantic guide to <abbr title="HyperText Markup Language">HTML</abbr> elements for your reference and rich&nbsp;disagreement.</p>
<p>Be aware, however, that semantics are largely a matter of opinion. It&#8217;s not a question of blindly following the guidelines set by a group; it&#8217;s a question of interpreting those guidelines to the best of your ability and belief. This guide reflect how I think <abbr title="HyperText Markup Language">HTML</abbr> elements should be used; and I welcome your&nbsp;opinions.</p>
<h3>Other <abbr title="HyperText Markup Language">HTML</abbr> Semantics&nbsp;Articles</h3>
<ul>
<li><a href="http://www.w3.org/TR/WCAG20-GENERAL/G115.html">Guidelines from <abbr title="Web Content Accessibility Guidelines">WCAG</abbr> 2.0</a> on the use of <abbr title="HyperText Markup Language">HTML</abbr> for semantic&nbsp;structure</li>
<li><a href="http://microformatique.com/?p=83">Traditional <abbr title="HyperText Markup Language">HTML</abbr> Semantics</a> (Part I of a three-part series on web semantics by John&nbsp;Alsopp)</li>
<li><a href="http://www.wpdfd.com/issues/86/html_the_foundation_of_the_web/">HTML: The Foundation of the Web</a>&thinsp;&#8211;&thinsp;Niels&nbsp;Matthijs</li>
<li><a href="http://dev.opera.com/articles/view/semantic-html-and-search-engine-optimiza/">Semantic <abbr title="HyperText Markup Language">HTML</abbr> and Search Engine Optimization</a>&thinsp;&#8211;&thinsp;From the Opera Developer Community, by Joost de&nbsp;Valk</li>
<li><a href="http://www.thefutureoftheweb.com/blog/who-will-read-your-semantic-html">Who will read your semantic <abbr title="HyperText Markup Language">HTML</abbr>?</a>&thinsp;&#8211;&thinsp;Jesse&nbsp;Skinner</li>
<li><a href="http://mpt.net.nz/archive/2004/05/02/b-and-i">When semantic markup goes bad</a>&thinsp;&#8211;&thinsp;Matthew Paul&nbsp;Thomas</li>
<li><a href="http://accessites.org/site/2007/04/semantics-why-bother/">Semantics&thinsp;&#8211;&thinsp;why bother?</a>&thinsp;&#8211;&thinsp;Mel Pedley at&nbsp;Accessites</li>
<li><a href="http://westciv.com/style_master/house/good_oil/semantics/htmlsemantics.html"><abbr title="HyperText Markup Language">HTML</abbr> Semantics from Western Civilization,&nbsp;Pty.</a></li>
<li><a href="http://www.joedolson.com/articles/2008/01/graph-the-semantic-html-structure-of-your-web-page/">Graph the Semantic <abbr title="HyperText Markup Language">HTML</abbr> Structure of your Web Page</a>&thinsp;&#8211;&thinsp;Joe&nbsp;Dolson</li>
</ul>
<p><strong><a href="http://www.joedolson.com/articles/2008/04/why-use-semantic-html/">Why use semantic <abbr title="HyperText Markup Language">HTML</abbr>?</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/04/why-use-semantic-html/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Using standards doesn&#8217;t make it right</title>
		<link>http://www.joedolson.com/articles/2008/02/using-standards-doesnt-make-it-right/</link>
		<comments>http://www.joedolson.com/articles/2008/02/using-standards-doesnt-make-it-right/#comments</comments>
		<pubDate>Mon, 11 Feb 2008 23:28:25 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Semantics]]></category>
		<category><![CDATA[Web standards]]></category>
		<category><![CDATA[analogy]]></category>
		<category><![CDATA[cooking]]></category>
		<category><![CDATA[standards]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/2008/02/using-standards-doesnt-make-it-right/</guid>
		<description><![CDATA[The Wikipedia article on Standards in software contains a very good definition of standards, particularly as we might need to view them when talking about web&#160;standards: Standards (software) Software standards enable software to interoperate. Many things are (somewhat) arbitrary, so the important thing is that everyone agree on what they are. Software standards is one [...]<p><strong><a href="http://www.joedolson.com/articles/2008/02/using-standards-doesnt-make-it-right/">Using standards doesn&#8217;t make it right</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2011 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<p>The Wikipedia article on <a href="">Standards in software</a> contains a very good definition of standards, particularly as we might need to view them when talking about web&nbsp;standards:</p>
<dl>
<dt>Standards (software)</dt>
<dd>Software standards enable software to interoperate. Many things are (somewhat) arbitrary, so the important thing is that everyone agree on what they are. Software standards is one of the Unsolved problems in software engineering</dd>
</dl>
<p>On the whole, the article at Wikipedia is a good example of what isn&#8217;t so great about Wikipedia&thinsp;&#8212;&thinsp;poorly written, incomplete: the article is more a collection of notes in preparation for <em>writing</em> an article than it is a real document. Nonetheless, the above definition contains a gem of perception concerning exactly what it is that standards actually do. <strong>Standards enable software to interoperate</strong>. Standards increase the ability of various programs to cope with what is fed to&nbsp;them.</p>
<p>And, fundamentally, that&#8217;s <em>all</em> they do. Standards, by themselves, are not in any way equivalent to &#8220;appropriate&#8221; or &#8220;good.&#8221; Web standards enable one program to understand what has been notated in another program. An <abbr title="HyperText Markup Language">HTML</abbr> document may be an incredibly simple and basically inert program, but it is essentially a software&nbsp;program. </p>
<p>But they don&#8217;t actually dictate a lot about how that code is actually used, or what elements go into the&nbsp;program.</p>
<p>Let&#8217;s try a comparison to cooking. If you&#8217;re cooking, you&#8217;ll follow a recipe. The recipe dictates units (cups, teaspoons, liters, etc.). The recipe also dictates ingredients, sometimes with substitutions. However, some aspects of a recipe are actually pretty imprecise&thinsp;&#8212;&thinsp;cooking on &#8220;medium heat,&#8221; &#8220;beat until stiff peaks form&#8221; or &#8220;use one large egg&#8221; are all examples of specific directions which do not necessarily convey the information needed to perfect a&nbsp;recipe.</p>
<p>Furthermore, a recipe does not necessarily include every detail of creating the meal&thinsp;&#8212;&thinsp;it may leave out key pieces of information which it assumes you know: stirring the sauce, checking the internal temperature, or removing the pits. These are necessary aspects of preparing the meal right, but which require external knowledge to&nbsp;comprehend. </p>
<p>If you want to bake a cake, you do need to follow the recipe (mostly.) If you substitute baking powder for flour, you will not end up with a particularly appetizing cake&thinsp;&#8212;&thinsp;but you&#8217;ll also have problems if you ONLY follow the recipe, and include the eggs with their&nbsp;shells. </p>
<p><a href="http://www.molly.com/2008/01/31/from-web-standards-diva-to-web-standards-devo/">Molly Holzschlag mentioned this idea recently</a>, and I&#8217;ve certainly <a href="http://www.joedolson.com/articles/2007/08/care-about-standards/">written about it before</a>, but it&#8217;s a valuable point and worth&nbsp;reviewing.</p>
<p>Besides, I thought of this analogy to cooking the other day while I was making dinner, and just had to get it out of my system&#8230;
<p><strong><a href="http://www.joedolson.com/articles/2008/02/using-standards-doesnt-make-it-right/">Using standards doesn&#8217;t make it right</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/02/using-standards-doesnt-make-it-right/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
	</channel>
</rss>

