<?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>HTML 5 &#187; Conformance Checking</title>
	<atom:link href="http://www.htmlfive.net/category/conformance-checking/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.htmlfive.net</link>
	<description>A central location for HTML5 news and updates</description>
	<lastBuildDate>Tue, 31 Aug 2010 10:55:33 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Google Tech Talk: HTML5 demos</title>
		<link>http://www.htmlfive.net/google-tech-talk-html5-demos/</link>
		<comments>http://www.htmlfive.net/google-tech-talk-html5-demos/#comments</comments>
		<pubDate>Fri, 26 Sep 2008 23:49:13 +0000</pubDate>
		<dc:creator>Ian Hickson</dc:creator>
				<category><![CDATA[Browser API]]></category>
		<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Conformance Checking]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[Elements]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[Forms]]></category>
		<category><![CDATA[Multimedia]]></category>
		<category><![CDATA[Syntax]]></category>
		<category><![CDATA[WHATWG]]></category>

		<guid isPermaLink="false">http://blog.whatwg.org/?p=300</guid>
		<description><![CDATA[<p>I gave a talk at Google on Monday demonstrating the various features of HTML5 that are implemented in browsers today. The video is now on YouTube, so now you too can watch and laugh at my lame presentation skills!</p>
<p></p>
<p>The segments of this talk are as follows. Some of the demos are available online for you to play with and are linked to from the following list:</p>
<ol>
 <li> Introduction
 </li><li> <a href="http://whatwg.org/demos/2008-sept/video/video.html"><code>&#60;video&#62;</code></a> (00:35)
 </li><li> <a href="http://whatwg.org/demos/2008-sept/gadget-host/host.html"><code>postMessage()</code></a> (05:40)
 </li><li> <a href="http://whatwg.org/demos/2008-sept/editor/editor.html"><code>localStorage</code></a> (15:20)
 </li><li> <a href="http://whatwg.org/demos/2008-sept/wizard/step1.html"><code>sessionStorage</code></a> (21:00)
 </li><li> <a href="http://whatwg.org/demos/2008-sept/dnd/dnd.html">Drag and Drop API</a> (29:05)
 </li><li> <a href="http://whatwg.org/demos/2008-sept/hashchange/hashchange.html"><code>onhashchange</code></a> (37:30)
 </li><li> <a href="http://whatwg.org/demos/2008-sept/widgets/">Form Controls</a> (40:50)
 </li><li> <a href="http://whatwg.org/demos/2008-sept/color/color.html"><code>&#60;canvas&#62;</code></a> (56:55)
 </li><li> <a href="http://html5.validator.nu/">Validation</a> (1:07:20)
 </li><li> Questions and Answers (1:09:35)
</li></ol>
<p>If you're very interested in watching my typos, the high quality version of <a href="http://www.youtube.com/watch?v=xIxDJof7xxQ&#38;eurl=http://www.whatwg.org/demos/2008-sept/">the video on the YouTube site</a> is clear enough to see the text being typed. More details about the demos can be found on the corresponding <a href="http://whatwg.org/demos/2008-sept/">demo page</a>.</p>]]></description>
			<content:encoded><![CDATA[<p>I gave a talk at Google on Monday demonstrating the various features of HTML5 that are implemented in browsers today. The video is now on YouTube, so now you too can watch and laugh at my lame presentation skills!</p>
<p></p>
<p>The segments of this talk are as follows. Some of the demos are available online for you to play with and are linked to from the following list:</p>
<ol>
 <li> Introduction
 </li><li> <a href="http://whatwg.org/demos/2008-sept/video/video.html"><code>&lt;video&gt;</code></a> (00:35)
 </li><li> <a href="http://whatwg.org/demos/2008-sept/gadget-host/host.html"><code>postMessage()</code></a> (05:40)
 </li><li> <a href="http://whatwg.org/demos/2008-sept/editor/editor.html"><code>localStorage</code></a> (15:20)
 </li><li> <a href="http://whatwg.org/demos/2008-sept/wizard/step1.html"><code>sessionStorage</code></a> (21:00)
 </li><li> <a href="http://whatwg.org/demos/2008-sept/dnd/dnd.html">Drag and Drop API</a> (29:05)
 </li><li> <a href="http://whatwg.org/demos/2008-sept/hashchange/hashchange.html"><code>onhashchange</code></a> (37:30)
 </li><li> <a href="http://whatwg.org/demos/2008-sept/widgets/">Form Controls</a> (40:50)
 </li><li> <a href="http://whatwg.org/demos/2008-sept/color/color.html"><code>&lt;canvas&gt;</code></a> (56:55)
 </li><li> <a href="http://html5.validator.nu/">Validation</a> (1:07:20)
 </li><li> Questions and Answers (1:09:35)
</li></ol>
<p>If you're very interested in watching my typos, the high quality version of <a href="http://www.youtube.com/watch?v=xIxDJof7xxQ&#38;eurl=http://www.whatwg.org/demos/2008-sept/">the video on the YouTube site</a> is clear enough to see the text being typed. More details about the demos can be found on the corresponding <a href="http://whatwg.org/demos/2008-sept/">demo page</a>.</p><p></p><p>This item was originally posted at: <a href='http://blog.whatwg.org'>http://blog.whatwg.org</a> and is licensed under the <a href='http://www.opensource.org/licenses/mit-license.php'>MIT license</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.htmlfive.net/google-tech-talk-html5-demos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML5 conformance checking in Vim</title>
		<link>http://www.htmlfive.net/html5-conformance-checking-in-vim/</link>
		<comments>http://www.htmlfive.net/html5-conformance-checking-in-vim/#comments</comments>
		<pubDate>Sun, 18 May 2008 13:08:31 +0000</pubDate>
		<dc:creator>MikeSmith</dc:creator>
				<category><![CDATA[Conformance Checking]]></category>

		<guid isPermaLink="false">http://blog.whatwg.org/?p=172</guid>
		<description><![CDATA[<p><a href="http://hendry.iki.fi/">Kai Hendry</a> has written an HTML filetype plugin for <a href="http://en.wikipedia.org/wiki/Vim_(text_editor)">Vim</a> that allows you to use Henri Sivonen’s <a href="http://validator.nu/">Validator.nu</a> conformance checking (validation) service remotely to check the contents of any HTML document you edit in Vim and determine if the document is HTML5-conformant (valid).</p>

<p>Here’s a screenshot of it in use (note that it links to a full-size image that's easier to read).</p>

<p><a href='http://blog.whatwg.org/media/vim-checker.png'><img src="http://blog.whatwg.org/media/vim-checker.png" alt="screen showing quickfix mode in Vim being used to edit an HTML file"></a></p>

<p>The filetype plugin is also demo'ed in a screencast tutorial on editing Web applications that Kai has blogged about in a <a href="http://natalian.org/archives/2008/05/17/vim-web-ide/">VIM IDE for Web applications</a> posting on his blog (see the blog posting for a link to the video).</p>

<p>All that you need to do to install the Vim filetype plugin is to download the <a href="http://svn.natalian.org/projects/html5/html.vim">plugin source</a> and save it into <code>~/.vim/ftplugin/html.vim</code>. To use it to check a document, first do <code>:make</code> within Vim, then use <code>:<a href="http://www.vim.org/htmldoc/quickfix.html#:cope">cope</a></code> and <code>:<a href="http://www.vim.org/htmldoc/quickfix.html#:clist">clist</a></code> and <code>:<a href="http://www.vim.org/htmldoc/quickfix.html#:cnext">cnext</a></code> and such to locate the errors (for more details, read the <a href="http://www.vim.org/htmldoc/quickfix.html">section of the Vim docs</a> that relates to those commands.)</p>

<h4>How and why it works</h4>
<p>Vim has <a href="http://www.vim.org/htmldoc/usr_30.html">a set of “quickfix” commands</a> that provide something that many development IDEs also have these days: A way to run a compiler or lint checker or other external tool on the contents of a file you are editing, and then to have any errors returned — along with the line and column numbers of the places in your file where the errors occur — as a list that you can then easily step through or jump through one-by-one and fix. It’s a very powerful feature.</p>

<p>Kai’s HTML filetype plugin provides a way to use Vim’s “quickfix” commands to do conformance checking of HTML5 files. The plugin is dead simple; it’s just two lines:</p>

<blockquote><pre>set makeprg=curl\ -s\ -F\ laxtype=yes\ -F\ parser=html5\
  \ -F\ level=error\ -F\ out=gnu\ -F\ doc=@%\
  http://validator.nu
set errorformat=\"%f\":%l.%c-%m</pre></blockquote>

<p>(Note that I've just wrapped the first line for the purpose of readability in this post.)</p>

<p>The <code>makeprg</code> option in the first line tells Vim what “make program” you want to use when checking HTML files. And the <code>errorformat</code> option in the second line tells Vim the expected format of error messages from that “make program” — so that it can parse the error messages to get the line and column numbers of the places in your file where the errors occur (the meanings of the various parts of the string used in that <code>errorformat</code> value are: %f, filename; %l, line number; %c, column number; %m, error message).</p>

<h4>Interaction with Validator.nu</h4>
<p>What Kai’s HTML filetype plugin does it to use as the “make program” the <a href="http://curl.haxx.se/">curl</a> command-line HTTP client, and in turn, to have <b>curl</b> send a POST request to Validator.nu. The contents of that POST request are set by the parameters and values specified by the <code>-F</code> options passed to <b>curl</b>. Essentially what this does is to emulate what would happen if you used the form-based interface at the Validator.nu website to manually set the values of the various form fields in that interface. (Note that <a href="http://www.gnu.org/software/wget/">wget</a> could be probably used here (with different options) to do the same thing.)</p>

<p>What Validator.nu does in return is to send a response with the list of errors — in a format that allows the list of errors to be easily parsed by tools that have built-in support (like Vim’s “quickfix”) for reading error lists that are in a regular format and doing something with them.</p>

<h4>GNU-formatted error output</h4>
<p>In this case, since the <code>out=gnu</code> parameter and value were passed to Validator.nu, the particular format in which Validator.nu returns the error list is the standard <a href="http://www.gnu.org/prep/standards/standards.html#Errors">GNU error format</a> that’s used by many applications (including that other editor, Emacs). This use case (enabling remote validation and error-evaluation with editing applications) is actually one of the main cases for which Henri added the GNU-formatted error-reporting option to Validator.nu.</p>

<h4>Validator.nu + Vim = easy HTML5 conformance checking</h4>
<p>The end result is that you get the error information back into Vim in a way that lets you more easily locate and fix the errors.</p>
<p>So setting just two options is all it takes in an editing application like Vim to enable Validator.nu to be used remotely like this (that is, to do integrated HTML5 conformance-checking and error-reporting within the editor). This seems to me to be a pretty good testament (another in a long list) to the utility of the Validator.nu service and to the foresight that’s gone into its design.</p>

<p>It guess it also says a lot about the utility of Vim and the foresight that’s gone into its design — but we all already know how great Vim is, right? <img src='http://blog.whatwg.org/wp-includes/images/smilies/icon_smile.gif' alt=')' /> </p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://hendry.iki.fi/">Kai Hendry</a> has written an HTML filetype plugin for <a href="http://en.wikipedia.org/wiki/Vim_(text_editor)">Vim</a> that allows you to use Henri Sivonen’s <a href="http://validator.nu/">Validator.nu</a> conformance checking (validation) service remotely to check the contents of any HTML document you edit in Vim and determine if the document is HTML5-conformant (valid).</p>

<p>Here’s a screenshot of it in use (note that it links to a full-size image that's easier to read).</p>

<p><a href='http://blog.whatwg.org/media/vim-checker.png'><img src="http://blog.whatwg.org/media/vim-checker.png" alt="screen showing quickfix mode in Vim being used to edit an HTML file"></a></p>

<p>The filetype plugin is also demo'ed in a screencast tutorial on editing Web applications that Kai has blogged about in a <a href="http://natalian.org/archives/2008/05/17/vim-web-ide/">VIM IDE for Web applications</a> posting on his blog (see the blog posting for a link to the video).</p>

<p>All that you need to do to install the Vim filetype plugin is to download the <a href="http://svn.natalian.org/projects/html5/html.vim">plugin source</a> and save it into <code>~/.vim/ftplugin/html.vim</code>. To use it to check a document, first do <code>:make</code> within Vim, then use <code>:<a href="http://www.vim.org/htmldoc/quickfix.html#:cope">cope</a></code> and <code>:<a href="http://www.vim.org/htmldoc/quickfix.html#:clist">clist</a></code> and <code>:<a href="http://www.vim.org/htmldoc/quickfix.html#:cnext">cnext</a></code> and such to locate the errors (for more details, read the <a href="http://www.vim.org/htmldoc/quickfix.html">section of the Vim docs</a> that relates to those commands.)</p>

<h4>How and why it works</h4>
<p>Vim has <a href="http://www.vim.org/htmldoc/usr_30.html">a set of “quickfix” commands</a> that provide something that many development IDEs also have these days: A way to run a compiler or lint checker or other external tool on the contents of a file you are editing, and then to have any errors returned — along with the line and column numbers of the places in your file where the errors occur — as a list that you can then easily step through or jump through one-by-one and fix. It’s a very powerful feature.</p>

<p>Kai’s HTML filetype plugin provides a way to use Vim’s “quickfix” commands to do conformance checking of HTML5 files. The plugin is dead simple; it’s just two lines:</p>

<blockquote><pre>set makeprg=curl\ -s\ -F\ laxtype=yes\ -F\ parser=html5\
  \ -F\ level=error\ -F\ out=gnu\ -F\ doc=@%\
  http://validator.nu
set errorformat=\"%f\":%l.%c-%m</pre></blockquote>

<p>(Note that I've just wrapped the first line for the purpose of readability in this post.)</p>

<p>The <code>makeprg</code> option in the first line tells Vim what “make program” you want to use when checking HTML files. And the <code>errorformat</code> option in the second line tells Vim the expected format of error messages from that “make program” — so that it can parse the error messages to get the line and column numbers of the places in your file where the errors occur (the meanings of the various parts of the string used in that <code>errorformat</code> value are: %f, filename; %l, line number; %c, column number; %m, error message).</p>

<h4>Interaction with Validator.nu</h4>
<p>What Kai’s HTML filetype plugin does it to use as the “make program” the <a href="http://curl.haxx.se/">curl</a> command-line HTTP client, and in turn, to have <b>curl</b> send a POST request to Validator.nu. The contents of that POST request are set by the parameters and values specified by the <code>-F</code> options passed to <b>curl</b>. Essentially what this does is to emulate what would happen if you used the form-based interface at the Validator.nu website to manually set the values of the various form fields in that interface. (Note that <a href="http://www.gnu.org/software/wget/">wget</a> could be probably used here (with different options) to do the same thing.)</p>

<p>What Validator.nu does in return is to send a response with the list of errors — in a format that allows the list of errors to be easily parsed by tools that have built-in support (like Vim’s “quickfix”) for reading error lists that are in a regular format and doing something with them.</p>

<h4>GNU-formatted error output</h4>
<p>In this case, since the <code>out=gnu</code> parameter and value were passed to Validator.nu, the particular format in which Validator.nu returns the error list is the standard <a href="http://www.gnu.org/prep/standards/standards.html#Errors">GNU error format</a> that’s used by many applications (including that other editor, Emacs). This use case (enabling remote validation and error-evaluation with editing applications) is actually one of the main cases for which Henri added the GNU-formatted error-reporting option to Validator.nu.</p>

<h4>Validator.nu + Vim = easy HTML5 conformance checking</h4>
<p>The end result is that you get the error information back into Vim in a way that lets you more easily locate and fix the errors.</p>
<p>So setting just two options is all it takes in an editing application like Vim to enable Validator.nu to be used remotely like this (that is, to do integrated HTML5 conformance-checking and error-reporting within the editor). This seems to me to be a pretty good testament (another in a long list) to the utility of the Validator.nu service and to the foresight that’s gone into its design.</p>

<p>It guess it also says a lot about the utility of Vim and the foresight that’s gone into its design — but we all already know how great Vim is, right? <img src='http://blog.whatwg.org/wp-includes/images/smilies/icon_smile.gif' alt=')' /> </p><p></p><p>This item was originally posted at: <a href='http://blog.whatwg.org'>http://blog.whatwg.org</a> and is licensed under the <a href='http://www.opensource.org/licenses/mit-license.php'>MIT license</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.htmlfive.net/html5-conformance-checking-in-vim/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Image Report Feature in Validator.nu</title>
		<link>http://www.htmlfive.net/new-image-report-feature-in-validatornu/</link>
		<comments>http://www.htmlfive.net/new-image-report-feature-in-validatornu/#comments</comments>
		<pubDate>Fri, 18 Apr 2008 13:53:32 +0000</pubDate>
		<dc:creator>Henri Sivonen</dc:creator>
				<category><![CDATA[Conformance Checking]]></category>
		<category><![CDATA[Syntax]]></category>

		<guid isPermaLink="false">http://blog.whatwg.org/image-report</guid>
		<description><![CDATA[<p>There have been <em>lots and lots</em> of e-mail on the <a href="http://lists.w3.org/Archives/Public/public-html/2008Apr/">public-html</a> mailing list about making the <code>alt</code> attribute syntactically required in HTML5. At the core of this debate is on one hand using HTML5 validators to send a strong message about accessibility and on the other hand of avoiding a situation where a simplified and idealistic strong message leads to behavior that is counterproductive considering the goal of making the Web accessible. As a policy debate, it is similar to abstinence-only sex education debates.</p>

<p>A validator is a computer program and cannot tell if a textual alternative is appropriate for a given image in a given context. That's why accessibility checking needs to be done by a person. A person may use a software tool to make the checking easier, but trusting on fully automated software to determine whether a page is accessible is misguided. </p>

<p>Given this basic problem, a policy that insists on the <code>alt</code> attribute always being present doesn’t necessarily lead to accessibility. In fact, considering that syntactic correctness and accessibility are different evaluation axes both in terms of computability and in terms of how HTML authors (other than accessibility advocates) tend to view things (judging from observations about the behavior of HTML authors who use validators), a policy that insists on the <code>alt</code> attribute being always present will likely cause people to put the attribute in there but with inappropriate content. In particular, putting an empty <code>alt</code> on images whose presence is important for understanding the context of other content is bad, because in that case the presence of those images is concealed from a non-graphical user. Also, a textual alternative that just says “image” is not an improvement over what, for example, Safari with VoiceOver says in the absence of <code>alt</code>, but would be worse than a smarter client-side heuristic.</p>

<p>Furthermore, there is a very real case where a textual alternative simply isn’t available to the HTML generator: a user uploads photos to a content management system and refuses to supply textual alternatives at the same moment. HTML 4 didn’t account for this case. In fact, requiring <code>alt</code> to under all circumstances assumes that markup is written by a person who knows what the images are at the time of writing markup. It doesn’t make sense to pretend that the case where the markup generator doesn’t have textual alternatives available doesn’t exist. The HTML 5 syntax needs to account for all use cases. </p>

<p>Expecting markup generators to knowingly emit markup that is not valid is not a winning proposition. Quoting me from 2006:</p>

<blockquote><p>Authoring tools are judged by taking a page authored using the
tool and running it through the W3C Validator or, presumably in the
future, through an HTML5 conformance checker. Authoring tool makers  
who
are capable of making their tool produce syntactically conforming
documents will want to do so and minimize the chance that the users of
their software tarnish the reputation of the tool in the eyes of  
people
who use an automated test as a litmus test of authoring tool bogosity.
(People who test tools that way will outnumber the people who make a
more profound analysis due to the "validate, validate, validate"
propaganda.)</p></blockquote>

<p>To summarize: As a matter of principle, subjective checking or checking that is not applicable for all pages <a href="http://www.w3.org/QA/2008/04/badges.html">does not belong in the validation function</a>. Practice is more important than principle, though. Baking the <code>alt</code> requirement into the validation function would be bad when the user of the validation function wants a clean report on syntax but isn’t as concerned with accessibility. It is bad for accessibility when authors put the simplest value that silences the validator into the attribute in order to make the validation report look clean, since doing so gives user agents like Safari with VoiceOver less information to work with. That's why I think the requirement to have an <code>alt</code> attribute present doesn’t belong in the validation function also as a practical matter.</p>

<p>It turns out, though, that some people think of validation as a first step toward accessibility, even though syntactic correctness and accessibility really are different evaluation axes. They expect a validator to help them flag images that are lacking a textual alternative. Moreover, the <code>alt</code> issue seems to be taken as the single most important web accessibility issue with the rest of issues somewhere in the long tail. When there is a demand for validators to flag images without <code>alt</code>, validators probably should meet the demand. </p>

<p>To this end, I have developed a new feature for <a href="http://html5.validator.nu/?showimagereport=yes&#38;showsource=yes">Validator.nu</a>: Image Report. This new feature is not part of the validation function. It also doesn’t do exactly want people are asking of the syntax definition in the long e-mail thread. (It is not a new idea for a validator user interface to offer tools that help a human perform an assessment about the page outside the validation function. For example, the W3C Validator has offered a “Show Document Outline” feature, which is also on file as a request for enhancement for Validator.nu.)</p>

<p>The new feature tries to address the issue of finding missing textual alternatives but it also seeks to address the issue of faulty textual alternatives. Furthermore, it seeks to address these in a way that doesn’t induce people to write bad textual alternatives in order to make the report look cleaner. </p>

<p>When you turn the feature on, it always lists all the images. There is no textual alternative you can fake to make the list look shorter. Instead, there are four categories and you can only change the category in which an image appears. </p>

<p>This has the benefit of removing the badge hunting problem: people trying to silence the validator without actually raising the quality of their page. However, it also has the benefit that the user can review the textual alternatives for appropriateness and the user can review that the right images have been marked as omitted from non-graphical presentation. Since this tool addresses more problems than simply making <code>alt</code> required on the syntax level, I believe this solution is much better than furiously staying entrenched in the status quo of HTML 4 validation, fearing so much a step backwards as to being too afraid to explore steps forward.</p>

<p>Finally, it should be noted that this feature is, by necessity, itself inaccessible to people who cannot view bitmap images. Yet, I think it is legitimate for this feature to be implemented with an HTML user interface. Also, this feature itself is a case where the generator of the user interface markup has no knowledge of the content of the images it is presenting to the user. Hence, it is itself an example of omitting the <code>alt</code> attribute. It would be truly ironic, if the syntax definition of HTML5 prevented Validator.nu from being self-validating.</p>]]></description>
			<content:encoded><![CDATA[<p>There have been <em>lots and lots</em> of e-mail on the <a href="http://lists.w3.org/Archives/Public/public-html/2008Apr/">public-html</a> mailing list about making the <code>alt</code> attribute syntactically required in HTML5. At the core of this debate is on one hand using HTML5 validators to send a strong message about accessibility and on the other hand of avoiding a situation where a simplified and idealistic strong message leads to behavior that is counterproductive considering the goal of making the Web accessible. As a policy debate, it is similar to abstinence-only sex education debates.</p>

<p>A validator is a computer program and cannot tell if a textual alternative is appropriate for a given image in a given context. That's why accessibility checking needs to be done by a person. A person may use a software tool to make the checking easier, but trusting on fully automated software to determine whether a page is accessible is misguided. </p>

<p>Given this basic problem, a policy that insists on the <code>alt</code> attribute always being present doesn’t necessarily lead to accessibility. In fact, considering that syntactic correctness and accessibility are different evaluation axes both in terms of computability and in terms of how HTML authors (other than accessibility advocates) tend to view things (judging from observations about the behavior of HTML authors who use validators), a policy that insists on the <code>alt</code> attribute being always present will likely cause people to put the attribute in there but with inappropriate content. In particular, putting an empty <code>alt</code> on images whose presence is important for understanding the context of other content is bad, because in that case the presence of those images is concealed from a non-graphical user. Also, a textual alternative that just says “image” is not an improvement over what, for example, Safari with VoiceOver says in the absence of <code>alt</code>, but would be worse than a smarter client-side heuristic.</p>

<p>Furthermore, there is a very real case where a textual alternative simply isn’t available to the HTML generator: a user uploads photos to a content management system and refuses to supply textual alternatives at the same moment. HTML 4 didn’t account for this case. In fact, requiring <code>alt</code> to under all circumstances assumes that markup is written by a person who knows what the images are at the time of writing markup. It doesn’t make sense to pretend that the case where the markup generator doesn’t have textual alternatives available doesn’t exist. The HTML 5 syntax needs to account for all use cases. </p>

<p>Expecting markup generators to knowingly emit markup that is not valid is not a winning proposition. Quoting me from 2006:</p>

<blockquote><p>Authoring tools are judged by taking a page authored using the
tool and running it through the W3C Validator or, presumably in the
future, through an HTML5 conformance checker. Authoring tool makers  
who
are capable of making their tool produce syntactically conforming
documents will want to do so and minimize the chance that the users of
their software tarnish the reputation of the tool in the eyes of  
people
who use an automated test as a litmus test of authoring tool bogosity.
(People who test tools that way will outnumber the people who make a
more profound analysis due to the "validate, validate, validate"
propaganda.)</p></blockquote>

<p>To summarize: As a matter of principle, subjective checking or checking that is not applicable for all pages <a href="http://www.w3.org/QA/2008/04/badges.html">does not belong in the validation function</a>. Practice is more important than principle, though. Baking the <code>alt</code> requirement into the validation function would be bad when the user of the validation function wants a clean report on syntax but isn’t as concerned with accessibility. It is bad for accessibility when authors put the simplest value that silences the validator into the attribute in order to make the validation report look clean, since doing so gives user agents like Safari with VoiceOver less information to work with. That's why I think the requirement to have an <code>alt</code> attribute present doesn’t belong in the validation function also as a practical matter.</p>

<p>It turns out, though, that some people think of validation as a first step toward accessibility, even though syntactic correctness and accessibility really are different evaluation axes. They expect a validator to help them flag images that are lacking a textual alternative. Moreover, the <code>alt</code> issue seems to be taken as the single most important web accessibility issue with the rest of issues somewhere in the long tail. When there is a demand for validators to flag images without <code>alt</code>, validators probably should meet the demand. </p>

<p>To this end, I have developed a new feature for <a href="http://html5.validator.nu/?showimagereport=yes&amp;showsource=yes">Validator.nu</a>: Image Report. This new feature is not part of the validation function. It also doesn’t do exactly want people are asking of the syntax definition in the long e-mail thread. (It is not a new idea for a validator user interface to offer tools that help a human perform an assessment about the page outside the validation function. For example, the W3C Validator has offered a “Show Document Outline” feature, which is also on file as a request for enhancement for Validator.nu.)</p>

<p>The new feature tries to address the issue of finding missing textual alternatives but it also seeks to address the issue of faulty textual alternatives. Furthermore, it seeks to address these in a way that doesn’t induce people to write bad textual alternatives in order to make the report look cleaner. </p>

<p>When you turn the feature on, it always lists all the images. There is no textual alternative you can fake to make the list look shorter. Instead, there are four categories and you can only change the category in which an image appears. </p>

<p>This has the benefit of removing the badge hunting problem: people trying to silence the validator without actually raising the quality of their page. However, it also has the benefit that the user can review the textual alternatives for appropriateness and the user can review that the right images have been marked as omitted from non-graphical presentation. Since this tool addresses more problems than simply making <code>alt</code> required on the syntax level, I believe this solution is much better than furiously staying entrenched in the status quo of HTML 4 validation, fearing so much a step backwards as to being too afraid to explore steps forward.</p>

<p>Finally, it should be noted that this feature is, by necessity, itself inaccessible to people who cannot view bitmap images. Yet, I think it is legitimate for this feature to be implemented with an HTML user interface. Also, this feature itself is a case where the generator of the user interface markup has no knowledge of the content of the images it is presenting to the user. Hence, it is itself an example of omitting the <code>alt</code> attribute. It would be truly ironic, if the syntax definition of HTML5 prevented Validator.nu from being self-validating.</p><p></p><p>This item was originally posted at: <a href = 'http://blog.whatwg.org'>http://blog.whatwg.org</a> and is licensed under the <a href = 'http://www.opensource.org/licenses/mit-license.php'>MIT license</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.htmlfive.net/new-image-report-feature-in-validatornu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Validator.nu now more useful when migrating existing designs</title>
		<link>http://www.htmlfive.net/validatornu-now-more-useful-when-migrating-existing-designs/</link>
		<comments>http://www.htmlfive.net/validatornu-now-more-useful-when-migrating-existing-designs/#comments</comments>
		<pubDate>Sat, 02 Feb 2008 11:20:56 +0000</pubDate>
		<dc:creator>Henri Sivonen</dc:creator>
				<category><![CDATA[Conformance Checking]]></category>
		<category><![CDATA[Syntax]]></category>

		<guid isPermaLink="false">http://blog.whatwg.org/validating-legacy</guid>
		<description><![CDATA[<p>Due to implementation details, the <a href="http://html5.validator.nu/">HTML5 facet of Validator.nu</a> used to ignore the content of obsolete elements such as <code>center</code>, because obsolete elements were simply unknown. This wasn’t particularly useful when assessing the HTML5-upgradeability of an existing design that wrapped everything in <code>center</code>, for example.</p>
<p>The HTML5 facet of Validator.nu now knows about obsolete <em>container</em> elements that existed as deprecated in HTML 4.01. This means that <code>center</code> is still an error, but the contents are now checked as HTML5.</p>
<p>Also, Validator.nu now allows legacy-style internal encoding declarations per the latest Editor’s Draft.</p>]]></description>
			<content:encoded><![CDATA[<p>Due to implementation details, the <a href="http://html5.validator.nu/">HTML5 facet of Validator.nu</a> used to ignore the content of obsolete elements such as <code>center</code>, because obsolete elements were simply unknown. This wasn’t particularly useful when assessing the HTML5-upgradeability of an existing design that wrapped everything in <code>center</code>, for example.</p>
<p>The HTML5 facet of Validator.nu now knows about obsolete <em>container</em> elements that existed as deprecated in HTML 4.01. This means that <code>center</code> is still an error, but the contents are now checked as HTML5.</p>
<p>Also, Validator.nu now allows legacy-style internal encoding declarations per the latest Editor’s Draft.</p><p></p><p>This item was originally posted at: <a href = 'http://blog.whatwg.org'>http://blog.whatwg.org</a> and is licensed under the <a href = 'http://www.opensource.org/licenses/mit-license.php'>MIT license</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.htmlfive.net/validatornu-now-more-useful-when-migrating-existing-designs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Major content model changes in HTML5 (and Validator.nu)</title>
		<link>http://www.htmlfive.net/major-content-model-changes-in-html5-and-validatornu/</link>
		<comments>http://www.htmlfive.net/major-content-model-changes-in-html5-and-validatornu/#comments</comments>
		<pubDate>Sun, 13 Jan 2008 15:10:48 +0000</pubDate>
		<dc:creator>Henri Sivonen</dc:creator>
				<category><![CDATA[Conformance Checking]]></category>
		<category><![CDATA[Elements]]></category>
		<category><![CDATA[Syntax]]></category>

		<guid isPermaLink="false">http://blog.whatwg.org/content-model-overhaul</guid>
		<description><![CDATA[<p>The <a href="http://www.whatwg.org/specs/web-apps/current-work/#kinds">HTML5 content models</a> became more lax in December in response to feedback from various people who found the stricter content model—especially the bimorphic content model of <code>div</code>—unhelpful. The notions “strictly inline content”, “structured inline content”, “block content” and “block or inline content but not both” (aka. bimorphic) are now gone.</p> 
<p>The elements formerly known as inline are now phrasing elements in order to make a distinction with the <code>display: inline;</code> CSS property. Content models that previously accepted only block content or either block or inline but not both now accept both. Phrasing content and content formerly known as block content are now prose content when taken together. The practical effect is that the conformance requirements became closer to HTML 4.01 Transitional than Strict; the former requirement for strictness turned out to be hard to justify in face of actual authoring patterns and browser support for those authoring patterns.</p>
<p>The content model changes are now also reflected in <a href="http://html5.validator.nu/">Validator.nu</a>. There are some known differences from the spec, though:</p>
<ul>
<li><code>&#60;style scoped&#62;</code> support is broken due to <a href="http://lists.w3.org/Archives/Public/public-html/2008Jan/0052.html">spec ambiguity</a>.</li>
<li><a href="http://www.whatwg.org/specs/web-apps/current-work/#the-font"><code>&#60;font&#62;</code> is not supported. The draft says the element will likely be dropped.</a></li>
<li>Nested <code>&#60;menu&#62;</code> elements are not supported due to <a href="http://lists.w3.org/Archives/Public/public-html/2008Jan/0086.html">implementability issues</a> with the current spec text.</li>
<li><a href="http://www.whatwg.org/specs/web-apps/current-work/#datatemplate">Data templates</a> are not supported. The draft is annotated with a note saying they are being considered for removal.</li>
<li><a href="http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2007-May/011181.html"><code>style='…'</code> is supported on all elements</a>.</li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://www.whatwg.org/specs/web-apps/current-work/#kinds">HTML5 content models</a> became more lax in December in response to feedback from various people who found the stricter content model—especially the bimorphic content model of <code>div</code>—unhelpful. The notions “strictly inline content”, “structured inline content”, “block content” and “block or inline content but not both” (aka. bimorphic) are now gone.</p> 
<p>The elements formerly known as inline are now phrasing elements in order to make a distinction with the <code>display: inline;</code> CSS property. Content models that previously accepted only block content or either block or inline but not both now accept both. Phrasing content and content formerly known as block content are now prose content when taken together. The practical effect is that the conformance requirements became closer to HTML 4.01 Transitional than Strict; the former requirement for strictness turned out to be hard to justify in face of actual authoring patterns and browser support for those authoring patterns.</p>
<p>The content model changes are now also reflected in <a href="http://html5.validator.nu/">Validator.nu</a>. There are some known differences from the spec, though:</p>
<ul>
<li><code>&lt;style scoped&gt;</code> support is broken due to <a href="http://lists.w3.org/Archives/Public/public-html/2008Jan/0052.html">spec ambiguity</a>.</li>
<li><a href="http://www.whatwg.org/specs/web-apps/current-work/#the-font"><code>&lt;font&gt;</code> is not supported. The draft says the element will likely be dropped.</a></li>
<li>Nested <code>&lt;menu&gt;</code> elements are not supported due to <a href="http://lists.w3.org/Archives/Public/public-html/2008Jan/0086.html">implementability issues</a> with the current spec text.</li>
<li><a href="http://www.whatwg.org/specs/web-apps/current-work/#datatemplate">Data templates</a> are not supported. The draft is annotated with a note saying they are being considered for removal.</li>
<li><a href="http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2007-May/011181.html"><code>style='…'</code> is supported on all elements</a>.</li>
</ul><p></p><p>This item was originally posted at: <a href = 'http://blog.whatwg.org'>http://blog.whatwg.org</a> and is licensed under the <a href = 'http://www.opensource.org/licenses/mit-license.php'>MIT license</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.htmlfive.net/major-content-model-changes-in-html5-and-validatornu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Validator.nu Web service API</title>
		<link>http://www.htmlfive.net/validatornu-web-service-api/</link>
		<comments>http://www.htmlfive.net/validatornu-web-service-api/#comments</comments>
		<pubDate>Tue, 27 Nov 2007 18:24:00 +0000</pubDate>
		<dc:creator>Henri Sivonen</dc:creator>
				<category><![CDATA[Conformance Checking]]></category>

		<guid isPermaLink="false">http://blog.whatwg.org/validatornu-web-service-api</guid>
		<description><![CDATA[<p><a href="http://html5.validator.nu/">Validator.nu</a> has had a Web service API for a while. It has not had documentation, though. This has now changed: <a href="http://wiki.whatwg.org/wiki/Validator.nu_Web_Service_Interface">Validator.nu Web service API docs</a>.</p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://html5.validator.nu/">Validator.nu</a> has had a Web service API for a while. It has not had documentation, though. This has now changed: <a href="http://wiki.whatwg.org/wiki/Validator.nu_Web_Service_Interface">Validator.nu Web service API docs</a>.</p><p></p><p>This item was originally posted at: <a href = 'http://blog.whatwg.org'>http://blog.whatwg.org</a> and is licensed under the <a href = 'http://www.opensource.org/licenses/mit-license.php'>MIT license</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.htmlfive.net/validatornu-web-service-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
