<?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; Semantics</title>
	<atom:link href="http://www.joedolson.com/articles/category/web-standards/semantics/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>Wed, 23 Jun 2010 21:24:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>Best Practices in Web Development: Part 4</title>
		<link>http://www.joedolson.com/articles/2008/09/best-practices-in-web-development-part-4/</link>
		<comments>http://www.joedolson.com/articles/2008/09/best-practices-in-web-development-part-4/#comments</comments>
		<pubDate>Wed, 03 Sep 2008 13:05:18 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Semantics]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[best practices]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[universal design]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/?p=278</guid>
		<description><![CDATA[Part 1 (Contracts, Site Requirements,Information&#160;Architecture) Part 2 (Hosting and&#160;Security) Part 3 (Navigation,&#160;Scent) Part 4 (Semantics, Structure vs. Design, Universal&#160;design) Part 5 (Interaction, Errors, and&#160;Administration) So, we&#8217;re finally getting to the meat of best practice web development. This is what people are usually thinking of when they ask about best practices in web design or web [...]<p><strong><a href="http://www.joedolson.com/articles/2008/09/best-practices-in-web-development-part-4/">Best Practices in Web Development: Part 4</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<div class="aside">
<ul>
<li><a href="http://www.joedolson.com/articles/2008/08/best-practices-in-web-development-part-1/">Part 1</a> (Contracts, Site Requirements,Information&nbsp;Architecture)</li>
<li><a href="http://www.joedolson.com/articles/2008/08/best-practices-in-web-development-part-2/">Part 2</a> (Hosting and&nbsp;Security)</li>
<li><a href="http://www.joedolson.com/articles/2008/08/best-practices-in-web-development-part-3/">Part 3</a> (Navigation,&nbsp;Scent)</li>
<li>Part 4 (Semantics, Structure vs. Design, Universal&nbsp;design)</li>
<li><a href="http://www.joedolson.com/articles/2008/09/best-practices-in-web-development-part-5/">Part 5</a> (Interaction, Errors, and&nbsp;Administration)</li>
</ul>
</div>
<p>So, we&#8217;re finally getting to the meat of best practice web development. This is what people are usually thinking of when they ask about best practices in web design or web programming: actually building the web site&nbsp;itself. </p>
<p>Web design best practices encompass a wide range of needs&thinsp;&#8212;&thinsp;everything from the visual look of the design and use of well-chosen markup to the implementation of alternate styles for mobile devices or print shows up in this area. Covering it in one article is, perhaps, <em>ambitious</em>. Fortunately, I&#8217;ve written on parts of this subject frequently in the past, so I&#8217;ll be providing a lot of&nbsp;links.</p>
<p>It&#8217;s important for best practices to clearly separate the structure of your web design (the internal labeling and definition of page elements) from the design elements (the appearance of these elements.) In the <a href="http://www.joedolson.com/articles/2008/08/best-practices-in-web-development-part-3/">last article in this series</a>, I discussed a few key elements of design: not in terms of color, layout, or typography, but in terms of communicating&nbsp;information. </p>
<p>Best practices ultimately leads to creating a universal or accessible design, and this practice hinges on two key concepts: web semantics and the separation of your structure from your&nbsp;design.</p>
<h3 id="semantics">The Semantics of&nbsp;<abbr title="HyperText Markup Language">HTML</abbr></h3>
<p>You can argue for days (or years, if you take look at the search results for &#8220;<abbr title="HyperText Markup Language">HTML</abbr> semantics&#8221; or &#8220;web semantics&#8221;) on the detailed semantics of how <abbr title="HyperText Markup Language">HTML</abbr> tags should be used. I&#8217;ve written on this several times, myself, including articles discussing the <a href="http://www.joedolson.com/articles/2007/01/is-a-br-tag-semantic/">value of empty elements</a>, the age-old debate between <a href="http://www.joedolson.com/articles/2007/08/tables-or-css-layout/">table-based or <abbr title="Cascading Style Sheets">CSS</abbr> layout</a>, among <a href="http://www.joedolson.com/articles/category/web-standards/semantics/" rel="nofollow">many&nbsp;others</a>.</p>
<p>Semantics are very important. However, when you really look closely at <abbr title="HyperText Markup Language">HTML</abbr> you&#8217;ll inevitably notice that it&#8217;s not a strongly semantic language&thinsp;&#8212;&thinsp;the mark-up language doesn&#8217;t even come close to describing all possible uses of the tags. Many tags end up inevitably serving multiple&nbsp;functions. </p>
<p>So what web semantics really require is <em>interpretation</em>. The <a href="http://www.w3.org/TR/html4/"><abbr title="HyperText Markup Language">HTML</abbr> specification</a> provides one version of this interpretation, with suggested uses and meanings for elements. I&#8217;ve provided <a href="http://www.joedolson.com/articles/2008/04/guide-to-semantic-html/">my own interpretation</a>, as well. There are without question differences of opinion between those&nbsp;documents.</p>
<p>Obviously, you can argue very convincingly that any interpretation which disagrees explicitly with the <abbr title="HyperText Markup Language">HTML</abbr> 4 specification is <em>wrong</em>. Feel free. The core of best practices in web semantics is to use them and make decisions: it&#8217;s about thinking, not specific&nbsp;rigor.</p>
<p>We need to differentiate, however, between the <em>semantics of <abbr title="HyperText Markup Language">HTML</abbr></em> and <em>web semantics</em>. The semantics of <abbr title="HyperText Markup Language">HTML</abbr> are specific and defined: meaning as applied to the elements of <abbr title="HyperText Markup Language">HTML</abbr>. This is a finite list of items, although the complete definition of meaning is less so. Web semantics, on the other hand, describe the application of meaning on the web. This is a more global concept, and applies to all aspects of your web development&nbsp;process.</p>
<p>Web semantics includes everything used to add meaning to your site, providing better comprehension of code and content. Using describe class and ID naming conventions, descriptive function names in server or client-side scripting, or providing helpful comments within your code can all be considered points of web semantics. Best practices means providing a site which is meaningful in both the front and back&nbsp;end.</p>
<p>For specific suggestions about element use, refer to <a href="http://www.joedolson.com/articles/2008/04/guide-to-semantic-html/">my guide to semantic&nbsp;<abbr title="HyperText Markup Language">HTML</abbr></a>. </p>
<h3 id="structure">Separation of Structure from&nbsp;Design</h3>
<p>This is such an old question to harp on, but the importance of separating the organization of your page from the way it looks has never really&nbsp;flagged. </p>
<p>At a superficial level, it may appear that any markup you use has an effect on the appearance of your site. After all, there&#8217;s a clear visual difference between unstyled text marked as a heading and unstyled text marked as a blockquote! However, this visual difference only truly exists because the description &#8220;unstyled&#8221; is truly a&nbsp;misnomer. </p>
<p>If you disable stylesheets on a web site, you&#8217;ll see an extremely plain view of the site. It is not precisely &#8220;unstyled,&#8221; however&thinsp;&#8212;&thinsp;the design has simply been reduced to the default styles applied by the browser. In general, every browser has very similar defaults&thinsp;&#8212;&thinsp;but they&#8217;re not exactly the same. This is one of the reasons that it&#8217;s common to begin a stylesheet with a set of <a href="http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/">reset&nbsp;styles</a>. </p>
<p>If you conscientiously remove the browser default styling, it can make your own development easier: the slight differences between browsers can then be&nbsp;ignored.</p>
<p>The point is that you should never place anything in your markup which exists purely to create a different <em>appearance</em>. Attributes or tags which define font faces, colors, or styles are obvious problems&thinsp;&#8212;&thinsp;but the use of <code>small</code> or <code>strong</code> can also be problems. It&#8217;s not that you should never <em>use</em> <code>small</code>: but your use of the element shouldn&#8217;t <em>depend</em> on the text being rendered smaller than the surrounding&nbsp;text. </p>
<p>It might not happen, after&nbsp;all.</p>
<p>This is one of the key complaints about using tables for design layout. A table is designed to organize information by providing easy access to it in a matrix. The columns and rows visual appearance of a table is a formality used because it is an expected way to view this type of data&nbsp;organization. </p>
<p>When you take a table and use it to layout your design, you are violating the separation of structure from appearance: your design is now <em>dependent</em> on the default organization of tables. Should somebody attempt to re-organize your table (for example, to <a href="http://www.w3.org/WAI/References/Tablin/">linearize the information</a>,) they may encounter a radically illogical data&nbsp;structure. </p>
<h3 id="universal">Fundamentals of Universal Design for the&nbsp;Web</h3>
<p>The goal of universal design is very simple: make the information in your website available to every person or device which attempts to access it. This includes mobile devices, search engines, assistive technology, disabled users, and standard desktop&nbsp;browsers. </p>
<p>Universal design is where we bring everything above together. Attention to web semantics and a strong separation between structure and design give your web site at least a fighting chance of being universally usable. Obviously, you can still screw things&nbsp;up!</p>
<p>In the same way that <a href="http://www.joedolson.com/articles/2008/02/using-standards-doesnt-make-it-right/">following web standards doesn&#8217;t mean that you&#8217;ve made a web site accessible</a>, following best practices for general web development doesn&#8217;t mean that you&#8217;ve made a site which will be great on a hand-held device or with a screen&nbsp;reader. </p>
<p>Different devices (like people) have different special&nbsp;needs.</p>
<p>Creating a web site which is truly universal requires you to be aware of the special needs of every device you&#8217;re working for&thinsp;&#8212;&thinsp;but a few basic principles will get you 95% of the way&nbsp;there.</p>
<p>The <a href="http://www.design.ncsu.edu/cud/about_ud/udprincipleshtmlformat.html#top">Principles of Universal Design</a> provided by The Center for Universal Design at North Carolina State University are a good guideline for thinking about universal design. Although these principles are truly designed to be universal, in that they are intended to be applied well outside the realm of web development, the basic principles are sound in any&nbsp;context. </p>
<p>If you break the concept of universal design down to a single core issue, it could be that <em>dependencies</em> break <em>access</em>. Whenever you set up a situation in which a specific technical or design element must be present (a dependency on Javascript, a requirement that a control matches the description provided, or a requirement that a user must see a given image, for example,) then you are creating the potential for design failure. Avoid creating anything which <em>depends</em> anything out of your&nbsp;control.</p>
<p>Knowing what is and isn&#8217;t in your control (and, more importantly, what <em>seems</em> like it&#8217;s in your control, but really isn&#8217;t) is critical to best practices in web development. Acknowledging that although you can set the color of the text, you can neither guarantee that a visitor will be capable of seeing that color <em>nor</em> that the text will in fact <em>be</em> that color at the point that a visitor sees it is a critical step in understanding universal&nbsp;design.</p>
<p class="supplemental">
<a href="http://www.joedolson.com/articles/2008/09/best-practices-in-web-development-part-5/">Best Practices in Web Development: Part 5</a> (published on Friday, September 5th) covers interaction design, error management, and long-term site&nbsp;administration.
</p>
<p><strong><a href="http://www.joedolson.com/articles/2008/09/best-practices-in-web-development-part-4/">Best Practices in Web Development: Part 4</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2008/09/best-practices-in-web-development-part-4/feed/</wfw:commentRss>
		<slash:comments>7</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;2010 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;2010 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;2010 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;2010 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>
		<item>
		<title>Graph the Semantic HTML Structure of Your Web Page</title>
		<link>http://www.joedolson.com/articles/2008/01/graph-the-semantic-html-structure-of-your-web-page/</link>
		<comments>http://www.joedolson.com/articles/2008/01/graph-the-semantic-html-structure-of-your-web-page/#comments</comments>
		<pubDate>Thu, 24 Jan 2008 16:39:36 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Semantics]]></category>
		<category><![CDATA[Web standards]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[page structure]]></category>
		<category><![CDATA[web semantics]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/2008/01/graph-the-semantic-html-structure-of-your-web-page/</guid>
		<description><![CDATA[In October of 2006, I published a brief article about Marcel Salath&#233;&#8217;s interesting Java Applet to generate node graphs of web page structure. In that article, I&#160;stated: I&#8217;d love to be able to produce graphs where I chose the color coding pattern for particular tags. I could set all non-semantic tags to be bright red, [...]<p><strong><a href="http://www.joedolson.com/articles/2008/01/graph-the-semantic-html-structure-of-your-web-page/">Graph the Semantic HTML Structure of Your Web Page</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<p>In October of 2006, I published <a href="http://www.joedolson.com/articles/2006/10/view-your-website-structure-as-a-graph/">a brief article</a> about Marcel Salath&eacute;&#8217;s interesting <a href="http://www.aharef.info/static/htmlgraph/">Java Applet to generate node graphs of web page structure</a>.  In that article, I&nbsp;stated:</p>
<blockquote><p>
I&#8217;d love to be able to produce graphs where I chose the color coding pattern for particular tags. I could set all non-semantic tags to be bright red, to easily spot the condition of a site in that respect. I could focus my attentions on inline versus block elements, or I could differentiate between different levels of&nbsp;headings.
</p></blockquote>
<p>More recently, I received comments on that post from a visitor who thought my idea to change this was a good one&thinsp;&#8212;&thinsp;so, at long last, I&#8217;ve gotten around to doing&nbsp;it. </p>
<p class="cta">
<a href="http://www.joedolson.com/semantic-html-graph/">Semantic <abbr title="HyperText Markup Language">HTML</abbr>&nbsp;Graphs</a>
</p>
<p>And here&#8217;s an example of&nbsp;output:</p>
<p><img src='http://www.joedolson.com/articles/wp-content/uploads/metrolinx.jpg' alt='' /></p>
<p>The graph pictured here is for <a href="http://www.metrolinx.com">Metrolinx</a>, the Greater Toronto Transit Authority&thinsp;&#8212;&thinsp;and Joe Clark&#8217;s <a href="http://blog.fawny.org/2007/12/07/metrolinx2/">failed redesign of the year</a>. It makes for a pretty interesting case study. I know the output is small; but bear with&nbsp;me.</p>
<p>In this graph, you can clearly see long strings of orange nodes, which indicate nested <code>table</code> elements. You can also see significant clusters of bright red nodes, indicating deprecated tags. Altogether, the site is a maze of primarily long wavelength colors. In general, in the color scheme I&#8217;ve set up, greater densities of long wavelength colors (red, orange, pink) shows a dependence on <code>table</code>s for layout and presentational elements. Short wavelength color (blue, green) indicate more semantically meaningful&nbsp;structures.</p>
<p>I made a number of small changes to the script which I think add value. First, I added the ability to change the root node you&#8217;re mapping. I don&#8217;t know that this is <em>incredibly</em> valuable, but it does provide an interesting alternate piece of information. The node switching is limited; it will only check the first node specified of that particular content&nbsp;type. </p>
<p>The second change is to provide a variety of color schemes. The default is pretty complicated, although I drew the line well before attempting to provide a subtly different shade for every single element. I hope that the colors provided at least give you an idea of what you&#8217;re looking at, however. The alternate color schemes (two, at the moment) are much simpler: one which simply differentiates between allowed and deprecated elements and another which highlights all inline elements (<code>a</code>, <code>dfn</code>, <code>samp</code>,&nbsp;etc.). </p>
<p>Now, I&#8217;ve never programmed in Java before, and although the changes I made to <a href="http://www.aharef.info/static/htmlgraph/sourcecode.html">Sala&#8217;s source code</a> are relatively slight, it&#8217;s highly probable that there are bugs; and I&#8217;ve <em>certainly</em> not managed to remove any bugs from the original&nbsp;code.</p>
<p>The last thing I need to mention is concerning the accessibility of this applet. <em>It&#8217;s just not accessible</em>. In fact, I know little about how to make Java accessible in the first place; but even so, the entire concept of this applet is highly dependent on color. There can be no question that if you are color-blind or otherwise sight impaired this will be a problem. Additionally, there is absolutely no means present for any screen-reader to understand the input. I do hope to change this at a later date, and author a text-based output which will provide a separate, accessible interface with the information, but that just hasn&#8217;t happened&nbsp;yet.</p>
<h3>Also worth looking&nbsp;at:</h3>
<ul>
<li><a href="http://blog.peter1402.de/pages/validation_graphs.html">Validation Graphs</a>&thinsp;&#8211;&thinsp;a stand-alone Java application also based on the <abbr title="HyperText Markup Language">HTML</abbr> graph script which spiders pages and checks them for&nbsp;validity.</li>
<li><a href="http://www.baekdal.com/web2dna/">Web2DNA</a>&thinsp;&#8211;&thinsp;same basic idea, different&nbsp;implementation.</li>
</ul>
<p><strong><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></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2008/01/graph-the-semantic-html-structure-of-your-web-page/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Supporting Standards that Support Accessibility</title>
		<link>http://www.joedolson.com/articles/2007/12/supporting-standards-that-support-accessibility/</link>
		<comments>http://www.joedolson.com/articles/2007/12/supporting-standards-that-support-accessibility/#comments</comments>
		<pubDate>Mon, 24 Dec 2007 04:40:46 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Semantics]]></category>
		<category><![CDATA[Web standards]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[w3c]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/2007/12/supporting-standards-that-support-accessibility/</guid>
		<description><![CDATA[The justification that a web site is accessible because it &#8220;follows standards&#8221; contains a serious fallacy. Specifically, the assumption that standards support&#160;accessibility. One root of current standard accessibility practice is conformance to the HTML or XHTML standards set by the World Wide Web Consortium (W3C). This is a fine practice, and certainly should be maintained. [...]<p><strong><a href="http://www.joedolson.com/articles/2007/12/supporting-standards-that-support-accessibility/">Supporting Standards that Support Accessibility</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<p>The justification that a web site is accessible because it &#8220;follows standards&#8221; contains a serious fallacy. Specifically, the assumption that <em>standards</em> support&nbsp;accessibility. </p>
<p>One root of current standard accessibility practice is conformance to the <abbr title="HyperText Markup Language">HTML</abbr> or <abbr title="eXtensible HyperText Markup Language - HTML reformulated as XML">XHTML</abbr> standards set by the <a href="http://w3.org">World Wide Web Consortium</a> (<abbr title="World Wide Web Consortium">W3C</abbr>). This is a fine practice, and certainly should be maintained. Using correct syntax and following a standardized method of communicating information is always a solid best practice. However, this should absolutely not be taken to mean that following these standards is the same as applying the principles of web&nbsp;accessibility.</p>
<p>Web standards only provide accessibility to the degree that they have been designed to do so&thinsp;&#8212;&thinsp;and the guiding principle behind standards development (excluding accessibility-specific standards, of course) has not generally been to support accessibility. Web standards have been designed purely to establish a <em>set, correct</em> method of using the underlying code&thinsp;&#8212;&thinsp;whether presentational (<abbr title="Cascading Style Sheets">CSS</abbr>), structural (<abbr title="eXtensible HyperText Markup Language - HTML reformulated as XML">XHTML</abbr>) or behavioral&nbsp;(ECMAscript.)</p>
<p>In many (most) cases, web standards do not in any way require best practices&thinsp;&#8212;&thinsp;they merely require conformance. Take <abbr title="HyperText Markup Language">HTML</abbr>, for example. Web standards would permit the usage of <code>table</code> elements for layout, because they do not define semantic usage for the <code>table</code> element. Web standards also permit a variety of presentational elements, such as <code>font</code>, <code>strike</code>, or <code>u</code>. It all depends on what standard you have chosen to&nbsp;follow. </p>
<p>HTML5, most recently, is considering such contrarian steps as removing the requirement that <code>alt</code> attributes be required for images. This ensures the existence of a valid HTML5 web site which can radically fail basic accessibility guidelines. On the other hand, it may <em>reduce</em> the likelihood that some so-called &#8220;accessible&#8221; web sites will be littered with <code>alt="this is a spacer&nbsp;graphic"</code>.</p>
<p>Does this necessarily mean that the standard is wrong or right? No, not as such. Different standards support different needs&thinsp;&#8212;&thinsp;it is important to keep distinct the purpose of the standard. Conforming <abbr title="HyperText Markup Language">HTML</abbr> is just that: Conforming <abbr title="HyperText Markup Language">HTML</abbr>. It means nothing&nbsp;more.</p>
<p>Nonetheless, as an accessibility advocate, I feel that it&#8217;s important to support accessibility issues within the development of new standards. Taking the <code>alt</code> attribute issue in HTML5, for example, the lack of any perceived benefit to <strong>not</strong> requiring the attribute suggests to me that the better path would be to continue to require it. There are numerous examples of <a href="http://brucelawson.co.uk/index.php/2007/html5-microformats-accessibility-testing/">important accessibility aspects in HTML5</a> which are not yet&nbsp;included. </p>
<p>There seems to be a strong element of specious judgement: elements which are not supported by current user-agents are considered not to be needed. This seems a ridiculous expectation: after all, if unsupported elements aren&#8217;t needed, than why develop a new specification at all? What we&#8217;ve got must work just&nbsp;fine!</p>
<p>Practically speaking, user-agent support and developer use should both be only marginal issues when trying to decide what elements are most needed in a specification. The fact that elements are unused on either end are not a judgement on the value of that element; merely a judgement on the awareness of the element, on the clarity of the existing specification, or on the complexity of the&nbsp;implementation. </p>
<p>Nobody (or almost nobody) uses the <code>q</code> inline element. Does this mean that the element isn&#8217;t valuable, and should be discarded? No. It means that Internet Explorer should add appropriate support for it. The same is true for accessibility issues. The standards should support them to their best abilities: if an element or attribute could hypothetically add to the accessibility of a site, then the fact that it is little used or poorly supported should be entirely irrelevant. Support should follow the standards; not the other way&nbsp;around.</p>
<p>At the root of things, my stance is that I am unwilling to support a standard which specifically excludes features which are needed in order appropriately provide best-practice accessibility. HTML5 is still a long way from being done; and even further from being implemented (if it ever is,) but the removal of such attributes as the <code>header</code> from <code>table</code> markup, the inclusion of defined non-semantic elements such as <code>b</code><a href="#f1" id="fl1" class="footnote">1</a>, and the &#8220;<abbr title="what you see is what you get">WYSIWYG</abbr> exemption&#8221; on the <code>font</code> element strike me as decisions badly in need of&nbsp;reconsideration. </p>
<p class="footnotes">
<a id="f1" href="#fl1">1.</a> In point of fact, I can accept the inclusion of <em>one</em> inline non-semantic element (<code>span</code>) and one block level non-semantic element (<code>div</code>). I feel there&#8217;s ample justification to allow elements which are not specifically defined on the grounds that not all situations can possibly be covered by the specifications of the language. I see <em>no</em> justification, however, for the inclusion of additional explicitly non-semantic&nbsp;elements.
</p>
<p><strong><a href="http://www.joedolson.com/articles/2007/12/supporting-standards-that-support-accessibility/">Supporting Standards that Support Accessibility</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2007/12/supporting-standards-that-support-accessibility/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Thoughts about Content Labeling and Data</title>
		<link>http://www.joedolson.com/articles/2007/12/thoughts-about-content-labeling-and-data/</link>
		<comments>http://www.joedolson.com/articles/2007/12/thoughts-about-content-labeling-and-data/#comments</comments>
		<pubDate>Wed, 05 Dec 2007 07:34:16 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Semantics]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[data organization]]></category>
		<category><![CDATA[document outlining]]></category>
		<category><![CDATA[particularization]]></category>
		<category><![CDATA[partitioning]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/2007/12/thoughts-about-content-labeling-and-data/</guid>
		<description><![CDATA[Interestingly, it appears that some of the ideas discussed in this article are actually being actively tested by&#160;Google. As of September 2009, it appears that Google is actually putting this concept into&#160;practice. An interesting thought in indexing and handling page structure is the concept that different areas of a single page can be identified and [...]<p><strong><a href="http://www.joedolson.com/articles/2007/12/thoughts-about-content-labeling-and-data/">Thoughts about Content Labeling and Data</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<div class="aside">
<p>Interestingly, it appears that some of the <a href="/articles/2007/12/thoughts-about-content-labeling-and-data/#sections">ideas discussed</a> in this article are actually <a href="http://searchengineland.com/google-testing-enhanced-listings-pagelinks-auto-spelling-correction-15819.php">being actively tested by&nbsp;Google</a>. </p>
<p>As of September 2009, it appears that Google is actually <a href="http://googlewebmastercentral.blogspot.com/2009/09/using-named-anchors-to-identify.html">putting this concept into&nbsp;practice</a>.</p>
</div>
<p>An interesting thought in indexing and handling page structure is the concept that different areas of a single page can be identified and considered independently from surrounding bodies of content. This particularly applies to specific and readily identifiable data-types, such as phone numbers, postal codes, or abbreviations; but can also be extended to include broader content&nbsp;labeling.</p>
<p>A well-structured <abbr title="eXtensible Markup Language">XML</abbr> document has an absolutely clear labeling system for data built into the structure. If you take any <abbr title="Really Simple Syndication">RSS</abbr> feed, for example, the elements which identify <code>&lt;title&gt;</code>, <code>&lt;link&gt;</code> or <code>&lt;managingEditor&gt;</code> can&#8217;t readily be&nbsp;mistaken.</p>
<p>A well-structured, semantically sensible <abbr title="eXtensible HyperText Markup Language - HTML reformulated as XML">XHTML</abbr> or <abbr title="HyperText Markup Language">HTML</abbr> document doesn&#8217;t offer nearly the same degree of data particulation&thinsp;&#8212;&thinsp;the higher level data elements can sometimes be fairly clear, as is the case with <code>&lt;address&gt;</code> or <code>&lt;cite&gt;</code> elements, but other potentially valuable elements end up providing relatively neutral value: <code>&lt;h2&gt;</code> or&nbsp;<code>&lt;div&gt;</code>. </p>
<p><span id="more-194"></span></p>
<p>For users, you can readily provide some parts of this needed structure by using in-page references to provide a table of contents, when a document requires significant structure. (This is provided normally for screen readers; but no such equivalent is available in most standard browsing methods.) Giving a content heading or content section a unique <code>id</code> and providing a link to it can provide value for your users by enabling them to quickly access areas of your document with a greater specificity to their needs than the document may provide as a&nbsp;whole.</p>
<p>This kind of content particulation could be leveraged by a search engine to provide immediate access to a specific point within a&nbsp;resource.</p>
<p>Additional specificity can also be achieved through the use of <a href="http://microformats.org">Microformats</a>. These externally defined mini-standards for content identification can enable various tools to better understand and interact with your site&nbsp;content. </p>
<p>From an accessibility perspective, this is not currently receiving any kind of meaningful application that I&#8217;m aware of&thinsp;&#8212;&thinsp;but it&#8217;s an interesting concept. I like the idea that the use of microformats (or any method of explicitly labeling and defining data) could allow any user agent to make immediate use of that&nbsp;information. </p>
<p>The whole idea of dividing your semantic content into labeled and defined sections provides a great deal of value for any user scanning over your document. Dividing your content into areas with relevant headings makes that document more scannable, and also allows search engines to better understand the overall relevance of your document at a more specific&nbsp;level. </p>
<p>I&#8217;m not sure I have a real &#8220;conclusion&#8221; to pull from these thoughts. Basically, the underlying concept is &#8220;identifying your information is a good thing.&#8221; That&#8217;s a well-known issue in accessibility when it comes to visual, audio, or video content, with audio description, transcriptions, and captioning filing in those spaces. However, with more finely particularized elements of data, it seems that the same principal has the potential to provide an overall better user experience simply by enabling the user-agent to quickly realize the best method to deal with the&nbsp;information.</p>
<p>Thoughts for this blog post inspired by <a href="http://www.seobythesea.com/">Bill Slawski</a> during a PubCon session&#8230;
<p><strong><a href="http://www.joedolson.com/articles/2007/12/thoughts-about-content-labeling-and-data/">Thoughts about Content Labeling and Data</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2007/12/thoughts-about-content-labeling-and-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS3: On Grid Positioning and Layout</title>
		<link>http://www.joedolson.com/articles/2007/09/css3-on-grid-positioning-and-layout/</link>
		<comments>http://www.joedolson.com/articles/2007/09/css3-on-grid-positioning-and-layout/#comments</comments>
		<pubDate>Thu, 20 Sep 2007 17:58:45 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Semantics]]></category>
		<category><![CDATA[Web standards]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[grid layout]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/2007/09/css3-on-grid-positioning-and-layout/</guid>
		<description><![CDATA[Following up on tables and CSS, the grid model of layout execution is part of the CSS level 3 working draft. The specifications for the grid layout module being discussed were released on September 5,&#160;2007. This module describes integration of grid-based layout (similar to the grids traditionally used in books and newspapers) with CSS sizing [...]<p><strong><a href="http://www.joedolson.com/articles/2007/09/css3-on-grid-positioning-and-layout/">CSS3: On Grid Positioning and Layout</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<p>Following up on <a href="http://www.joedolson.com/articles/2007/08/tables-or-css-layout/">tables and <abbr title="Cascading Style Sheets">CSS</abbr></a>, the grid model of layout execution is part of the <abbr title="Cascading Style Sheets">CSS</abbr> level 3 working draft. The <a href="http://www.w3.org/TR/2007/WD-css3-grid/">specifications for the grid layout module</a> being discussed were released on September 5,&nbsp;2007.</p>
<blockquote><p>
This module describes integration of grid-based layout (similar to the grids traditionally used in books and newspapers) with <abbr title="Cascading Style Sheets">CSS</abbr> sizing and positioning. <cite>Document&nbsp;Abstract</cite>
</p></blockquote>
<p>Semantically, the grid layout system is a nice development&thinsp;&#8212;&thinsp;it is a system explicitly and exclusively designed for layout, which has no required <abbr title="HyperText Markup Language">HTML</abbr> component. An excellent companion to the <code>div</code>&nbsp;element.</p>
<p><span id="more-179"></span></p>
<p>The concept of a grid framework has been applied in many graphic and typographic media for many years; including the web. Resources for constructing grids using <abbr title="Cascading Style Sheets">CSS</abbr>&nbsp;abound:</p>
<ul>
<li><a href="http://code.google.com/p/blueprintcss/">Blueprint&nbsp;<abbr title="Cascading Style Sheets">CSS</abbr></a></li>
<li><a href="http://developer.yahoo.com/yui/grids/">Yahoo!&nbsp;Grids</a></li>
<li><a href="http://www.markboulton.co.uk/journal/comments/five_simple_steps_to_designing_grid_systems_part_1/">5 Simple Steps to Designing Grid Systems</a> (Mark&nbsp;Boulton)</li>
</ul>
<p>The deal with constructing a grid system using <abbr title="Cascading Style Sheets">CSS</abbr> is that it&#8217;s very difficult to do without using very complex code. The main new addition to <abbr title="Cascading Style Sheets">CSS</abbr> construction offered by CSS3 is the ability to align document elements <em>across grid columns</em>. This is a pretty nice additional feature, far more powerful and flexible than the feeble <code>float</code>&nbsp;construction. </p>
<p>The major changes evidenced in the CSS3 grid-layout, at the moment, are the additional <abbr title="Cascading Style Sheets">CSS</abbr> elements <code>grid-columns</code> and <code>grid-rows</code>. However, the grid-layout also takes significant advantage of extensions to the <code>float</code> element, which carries new attributes allowing you to specify the target location for the floated object, and a new measurement unit&thinsp;&#8212;&thinsp;the &#8220;grid unit&#8221;&thinsp;&#8212;&thinsp;equivalent to the distance between two adjacent grid&nbsp;lines. </p>
<p>An interesting thing about this measurement unit is that not all grid units will be equal&thinsp;&#8212;&thinsp;since you can specify a different measurement for <code>column</code>s (content bearing grid elements) and <code>column-gap</code>s (the space between columns.) An object given the width in grid units will span the appropriate <em>number</em> of grid units, regardless of the specific size of those&nbsp;units. </p>
<p>It looks complicated. There are a lot of new possibilities and new ways of approaching layout which will become available with the maturity of CSS3. However, <em>assuming equal, standards-based implementations</em>, I see no reason that this shouldn&#8217;t ultimately be far simpler than existing <abbr title="Cascading Style Sheets">CSS</abbr> layouts. A grid standard will enable, ultimately, far more consistent and reliable site design&nbsp;methods. </p>
<p>I just wish we didn&#8217;t have to wait so long&#8230;
<p><strong><a href="http://www.joedolson.com/articles/2007/09/css3-on-grid-positioning-and-layout/">CSS3: On Grid Positioning and Layout</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2007/09/css3-on-grid-positioning-and-layout/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Why not tables? Is CSS really better?</title>
		<link>http://www.joedolson.com/articles/2007/08/tables-or-css-layout/</link>
		<comments>http://www.joedolson.com/articles/2007/08/tables-or-css-layout/#comments</comments>
		<pubDate>Thu, 23 Aug 2007 17:21:07 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Semantics]]></category>
		<category><![CDATA[controversy]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[layout]]></category>
		<category><![CDATA[tables]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/2007/08/tables-or-css-layout/</guid>
		<description><![CDATA[At Cre8asite Forums this week, a lengthy discussion on the ultimate value of pure CSS (Cascading Style Sheets) based layout over the use of tables has been taking place. Sometimes, living in the sheltered world of accessible and standards-based design, I can lose touch with the fact that many people out there simply don&#8217;t accept [...]<p><strong><a href="http://www.joedolson.com/articles/2007/08/tables-or-css-layout/">Why not tables? Is CSS really better?</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<p>At Cre8asite Forums this week, a lengthy discussion on <a href="http://www.cre8asiteforums.com/forums/index.php?showtopic=53844&#038;hl=">the ultimate value of pure <abbr title="Cascading Style Sheets">CSS</abbr> (Cascading Style Sheets) based layout over the use of tables</a> has been taking place. Sometimes, living in the sheltered world of accessible and standards-based design, I can lose touch with the fact that many people out there simply don&#8217;t accept some of the same guidelines I work with every day&thinsp;&#8212;&thinsp;and that this does not, in any way, mean that they haven&#8217;t given the subject a fair shot. Very good arguments have been made to defend each&nbsp;side. </p>
<p>On the whole, I think this discussion is an old, worn-out subject: those who won&#8217;t use tables generally don&#8217;t use them out of principle, and those who do use them out of pragmatism and a justified awareness that principles don&#8217;t build websites. I want to review the question once more, however, ignoring the entire question of&nbsp;principle.</p>
<p><span id="more-173"></span></p>
<h3>The Argument Before&nbsp;Us</h3>
<p>The question at hand in this forum discussion has been whether tables have a fundamental, universal flaw which should make them unacceptable. Many arguments have been offered, but don&#8217;t satisfy the true&nbsp;question.</p>
<p>Answering the question is actually very difficult. It needs to be an inherent characteristic of tables, rather than a factor which depends on a specific use of tables or a facetious argument about which one is &#8220;easier&#8221; to use or&nbsp;maintain. </p>
<p>I&#8217;m opposed to using tables for layout&thinsp;&#8212;&thinsp;but now I want to look very closely at <em>why</em>. I want to find a reason outside of my own biases and beliefs, which can be simply stated and&nbsp;demonstrated. </p>
<p>Is it possible to use tables for layout and provide an equally usable and accessible web&nbsp;site? </p>
<p>For the best analysis, we have to assume that these tables are being used in a respectable manner. Bad code is bad code, whether it&#8217;s applied to <code>&lt;div&gt;</code>s or <code>&lt;table&gt;</code>s. Twenty-eight layers of nested <em>anything</em> is bad&nbsp;news. </p>
<p>So, there are three rules which must be met in order to be a definitive&nbsp;advantage:</p>
<ol>
<li>I&#8217;m not willing to accept minor design limitations as meaningful for either option. Whether there are certain design choices which you don&#8217;t have open to you with tables or with <abbr title="Cascading Style Sheets">CSS</abbr>-based layouts is irrelevant to me: you choose a tool, and work with the capabilities of that&nbsp;tool.</li>
<li>I don&#8217;t accept ease of maintenance of development as being relevant. These are personal opinions and personal&nbsp;choices.</li>
<li>I&#8217;m not going to consider semantics except as it may effect the user experience. A context in which the use of tables for layout causes problems because the device assumes any table is purely tabular data is a problem; the argument that tables are &#8220;wrong&#8221; for layout is functionally&nbsp;meaningless.</li>
</ol>
<p><strong>The only acceptable argument is whether there are ways in which the use of a table for layout inevitably damages the user&#8217;s experience with that&nbsp;site.</strong></p>
<h3>Examples of perceived weaknesses of&nbsp;tables</h3>
<dl>
<dt>Speed of rendering. Unless table widths are specified explicitly, the entire content of the table must be rendered fully before the browser can completely render the page. This slows down the overall loading time of the page.</dt>
<dd>This does not fulfill the requirements. First, this is also true of <abbr title="Cascading Style Sheets">CSS</abbr> based websites. Second, it&#8217;s avoidable.</dd>
<dt>In order to provide an accessible website order, you have to arrange your data cells very carefully, due to table linearization.</dt>
<dd>Partial pass. The only real difference is that with tables, whatever will appear on the left MUST be before what appears in the center. Of course, there are <a href="http://joeclark.org/book/sashay/serialization/Chapter08.html#h2-1785">easy workarounds for it</a>. There are, in addition, many other ways of navigating around a page which make the whole concept somewhat irrelevant&thinsp;&#8212;&thinsp;it doesn&#8217;t ultimately matter that much whether your navigation appears before your content, if you&#8217;ve made effective use of other key structural elements or skip links.</dd>
<dt>Adaptability with variable browser widths</dt>
<dd>Tables can only become as narrow as the content they contain, even if they are constructed using percentage widths, etc. Div based layouts can re-flow content, so that sidebars slip to the bottom as the screen width narrows. The question is: which behavior is worse? Would you rather have to scroll to the bottom to see sidebar or navigation content, or scroll horizontally for the same? I&#8217;d rather not ever do horizontal scrolling, but this isn&#8217;t a clear pass.</dd>
<dt>Compatibility with mobile devices.</dt>
<dd>Technically, the same problem as above. However, many modern devices don&#8217;t really have this problem. There are four basic methods of rendering sites in mobile devices: linearizing, zoom, rewrite, and &#8220;try and interpret the standard styles on a tiny screen.&#8221; The 4th method is the only one which is likely to really run into problems with tables&thinsp;&#8212;&thinsp;and it&#8217;s fundamentally identical to the previous described problem.</dd>
<dt>Ability to accomplish radical redesign without altering <abbr title="HyperText Markup Language">HTML</abbr> code.</dt>
<dd>Depending on your definition of radical, this is a total winner for <abbr title="Cascading Style Sheets">CSS</abbr> layouts. Tables fix the fundamental placement of elements where <abbr title="Cascading Style Sheets">CSS</abbr> based layouts allow those fundamental elements to be moved more or less at will. Whether this is seriously <em>important</em>, however, is a matter of personal opinion. Arguably, this is a question of design capabilities, and fails rule #1.</dd>
</dl>
<p>That&#8217;s all I can think of off the top of my head, although I&#8217;ll happily accept suggestions from the&nbsp;comments.</p>
<p>Before I move on, however, I want to approach this from the opposite direction. What are the <em>advantages</em> to using tables for layout? The same rules apply: only a situation where not using tables for layout damages the user&#8217;s experience will absolutely qualify the table as a superior&nbsp;method.</p>
<p>The main reasons people have so far espoused as benefits to using tables for layout&nbsp;include: </p>
<div class="aside" id="flushleft">
<p>This is actually a very interesting problem, which clearly exposes some of the weaknesses in CSS: specifically the lack of ability to specify that a block level element is centered <em>without</em> specifying that the text within is centered. I&#8217;ve constructed <a href="/flush-left.php">an example</a>, but it only functions in browsers which support <code>display: table</code>. Opera and Firefox make it fine, as does Safari&thinsp;&#8212;&thinsp;but Internet Explorer, as usual, falls&nbsp;short.</p>
</div>
<dl>
<dt>Easier to learn and use</dt>
<dd>Matter of opinion. Doesn&#8217;t qualify.</dd>
<dt>Easier to create a multi-column layout with full-length columns.</dt>
<dd>Yes, it&#8217;s easier. But the fact that with <abbr title="Cascading Style Sheets">CSS</abbr> this is quite difficult is not a huge advantage&thinsp;&#8212;&thinsp;although we ALL agree that <abbr title="Cascading Style Sheets">CSS</abbr> will benefit greatly from more advanced support across browsers.</dd>
<dt>Certain layouts are only possible using tables</dt>
<dd>This is <strong>extremely</strong> difficult to prove. In the Cre8asite thread, Ron Carnell suggested a specific layout which he believes is not possible to accomplish without using a table. The challenge is to present a poem with a heading where the lines of the poem are left-aligned, but the poem as a whole is centered under the heading. The poem and heading should be able to have lines of any length and still remain centered correctly.  (<a href="#flushleft">See &#8220;flush left&#8221; sidebar</a>.) Although <abbr title="Cascading Style Sheets">CSS</abbr> appears to fail this test, the test itself comes under rule #1, as well. It does not substantively effect the user experience.</dd>
<dt>Browser Compatibility</dt>
<dd>Older browsers have lousy support for <abbr title="Cascading Style Sheets">CSS</abbr>. This is pretty much a no-brainer. Older browsers (Pre-<abbr title="Internet Explorer">IE</abbr> 5.5) pretty much just have to receive style-free versions of <abbr title="Cascading Style Sheets">CSS</abbr>-based layouts. Still, it&#8217;s a very valid question whether providing support for Netscape 4.8, <abbr title="Internet Explorer">IE</abbr> 4 or similar relics is actually valuable. As of today, <a href="http://www.thecounter.com/stats/2007/August/browser.php">statistics for August 2007 at theCounter</a> show that all versions of Netscape 7 and below plus all versions of Internet Explorer version 5 and below accumulate to approximately 1% of browser market share. Versions of <abbr title="Internet Explorer">IE</abbr> in the 5 range account for over half of that&thinsp;&#8211;&thinsp;but it&#8217;s still less than 1%. (<a href='http://www.joedolson.com/articles/2007/08/tables-or-css-layout/browser-statistics-for-august-2007-as-of-august-23rd-2007/' rel='attachment wp-att-174' title='Browser Statistics for August 2007 as of August 23rd, 2007.'>Browser Statistics for August 2007 as of August 23rd, 2007.</a>)
</dl>
<h3>In&nbsp;Conclusion</h3>
<p>The conclusion, so far, is inconclusive. Tables, when used with a high level of consciousness concerning how and when they can be used, can provide a perfectly flexible, fast, web site. Though there are definite flaws with tables and how they present information, many of these problems are paralleled by related problems when using <abbr title="Cascading Style Sheets">CSS</abbr> based&nbsp;layouts. </p>
<p>There don&#8217;t appear to be any serious benefits, however, to using tables for layout. Although the table may make layouts easier for certain contexts: particularly when using centering and fluid widths or establishing full-length columns, these aren&#8217;t, in my opinion, issues which are capable of selling the table as a tool for&nbsp;layout.</p>
<p>In the absence of any definitive benefit for either tool, I will choose not to use tables for layout. I am, however, interested in this argument, and would be glad to hear your own arguments for or against either method.  I have little doubt that I&#8217;ve missed cogent points for both sides!
<p><strong><a href="http://www.joedolson.com/articles/2007/08/tables-or-css-layout/">Why not tables? Is <abbr title="Cascading Style Sheets">CSS</abbr> really better?</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2007/08/tables-or-css-layout/feed/</wfw:commentRss>
		<slash:comments>31</slash:comments>
		</item>
		<item>
		<title>Personal Names and Language Choice</title>
		<link>http://www.joedolson.com/articles/2007/04/personal-names-and-language-choice/</link>
		<comments>http://www.joedolson.com/articles/2007/04/personal-names-and-language-choice/#comments</comments>
		<pubDate>Wed, 18 Apr 2007 17:37:36 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Semantics]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/2007/04/personal-names-and-language-choice/</guid>
		<description><![CDATA[I&#8217;ve been thinking about the language of personal names recently. Commonly, personal names don&#8217;t follow the pronunciation rules of their locality. My name is &#8220;Joe.&#8221; That&#8217;s an easy one. But you can&#8217;t be sure. My partner is named &#8220;Janna&#8221;&#8201;&#8212;&#8201;pronounced &#8220;Yahn-uh.&#8221; In this country, it&#8217;s the very rare exception when a stranger pronounces her name&#160;correctly. It&#8217;s [...]<p><strong><a href="http://www.joedolson.com/articles/2007/04/personal-names-and-language-choice/">Personal Names and Language Choice</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<p>
I&#8217;ve been thinking about the language of personal names recently.  Commonly, personal names don&#8217;t follow the pronunciation rules of their locality.  My name is &#8220;Joe.&#8221; That&#8217;s an easy one.  <em>But you can&#8217;t be sure.</em> My partner is named &#8220;Janna&#8221;&thinsp;&#8212;&thinsp;pronounced &#8220;Yahn-uh.&#8221; In this country, it&#8217;s the very rare exception when a stranger pronounces her name&nbsp;correctly.
</p>
<p>
It&#8217;s embarrassing to mispronounce somebody&#8217;s name.  Outside of a personal introduction, however, it can be very difficult to know how to pronounce personal names because of these numerous deviations from the rules of pronunciation. (Which, in English, are already pretty&nbsp;nasty.)
</p>
<p>
But using language to markup a personal name may be somewhat deceptive or&nbsp;inaccurate.
</p>
<p><span id="more-144"></span></p>
<p>
First, there&#8217;s the semantic content of the personal name: does the name really represent a portion of another language because of it&#8217;s pronunciation?  Then, there&#8217;s the choice of language&thinsp;&#8212;&thinsp;&#8220;J&#8221; is pronounced as &#8220;Y&#8221; in several languages.  When there&#8217;s a clear intent, due to family origin and known parental choice, I suppose you could choose fairly easily.  However, the number of people you know well enough to select the correct language on the basis of their family origin and how their names were chosen is <em>probably</em> pretty&nbsp;small.
</p>
<p>
In fact, I think it&#8217;s fair to say that I cannot say with absolute certainty that I know how to pronounce 99% of the names I reference on the web.  If I were to attempt it, I would not actually be capable of marking an appropriate language for most&nbsp;names.
</p>
<p>
Nonetheless, I find it frustrating to be unable to pronounce something consistently and correctly, and would certainly not mind if there was some meaningful technique to mark pronunciation. There is, of course, the <a href="http://www.w3.org/TR/lexicon-reqs/">Pronunciation Lexicon Specification</a> from the <a href="http://www.w3.org/Voice/">Voice Browser activity group</a> of the <abbr title="World Wide Web Consortium">W3C</abbr>.  This is, however, not something which is applicable to <abbr title="eXtensible HyperText Markup Language - HTML reformulated as XML">XHTML</abbr> or <abbr title="HyperText Markup Language">HTML</abbr> to the best of my&nbsp;knowledge.
</p>
<p>
Anyhow, this is a question which struck me as interesting.  Correct pronunciation in screen readers is one of the reasons for using language markup for a block of text.  The same logic extended to personal names makes for a curious&nbsp;anomaly.
</p>
<p><strong><a href="http://www.joedolson.com/articles/2007/04/personal-names-and-language-choice/">Personal Names and Language Choice</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2007/04/personal-names-and-language-choice/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Standards, Accessibility, and Search Engine Optimization</title>
		<link>http://www.joedolson.com/articles/2007/03/standards-accessibility-and-search-engine-optimization/</link>
		<comments>http://www.joedolson.com/articles/2007/03/standards-accessibility-and-search-engine-optimization/#comments</comments>
		<pubDate>Wed, 14 Mar 2007 17:59:46 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Search Engines]]></category>
		<category><![CDATA[Semantics]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/2007/03/standards-accessibility-and-search-engine-optimization/</guid>
		<description><![CDATA[Robert Nyman has questions he&#8217;d love to have answered about SEO. I&#8217;m not the person to answer these questions, certainly, but I can certainly provide&#160;commentary. In particular, it&#8217;s nice to see people from the web standards community discussing search optimization. There&#8217;s no question that creating a website which applies web standards and the principles of [...]<p><strong><a href="http://www.joedolson.com/articles/2007/03/standards-accessibility-and-search-engine-optimization/">Standards, Accessibility, and Search Engine Optimization</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<p>
Robert Nyman has <a href="http://www.robertnyman.com/2007/03/14/questions-id-love-to-have-answered-about-seo/">questions he&#8217;d love to have answered about SEO</a>. I&#8217;m not the <a href="http://www.mattcutts.com/blog/">person to answer these questions</a>, certainly, but I can certainly provide&nbsp;commentary.
</p>
<p>
In particular, it&#8217;s nice to see people from the web standards community discussing search optimization.  There&#8217;s no question that creating a website which applies web standards and the <a href="http://www.joedolson.com/accessible-navigation.php">principles of accessibility</a> also creates a nice landing spot for search engines.  When you build accessibly, you remove barriers to access for search engines as well as users.  Although accessibility and web standards are certainly not necessary for search engine success, they can be an excellent way to kickstart your campaign.  New websites in particular are likely to benefit from the crawlability and easy navigation aided by conscientious&nbsp;construction.
</p>
<p><span id="more-132"></span></p>
<p>
Robert comments on the fact that there are a lot of shady SEO companies out there.  It&#8217;s important to mention that, but also important, as he does, to acknowledge that there are large communities of enthusiastic search marketing companies who won&#8217;t use those methods.  A solid search marketing company will emphasize long term results&thinsp;&#8212;&thinsp;and will therefore avoid these methods which leave your site open to future&nbsp;condemnation.
</p>
<p>
There are a lot of interesting questions he raises on how logical web design and implementation questions can influence search engine considerations of your site.  Does hidden text which is part of a <abbr title="Document Object Model">DOM</abbr>-manipulable interface raise red flags?  What about use of <code>&lt;em&gt;</code> to highlight an entire block of text, such as an introductory paragraph or preamble?  They may be sensible decisions, but they may also raise undesirable red flags with a search&nbsp;robot.
</p>
<p>
My opinion is that search engines are out to find your content.  If you&#8217;re providing unique, valuable content, they&#8217;ll persevere until they find and index your content.  If you&#8217;re using a particular technique for a good reason, you should be&nbsp;OK.
</p>
<p>
<em>Should be OK.</em> That deserves repetition.  You may NOT be OK&thinsp;&#8212;&thinsp;like I said, I&#8217;m not an authority. However, if you keep the basic premise that search engines <em>want</em> to find your unique information, then they&#8217;ll discard the red flags as long as they continue to find value at your site.  Algorithmic decisions will always create conflicts, however.  Whether the weight of your content is greater than the flags raised by your design decisions is an open&nbsp;question.
</p>
<p>
To generalize, if you&#8217;re making a decision on the basis of a semantic decision or to provide added functionality, you should be all right.  If you&#8217;re making a decision because you&#8217;re trying to influence search engines, you should think again. A search engine should never be your <em>sole</em> reason for a coding&nbsp;decision.
</p>
<p><strong><a href="http://www.joedolson.com/articles/2007/03/standards-accessibility-and-search-engine-optimization/">Standards, Accessibility, and Search Engine Optimization</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2007/03/standards-accessibility-and-search-engine-optimization/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
