<?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>Accessible Culture</title>
	<atom:link href="http://www.accessibleculture.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.accessibleculture.org</link>
	<description></description>
	<lastBuildDate>Mon, 02 Jan 2012 23:14:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Videos of Screen Readers with Basic HTML5 and ARIA Landmarks</title>
		<link>http://www.accessibleculture.org/articles/2012/01/videos-of-screen-readers-html5-and-aria-landmarks/</link>
		<comments>http://www.accessibleculture.org/articles/2012/01/videos-of-screen-readers-html5-and-aria-landmarks/#comments</comments>
		<pubDate>Mon, 02 Jan 2012 11:30:20 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[JAWS]]></category>
		<category><![CDATA[NVDA]]></category>
		<category><![CDATA[screen readers]]></category>
		<category><![CDATA[WAI-ARIA]]></category>
		<category><![CDATA[Window-Eyes]]></category>

		<guid isPermaLink="false">http://www.accessibleculture.org/?p=1469</guid>
		<description><![CDATA[With the rapid development in certain user agents (take that, Firefox!), I'm a little late in getting these up, but I figure some of them are still useful to share. In any case, I posted to YouTube five videos of various screen readers interacting with basic HTML5 section elements and ARIA landmarks. These are videos I presented at the 2011&#8230; <a class="continue" href="http://www.accessibleculture.org/articles/2012/01/videos-of-screen-readers-html5-and-aria-landmarks/">Continue reading<span class="hidden"> Videos of Screen Readers with Basic HTML5 and ARIA Landmarks</span></a>]]></description>
			<content:encoded><![CDATA[<p>With the rapid development in certain user agents (take that, Firefox!), I'm a little late in getting these up, but I figure some of them are still useful to share. In any case, I <a href="http://www.youtube.com/user/AccessibleCulture">posted to YouTube</a> five videos of various screen readers interacting with basic HTML5 section elements and ARIA landmarks. These are videos I presented at the <a href="http://environmentsforhumans.com/2011/accessibility-summit/">2011 Accessibility Summit</a> and <a href="http://www.ozewai.org/">OZeWAI 2011</a> conferences.</p>
<p>The test pages used in the videos are:</p>
<ul>
<li><a href="/research-files/ozewai2011/html5OnlyTestCase.html">HTML5 Only Test Case</a></li>
<li><a href="/research-files/ozewai2011/html5AriaTestCase.html">HTML5 Plus ARIA Roles Test Case</a></li>
</ul>
<p>For more on screen reader behaviour with HTML5 and ARIA landmarks, see my post <a href="/articles/2011/04/html5-aria-2011/">HTML5, ARIA Roles, and Screen Readers in March 2011</a>, as well as <a href="http://www.html5accessibility.com/tests/landmarks.html">Steve Faulkner's ARIA Landmark role support tests from November 2011</a>.</p>
<h2>NVDA 2011.2 in FF6 with basic HTML5 section elements</h2>
<iframe width="320" height="240" src="http://www.youtube.com/embed/C13z5iVdFRA" frameborder="0" allowfullscreen></iframe>
<p>In Firefox only, the <code>header</code>, <code>footer</code>, and <code>nav</code> elements are identified as landmarks. Note that in Firefox versions 7, 8 , and 9, <code>header</code> elements are no longer identified as banner landmarks, and <code>aside</code> elements are now identified as complementary landmarks. Otherwise, the behaviour is identical.</p>
<h2>NVDA 2011.2 in FF6 with HTML5 and ARIA Landmark Roles</h2>
<iframe width="320" height="240" src="http://www.youtube.com/embed/-Ze9IdfB-dY" frameborder="0" allowfullscreen></iframe>
<p>With the exception of the application and form landmarks, all landmark roles are recognised by NVDA in both Firefox and Internet Explorer. In this test case, Firefox 6 identifies the <code>header</code> and <code>footer</code> elements inside the <code>article</code> as banner and contentinfo landmarks, even though they do not have express ARIA landmark role attributes. In Firefox 7&#8211;9, the <code>header</code> element is no longer registered as a landmark, but <code>footer</code> still is.</p>
<h2>JAWS 13 in IE9 with HTML5 and ARIA Landmark Roles</h2>
<iframe width="320" height="240" src="http://www.youtube.com/embed/jiA9RJBwXvw" frameborder="0" allowfullscreen></iframe>
<p>JAWS recognises all landmark roles. However, both region and article ARIA document structure roles are also announced as landmarks. JAWS also misrepresents the heading structure: see <a href="/articles/2011/10/jaws-ie-and-headings-in-html5/">JAWS, IE and Headings in HTML5</a>.</p>
<h2>VoiceOver in Safari 5.1 with HTML5 and ARIA Landmark Roles</h2>
<iframe width="320" height="240" src="http://www.youtube.com/embed/EVs50BwLGuI" frameborder="0" allowfullscreen></iframe>
<p>VoiceOver announces all landmark roles except for form landmarks.</p>
<h2>Window-Eyes 7.5.0 in IE9 with HTML5 and ARIA Landmark Roles</h2>
<iframe width="320" height="240" src="http://www.youtube.com/embed/iI1WLGYzJvk" frameborder="0" allowfullscreen></iframe>
<p>Window-Eyes 7.5.0 has serious problems in Internet Explorer where HTML5 and ARIA landmarks are concerned, but not in Firefox. Fortunately, these issues have been corrected in Window-Eyes version 7.5.1.</p>]]></content:encoded>
			<wfw:commentRss>http://www.accessibleculture.org/articles/2012/01/videos-of-screen-readers-html5-and-aria-landmarks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Slides from OZeWAI 2011</title>
		<link>http://www.accessibleculture.org/articles/2012/01/slides-from-ozewai-2011/</link>
		<comments>http://www.accessibleculture.org/articles/2012/01/slides-from-ozewai-2011/#comments</comments>
		<pubDate>Mon, 02 Jan 2012 11:16:34 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[screen readers]]></category>
		<category><![CDATA[WAI-ARIA]]></category>

		<guid isPermaLink="false">http://www.accessibleculture.org/?p=1465</guid>
		<description><![CDATA[My slides from the OZeWAI 2011 conference:]]></description>
			<content:encoded><![CDATA[<p>My slides from the <a href="http://www.ozewai.org/">OZeWAI 2011 conference</a>:</p>
<a href="/research-files/ozewai2011/basic-html5-aria-screenreaders-presentation.html"><img src="/research-files/ozewai2011/images/Basic-HTML5-ARIA-and-Screen-Readers.jpg" alt="HTML5 and ARIA: Accessibility Benefits and Support &#8212; Basic HTML5, ARIA, and Screen Readers, Jason Kiss, OZeWAI 2011, Nov. 30, 2011" width="320" height="257"></a>]]></content:encoded>
			<wfw:commentRss>http://www.accessibleculture.org/articles/2012/01/slides-from-ozewai-2011/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>JAWS, IE and Headings in HTML5</title>
		<link>http://www.accessibleculture.org/articles/2011/10/jaws-ie-and-headings-in-html5/</link>
		<comments>http://www.accessibleculture.org/articles/2011/10/jaws-ie-and-headings-in-html5/#comments</comments>
		<pubDate>Sun, 09 Oct 2011 02:10:12 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[headings]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[JAWS]]></category>
		<category><![CDATA[screen readers]]></category>

		<guid isPermaLink="false">http://www.accessibleculture.org/?p=1420</guid>
		<description><![CDATA[If you use explicitly ranked h1 to h6 headings nested in HTML5 sectioning elements, as opposed to using exclusively h1 elements, JAWS 12.0.1170, as well as the JAWS 13.0.171 beta, will misrepresent the heading hierarchy. Headings in HTML5 The HTML5 outline algorithm allows us to use the h1 element for every heading on a page, and depending on the nesting&#8230; <a class="continue" href="http://www.accessibleculture.org/articles/2011/10/jaws-ie-and-headings-in-html5/">Continue reading<span class="hidden"> JAWS, IE and Headings in HTML5</span></a>]]></description>
			<content:encoded><![CDATA[<p>If you use explicitly ranked <code>h1</code> to <code>h6</code> headings nested in <a href="http://dev.w3.org/html5/spec/content-models.html#sectioning-content">HTML5 sectioning elements</a>, as opposed to using exclusively <code>h1</code> elements, JAWS 12.0.1170, as well as the JAWS 13.0.171 beta, will misrepresent the heading hierarchy.</p>
<h2>Headings in HTML5</h2>
<p>The <a href="http://dev.w3.org/html5/spec/sections.html#outlines">HTML5 outline algorithm</a> allows us to use the <code>h1</code> element for every heading on a page, and depending on the nesting of the sectioning element in which the <code>h1</code> is found, the heading's rank will be redefined accordingly. While the <a href="http://dev.w3.org/html5/spec/sections.html#sectioning-root">HMTL5 specification encourages us</a> to use only <code>h1</code> elements, we are permitted to <q cite="http://dev.w3.org/html5/spec/sections.html#sectioning-root">use [<code>h1</code> to <code>h6</code>] elements of the appropriate rank for the section's nesting level.</q></p>
<p>The sectioning elements are <code>article</code>, <code>aside</code>, <code>nav</code>, and <code>section</code>. As such, according to the algorithm, the following two structures create identical outlines:</p>
<h3>Using <code>h1</code>s Only</h3>
<pre class="prettyprint box"><code>
&lt;h1&gt;Level 1&lt;/h1&gt;
&lt;nav&gt;
   &lt;h1&gt;Level 2&lt;/h1&gt;
&lt;/nav&gt;
&lt;section&gt;
   &lt;h1&gt;Level 2&lt;/h1&gt;
   &lt;article&gt;
      &lt;h1&gt;Level 3&lt;/h1&gt;
      &lt;aside&gt;
         &lt;h1&gt;Level 4&lt;/h1&gt;
      &lt;/aside&gt;
   &lt;/article&gt;
&lt;/section&gt;</code>
</pre>
<h3>Using Explicitly Ranked Headings</h3>
<pre class="prettyprint box"><code>
&lt;h1&gt;Level 1&lt;/h1&gt;
&lt;nav&gt;
   &lt;h2&gt;Level 2&lt;/h2&gt;
&lt;/nav&gt;
&lt;section&gt;
   &lt;h2&gt;Level 2&lt;/h2&gt;
   &lt;article&gt;
      &lt;h3&gt;Level 3&lt;/h3&gt;
      &lt;aside&gt;
         &lt;h4&gt;Level 4&lt;/h4&gt;
      &lt;/aside&gt;
   &lt;/article&gt;
&lt;/section&gt;</code>
</pre>
<h2>Use Explicitly Ranked Headings For Now</h2>
<p>It's a good thing that we have a choice of which approach to take, as support for the HTML5 outline algorithm in current browsers and assistive technologies is not quite there yet.</p>
<p>Where only <code>h1</code> elements are used, a non-supporting browser or assistive technology will find nothing but <code>h1</code> headings, which does not help a user understand the document's structure or heading hierarchy. For now, it is probably best to continue using explicitly ranked <code>h1</code> to <code>h6</code> elements as appropriate.</p>
<p>However, at least one screen reader in one browser is now supporting the <code>h1</code>-only approach to using headings in HTML5. But as good as this sounds, the particular support it has introduced is problematic.</p>
<h2>JAWS 12 and 13 in Internet Explorer</h2>
<p>If you use an <code>h1</code> for every heading, JAWS 12 and 13 beta will, in Internet Explorer but not Firefox, correctly rank the heading in accordance with its section's nesting level. For example, an <code>h1</code> nested two sectioning elements deep will effectively become a third level heading. JAWS appears to be simply adding the required number of levels to the heading as appropriate.</p>
<p>At the same time, and this is the problematic part, JAWS appears to be doing this even if you've taken the alternative approach and have used explicitly ranked <code>h1</code> to <code>h6</code> elements. That is, if you've correctly used an <code>h3</code> element nested two sectioning levels deep, it becomes an <code>h5</code> as far as JAWS in IE is concerned. Obviously, this can significantly alter the page's document outline or heading hierarchy as represented to the user.</p>
<p>If we take the second HTML5 structure we saw above, where the heading levels are explicitly set using appropriately ranked heading elements, JAWS in IE effectively interprets it as follows:
<pre class="prettyprint box"><code>
&lt;h1&gt;Level 1&lt;/h1&gt;
&lt;nav&gt;
   &lt;h2&gt;Level 3&lt;/h2&gt;
&lt;/nav&gt;
&lt;section&gt;
   &lt;h2&gt;Level 3&lt;/h2&gt;
   &lt;article&gt;
      &lt;h3&gt;Level 5&lt;/h3&gt;
      &lt;aside&gt;
         &lt;h4&gt;Level 7&lt;/h4&gt;
      &lt;/aside&gt;
   &lt;/article&gt;
&lt;/section&gt;</code>
</pre>
<p>Not only does the heading hierarchy now jump from a level one, to a level three, to a level five heading, the <code>h4</code> heading in the <code>aside</code> element, nested three sectioning elements deep, becomes a 7th level heading. Since there is no such thing as an <code>h7</code> element, JAWS does not even identify it as a heading. When moving from heading to heading through the page, as JAWS permits using the <kbd>h</kbd> key, this heading is simply skipped over. Nor does the heading appear in JAWS' headings list dialog.</p>
<ins id="testPages" datetime="2011-10-09">
<p><em>Update: If you want to check for yourself, here are the actual test pages I used:</em></p>
<ul>
<li><a href="/research-files/jaws-ie-headings-html5/h1Only.php">H1 Headings Only</a></li>
<li><a href="/research-files/jaws-ie-headings-html5/explicitlyRanked.php">Explicitly Ranked Headings</a></li>
</ul>
</ins>
<h3>All Versions of IE Affected</h3>
<p>Interestingly, this behaviour occurs in all versions of IE, from IE6 and above. With IE6 to IE8, which have no native support for HTML5, this behaviour depends on those versions of IE being forced to recognise the HTML5 elements through a now common JavaScript hack, e.g., the <a href="http://en.wikipedia.org/wiki/HTML5_Shiv">HTML5 Shiv</a>. Without it, JAWS presents each heading at a level defined by the heading element used. So every <code>h1</code> remains a level one heading, every <code>h2</code> a level two heading, and so on, regardless of the relevant sectioning element's nesting level. Of course, without the JavaScript shim, there's no styling of HTML5 elements in IE8 and below, so this scenario is rather moot, unless the page's developer has decided to not bother supporting those browsers.</p> 
<ins id="jawsInFirefox" datetime="2011-10-17">
<h2><em>Update (Oct. 17, 2011): </em>JAWS 13 in Firefox</h2>
<p>The latest release of the JAWS 13 beta, 13.0.241, behaves the same in Internet Explorer, but now also incorrectly represents explicitly ranked headings in Firefox. In fact, it's even worse.</p>
<p>In Firefox, the <code>h4</code> nested three sectioning levels deep in the <code>aside</code> from our example is identified as a second level heading. If you use an <code>h1</code>, it is properly considered a fourth level heading, since one plus three equals four. If you use an <code>h2</code>, you get a fifth level heading, and an <code>h3</code> gets you a sixth level heading. The <code>h4</code> to <code>h6</code> elements, however, all become second level headings.</p>
<p>This behaviour is wrong. According to the HTML5 spec, no matter what explicitly ranked heading element is used, a user agent that supports the HTML5 outline algorithm should assign an appropriate level for the heading based on the nesting of sectioning elements in which the heading is found.</p>  
</ins>
<h2>A Bug and a Dilemma</h2>
<p>I'm happy calling this behaviour a bug. While it's great that JAWS now supports the <code>h1</code>-only approach to headings in HTML5, it's hardly reasonable to start misrepresenting properly ranked <code>h1</code> to <code>h6</code> elements. Using explicitly ranked heading elements is clearly permitted by the HTML5 specification, and remains the only way to provide most current user agents a representative and meaningful document outline.</p>
<p>The dilemma is that using only <code>h1</code> headings to provide a meaningful document outline for users of what is possibly the most popular screen reader and browser combination today means providing users of all other current screen reader and browser combinations effectively no meaningful heading hierarchy. Or, conversely, where headings in HTML5 are concerned, supporting most screen readers and browsers means not supporting JAWS 12 and 13 in Internet Explorer.</p>
<p>These are the sorts of decisions we don't want and shouldn't have to make when building accessible web pages, but they are a reality that we unfortunately get used to. On the other hand, screen reader and browser development is moving very quickly these days, so this particular problem may not exist for long.</p>
<p>You'll have to make up your own mind on how you deal with this issue. For me, until there's broad support for the <code>h1</code>-only approach across most screen readers and browsers in use, I'll take the more backwards-compatible route and use appropriately ranked <code>h1</code> to <code>h6</code> elements in my HTML5 pages.</p> ]]></content:encoded>
			<wfw:commentRss>http://www.accessibleculture.org/articles/2011/10/jaws-ie-and-headings-in-html5/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Small Change to Site Architecture</title>
		<link>http://www.accessibleculture.org/articles/2011/10/small-change-to-site-architecture/</link>
		<comments>http://www.accessibleculture.org/articles/2011/10/small-change-to-site-architecture/#comments</comments>
		<pubDate>Thu, 06 Oct 2011 06:33:42 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.accessibleculture.org/?p=1414</guid>
		<description><![CDATA[When I first rolled out this site, I figured I would write protracted research articles on accessibility, as well as shorter blog posts of an ad hoc nature, hence the previous and separate "Research" and "Blog" sections of the site. Turns out I'm hardly that prolific, and the distinction between research articles and blog posts soon became rather arbitrary. So&#8230; <a class="continue" href="http://www.accessibleculture.org/articles/2011/10/small-change-to-site-architecture/">Continue reading<span class="hidden"> Small Change to Site Architecture</span></a>]]></description>
			<content:encoded><![CDATA[<p>When I first rolled out this site, I figured I would write protracted research articles on accessibility, as well as shorter blog posts of an ad hoc nature, hence the previous and separate "Research" and "Blog" sections of the site. Turns out I'm hardly that prolific, and the distinction between research articles and blog posts soon became rather arbitrary.</p>
<p>So now everything is an article, and found under the <a href="/articles/">"Articles" section of the site</a>.</p>
<p>Old links to bits that were once either in the "Research" or "Blog" sections of the site should be properly redirected to the appropriate article, but if not, they should still be easy enough to find using the site's search functionality or the tag links in the sidebar.</p>
<p>If not, <a href="/contact/">let me know</a>, and I'll happily try to rectify the situation.</p> ]]></content:encoded>
			<wfw:commentRss>http://www.accessibleculture.org/articles/2011/10/small-change-to-site-architecture/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Responsive Data Tables and Screen Reader Accessibility</title>
		<link>http://www.accessibleculture.org/articles/2011/08/responsive-data-tables-and-screen-reader-accessibility/</link>
		<comments>http://www.accessibleculture.org/articles/2011/08/responsive-data-tables-and-screen-reader-accessibility/#comments</comments>
		<pubDate>Wed, 17 Aug 2011 07:12:57 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[JAWS]]></category>
		<category><![CDATA[NVDA]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[screen readers]]></category>
		<category><![CDATA[tables]]></category>

		<guid isPermaLink="false">http://www.accessibleculture.org/?p=1206</guid>
		<description><![CDATA[When Chris Coyier presented his approach to responsive data tables, I wondered about the implications for accessibility, particularly for screen readers. This was especially so since the approach involves replicating each of the table's column headers as CSS-generated content for the relevant table cell, and presenting each data cell, together with this generated header text, as a block-level element. In&#8230; <a class="continue" href="http://www.accessibleculture.org/articles/2011/08/responsive-data-tables-and-screen-reader-accessibility/">Continue reading<span class="hidden"> Responsive Data Tables and Screen Reader Accessibility</span></a>]]></description>
			<content:encoded><![CDATA[<p>When Chris Coyier presented his approach to <a href="http://css-tricks.com/9096-responsive-data-tables/">responsive data tables</a>, I wondered about the implications for accessibility, particularly for screen readers. This was especially so since the approach involves replicating each of the table's column headers as CSS-generated content for the relevant table cell, and presenting each data cell, together with this generated header text, as a block-level element. In this way, the table's data is presented in a single column, as it were, with each data cell appearing on a new line alongside its associated, CSS-generated header text.</p>
<p>I wondered, assuming that the CSS-generated column headers were read by screen readers, if the screen readers would repeat the header text when navigating the table using their table navigation commands, once for the actual column header in the HTML, and once for the CSS-generated header text.</p>
<h2>NVDA and VoiceOver</h2>
<p>It turns out that NVDA with Firefox and VoiceOver with Safari both read the CSS-generated content. More importantly, in both cases the responsive data tables are not registered as tables at all. In the end, interacting with and reading responsive tables like this seems fairly straightforward with these screen reader and browser combinations.</p>
<p>From what I can tell, because the responsive version of the <code>table</code>, as well as its <code>thead</code>, <code>tbody</code>, <code>th</code>, <code>td</code>, and <code>tr</code> elements, are all set to <code>display:block;</code>, the table isn't recognised as an actual table. In fact, this seems to be the case even if just the <code>table</code> element itself is set to <code>display:block;</code>.</p>
<p>I don't fully understand the ins and outs of accessibility APIs, so what follows is my best effort. In Firefox, the <a href="http://css-tricks.com/examples/ResponsiveTables/">regular data table</a> that is not set to <code>display:block;</code> is identified to the IAccessible2 API with a role of "table", while the <a href="http://css-tricks.com/examples/ResponsiveTables/responsive.php">responsive version of the table</a> with <code>display:block;</code> seems to end up with a role of "paragraph".</p>
<p>In Safari, things are a little stranger. Even the non-responsive regular table doesn't get registered as a table by VoiceOver for some reason. That is, VoiceOver doesn't recognise that there is a table present, and the <kbd>Control</kbd>+<kbd>Option</kbd>+<kbd>Command</kbd>+<kbd>T</kbd> keystroke for moving to the next table on a page does nothing.</p>
<p>Checking Apple's Accessibility Inspector, the regular table's cells are identified to the Mac Accessibility API as having an "AXRole" of "AXGroup", presumably some more generic and non-tabular type of role. However, after adding a <code>caption</code> to the <code>table</code>, all of a sudden VoiceOver is able to find it. In this case, Safari identifies each table cell to the Mac Accessibility API as having an "AXRole" of "AXCell", which makes sense, and the table itself has an "AXRole" of "AXTable", whereas previously I was unable to determine what "AXRole" the table had, if any.</p>
<p>With the responsive data table set to <code>display:block;</code>, even after adding a <code>caption</code>, the table is not identified as such. So in Safari, the use of <code>display:block;</code> on a table seems to have the same effect as it does in Firefox.</p>
<p>I figure this is why, with those screen readers in those browsers, the responsive tables tend to work so nicely. The screen readers don't consider them tables and don't enable their table navigation commands. They simply read each (generated) header as text and then read its associated value, without identifying any tabular structure. There is no repetition of both the HTML and CSS-generated column headers when moving from cell to cell. For all intents and purposes, there are no data tables or cells to navigate.</p>
<p>So I'm impressed with the responsive table's behaviour in these screen reader and browser combinations. As far as I can tell, however, this has as much to do with how the browser is identifying the table with <code>display:block;</code> to the relevant accessibility API, as it does with the use of the media queries and CSS-generated content.</p>
<h2>What About JAWS?</h2>
<p>Note: Because of a problematic rendering issue in Internet Explorer 9 with tables set to <code>display:block;</code>, Chris' example does not work with IE.</p>
<p>JAWS 12 in Firefox doesn't behave the same. It appears to treat the responsive data table as a data table, and enables its typical table navigation commands. At the same time, JAWS doesn't seem to be reading the CSS-generated column header text. As a result, using JAWS' regular table navigation commands, the table's content is navigable as if it were a normal data table. This is probably fine for a blind user, who won't realise the disjunction between what is presented on screen and what JAWS is telling her. But for a sighted user working with JAWS, I imagine there could some confusion since the table's content is not visually laid out as a table, and the CSS-generated column headers that are visibly repeated for every cell will not be read out loud.</p>
<p>Obviously, in the case of an iPhone or iPad, or similar, for which the CSS media queries are largely intended, the behaviour of JAWS for Windows is not an issue. Still, for the admittedly very few users that might be using JAWS with Firefox set to a narrow enough viewport to engage the CSS media query that changes the table's layout, what's going on may not be very clear.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.accessibleculture.org/articles/2011/08/responsive-data-tables-and-screen-reader-accessibility/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>JAWS, Window-Eyes and display:none: Return to 2007</title>
		<link>http://www.accessibleculture.org/articles/2011/08/jaws-window-eyes-and-display-none/</link>
		<comments>http://www.accessibleculture.org/articles/2011/08/jaws-window-eyes-and-display-none/#comments</comments>
		<pubDate>Wed, 10 Aug 2011 09:32:24 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[JAWS]]></category>
		<category><![CDATA[screen readers]]></category>
		<category><![CDATA[Window-Eyes]]></category>

		<guid isPermaLink="false">http://www.accessibleculture.org/?p=1199</guid>
		<description><![CDATA[I was recently asked if JAWS and Window-Eyes still displayed the bugs described by Gez Lemon in 2007 whereby content hidden using display:none was read by the screen readers under certain conditions. The JAWS Bug Back then, the situation with JAWS 7.1 was that it announces content in a span element hidden with display: none if it is in an&#8230; <a class="continue" href="http://www.accessibleculture.org/articles/2011/08/jaws-window-eyes-and-display-none/">Continue reading<span class="hidden"> JAWS, Window-Eyes and <code>display:none</code>: Return to 2007</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://twitter.com/#!/necolas/status/101085930680631296">I was recently asked</a> if JAWS and Window-Eyes still displayed the <a href="http://juicystudio.com/article/screen-readers-display-none.php">bugs described by Gez Lemon in 2007</a> whereby content hidden using <code>display:none</code> was read by the screen readers under certain conditions.</p>
<h2>The JAWS Bug</h2>
<p>Back then, <a href="http://juicystudio.com/article/screen-readers-display-none.php#jawsdisplaynone">the situation with JAWS 7.1</a> was that it <q cite="http://juicystudio.com/article/screen-readers-display-none.php#jawsdisplaynone">announces content in a <code>span</code> element hidden with <code>display: none</code> if it is in an anchor element. This only works with a <code>span</code> element; other inline elements used in an anchor element, such as <code>em</code>, <code>strong</code>, <code>abbr</code>, <code>code</code>, and so on, are not announced in JAWS.</q> Additionally, this only happened with JAWS in Internet Explorer.</p>
<p>Having just tested this, I can confirm that this bug no longer affects JAWS 12 in Internet Explorer 9. After all, it has been about four years since that bug was discovered. In which specific version of JAWS this was fixed I can't say, having only tested the latest version.</p>
<h2>The Window-Eyes Bug</h2>
<p>While Window-Eyes 5.5 worked as expected with such hidden content, as soon as you added a CSS background image to the anchor itself or any other ancestor, up to but excluding the <code>body</code> element, Window-Eyes would announce the hidden content. Even if the link itself was hidden using <code>display:none</code>, if an ancestor element had a background image applied, Window-Eyes would read the link.</p>
<p>Using <a href="/research-files/we-display-none/">this test page</a>, it is clear that Window-Eyes 7.5 in Internet Explorer 9, but not in Firefox 5, still exhibits the same bug. That is, content hidden using <code>display:none</code> is read by Window-Eyes in IE9 if the element itself or an ancestor has a CSS background image.</p>
<p>As was <a href="http://juicystudio.com/article/screen-readers-display-none.php#wedisplaynone">noted by Jared Smith all those years ago</a>, doubling up <code>display:none</code> with <code>visibility:hidden</code> solves this problem with Window-Eyes. So if you are applying CSS background images and want to keep hidden children hidden from Window-Eyes in IE, this is what you'll need to do.</p>
<h2>Browser Complicity?</h2>
<p>Working with <a href="http://www.paciellogroup.com/blog/2011/06/aviewer-beta-updated/">AViewer</a>, the very useful tool from <a href="http://www.paciellogroup.com/">the Paciello Group</a>, it seems that the accessible name that Internet Explorer 9 passes to the <abbr title="Microsoft Active Accessibility">MSAA</abbr> accessibility API for each of the anchors in the <a href="/research-files/we-display-none/">test page</a> includes both the visible link text and the nested <code>span</code> hidden using <code>display:none</code>. On the other hand, Firefox 5 passes only the visible link text to both the MSAA and IAccessible2 APIs, leaving out the hidden <code>span</code> content.</p>
<p>This leads me, without completely understanding it all, to wonder if this might have something to do with Window-Eyes' behaviour where both the visible and hidden link text is read in certain conditions in IE9, but not in Firefox. If you can shed any light on this, please do.</p>]]></content:encoded>
			<wfw:commentRss>http://www.accessibleculture.org/articles/2011/08/jaws-window-eyes-and-display-none/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Take the Time with Quick Reviews to Go Into Detail</title>
		<link>http://www.accessibleculture.org/articles/2011/05/take-the-time-with-quick-reviews-to-go-into-detail/</link>
		<comments>http://www.accessibleculture.org/articles/2011/05/take-the-time-with-quick-reviews-to-go-into-detail/#comments</comments>
		<pubDate>Tue, 10 May 2011 10:35:06 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[best practices]]></category>

		<guid isPermaLink="false">http://www.accessibleculture.org/?p=1190</guid>
		<description><![CDATA[Are you, at least in a professional capacity, occasionally asked to provide rather ad hoc comments on this or that web page markup? I am. Regularly, though, I make the mistake of assuming that the developers who will be receiving my comments are aware of web standards and accessibility concerns that I typically consider part of good development. This is&#8230; <a class="continue" href="http://www.accessibleculture.org/articles/2011/05/take-the-time-with-quick-reviews-to-go-into-detail/">Continue reading<span class="hidden"> Take the Time with Quick Reviews to Go Into Detail</span></a>]]></description>
			<content:encoded><![CDATA[<p>Are you, at least in a professional capacity, occasionally asked to provide rather <i>ad hoc</i> comments on this or that web page markup? I am. Regularly, though, I make the mistake of assuming that the developers who will be receiving my comments are aware of web standards and accessibility concerns that I typically consider part of good development.</p>
<p>This is a mistake because there is an entire range of differently skilled and concerned developers out there. Some are full-time developers who should really know better, but don't. Others simply find themselves having to markup web content, in which case I don't think we can really expect them to be fully aware of and up-to-date with best practices.</p>
<p>In either case, I'm finding that it's worth it to take the few extra minutes to follow through in my comments with detailed explanations of every step involved and the reasons behind my suggestions. When I forego this step, and assume that the developer will, on their own, get the picture and follow through in implementing best practices to their proper end, I too regularly find myself getting frustrated and later having to provide a second set of comments that more clearly provide the detailed instructions and explanations that I reasonably could and should have offered the first time around.</p>
<p>Granted, this situation may just be up to laziness on my part, or it may be that old saying about what happens when you assume coming to fruition, but from now on, when asked for these one-off and informal types of reviews, I'm going to try to offer detailed explanations of the steps to take from beginning to end, and not just assume that identifying the problem and providing general instructions will do. For instance, when I suggest that headings on a page are not properly nested, I'll take the extra minute or two to identify what heading should be at what level, and why this matters.</p>
<p>Not only does this capitalise on a potential learning moment for the developer, and, I think, show some additional professionalism and concern for doing a good job, but it will, often enough I expect, save me from doing more work later.</p>]]></content:encoded>
			<wfw:commentRss>http://www.accessibleculture.org/articles/2011/05/take-the-time-with-quick-reviews-to-go-into-detail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML5, ARIA Roles, and Screen Readers in March 2011</title>
		<link>http://www.accessibleculture.org/articles/2011/04/html5-aria-2011/</link>
		<comments>http://www.accessibleculture.org/articles/2011/04/html5-aria-2011/#comments</comments>
		<pubDate>Fri, 01 Apr 2011 08:10:03 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[JAWS]]></category>
		<category><![CDATA[NVDA]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[SAToGo]]></category>
		<category><![CDATA[screen readers]]></category>
		<category><![CDATA[VoiceOver]]></category>
		<category><![CDATA[WAI-ARIA]]></category>
		<category><![CDATA[Window-Eyes]]></category>

		<guid isPermaLink="false">http://www.accessibleculture.org/?page_id=1169</guid>
		<description><![CDATA[Last year, in HTML5, ARIA Roles, and Screen Readers in March 2010, I took a look at how then current screen readers behaved with some of the HTML5 section elements and related WAI-ARIA document and landmark roles. Now that the major screen readers have all seen some significant updates, and both Firefox 4 and Internet Explorer 9 have officially been&#8230; <a class="continue" href="http://www.accessibleculture.org/articles/2011/04/html5-aria-2011/">Continue reading<span class="hidden"> HTML5, ARIA Roles, and Screen Readers in March 2011</span></a>]]></description>
			<content:encoded><![CDATA[<p>Last year, in <a href="/articles/2010/05/html5-aria/">HTML5, ARIA Roles, and Screen Readers in March 2010</a>, I took a look at how then current screen readers behaved with some of the  <a href="http://www.w3.org/TR/html5/sections.html">HTML5 section elements</a> and related <a href="http://www.w3.org/TR/wai-aria/roles#document_structure_roles">WAI-ARIA document and landmark roles</a>. Now that the major screen readers have all seen some significant updates, and both Firefox 4 and Internet Explorer 9 have officially been released, I figure it's time to perform the review again and see what, if anything, has changed.</p>
<p><ins datetime="2011-08-21"><em>Update (August 21, 2011): </em> See <a href="http://www.html5accessibility.com/tests/landmarks.html">Steve Faulkner's recent update on screen readers and ARIA landmarks</a>.</ins></p>
<h2>The Screen Readers</h2>
<p>This time around, the tests were performed using the following screen readers:</p>
<ul>
<li><a href="http://www.freedomscientific.com/products/fs/jaws-product-page.asp">JAWS 12</a></li>
<li><a href="http://www.nvda-project.org/">NVDA 2011.1</a></li>
<li><a href="http://www.gwmicro.com/Window-Eyes/">Window-Eyes 7.5</a></li>
<li><a href="http://www.satogo.com/en/">SAToGo 3.2.197</a></li>
<li><a href="http://www.apple.com/accessibility/voiceover/">VoiceOver 3</a></li>
</ul>
<p>Each of the Windows-based screen readers were tested in both <abbr title="Firefox 4">FF4</abbr> and <abbr title="Internet Explorer 9">IE9</abbr>, with the exception of SAToGo, which only works with Internet Explorer.</p>
<p>The latest version of VoiceOver in Mac OS X 10.6.7 was tested in Safari 5.0.4.</p>  
<h2>The Test Cases</h2>
<nav role="navigation">
<ul>
<li><a href="/research-files/html5-aria-2011/html5.php">HTML5 Only</a></li>
<li><a href="/research-files/html5-aria-2011/html5Aria.php">HTML5 Plus ARIA Roles</a></li>
</ul>
</nav>
<p>As was the case with the <a href="/articles/2010/05/html5-aria/">previous research</a>, there are two test cases. The first features a simple page using just HTML5 sectioning and a few other semantic elements. The second effectively reproduces the same page, but applies ARIA landmark roles, and two document structure roles.</p>
<p>In particular, the HTML5 elements employed in the test cases are:</p>
<ul>
<li><code>header</code></li>
<li><code>nav</code></li>
<li><code>section</code></li>
<li><code>article</code></li>
<li><code>aside</code></li>
<li><code>footer</code></li>
</ul>
<p>The ARIA roles used in the second test case are:</p>
<ul>
<li><code>application</code></li>
<li><code>article</code></li>
<li><code>banner</code></li>
<li><code>complementary</code></li>
<li><code>contentinfo</code></li>
<li><code>main</code></li>
<li><code>navigation</code></li>
<li><code>region</code></li>
</ul>
<p>I included the one landmark role that I left out last time, namely, <code>application</code>. Additionally, because the <a href="http://www.w3.org/TR/html5/content-models.html#annotations-for-assistive-technology-products-aria">HTML5 Annotations for assistive technology products</a> specifies <code>region</code> as the default implied ARIA role for the <code>section</code> element, I've explicitly assigned this document structure role to one of the <code>section</code>s in the second test case. It's doubtful that this role will see much usage, but for the sake of testing what happens when it is used, I've gone ahead and added it. Also note that, as suggested in the <a href="http://www.w3.org/TR/wai-aria/roles#region">specification for <code>region</code></a>, I've added an <code>aria-labelledby</code> attribute that references the <code>region</code>'s associated heading.</p>
<p>Finally, I've trimmed much of the extraneous text and needless duplication of certain elements that was present in the previous versions of these test cases.</p>
<h2>Result Summaries</h2>
<p>The following presents some comments on FF4's new behaviour, along with summarised reviews of the major findings for each screen reader. <a href="#detailedResults">Detailed results</a> for each test case are available further below.</p>
<h3>Firefox 4's New Behaviour</h3>
<p>Things with FF4 are somewhat interesting, as it now exposes, via the <a href="http://www.linuxfoundation.org/collaborate/workgroups/accessibility/iaccessible2">IAccessible2</a> accessibility API, all <code>nav</code>, <code>header</code>, and <code>footer</code> elements as <code>navigation</code>, <code>banner</code>, and <code>contentinfo</code> landmarks, respectively. While this behaviour is fine for <code>nav</code> elements, it is not quite correct for <code>header</code> and <code>footer</code>.</p>
<p>The ARIA specification clearly notes that each document should only have one <code>banner</code> and one <code>contentinfo</code> landmark. By exposing every <code>header</code> and <code>footer</code> in this way, pages with more than one of either of these, which is not uncommon, will effectively have multiple <code>banner</code> and/or <code>contentinfo</code> landmarks as far as supporting assistive technology is concerned. Such is the case with NVDA 2011.1.</p>
<p>Fortunately, Mozilla is well-aware of this situation, for which there is a <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=610650">bug report</a>, and it's probably reasonable to expect that this will be addressed soon enough in an upcoming release. Ideally, only the <code>header</code> and <code>footer</code> elements found at the document's root sectioning element will be exposed as <code>banner</code> and <code>contentinfo</code> landmarks. In any case, Mozilla deserves praise for starting to implement this kind of accessibility support for basic HTML5 elements with default implied ARIA semantics.</p>
<h3>How the Screen Readers Do</h3>
<h4>NVDA 2011.1</h4>
<p>NVDA is again the clear winner this time around. While its behaviour in FF4 with the <code>header</code> and <code>footer</code> elements, namely identifying each and every one as <code>banner</code> and <code>contentinfo</code> landmarks, is less than ideal, it's important to note that this is a Firefox issue, and not an NVDA issue. Otherwise, NVDA happily reads all content from both test cases in FF4.</p>
<p>NVDA in IE9 is not bad, but things are hardly great. With the <a href="/research-files/html5-aria-2011/html5Aria.php">HTML5 Plus ARIA Roles</a> test case, NVDA in IE9 says the word "edit" before reading each line of text, e.g., <q>Edit, Heading Level Two, Articles Section; Edit, Link, Skip to Link in Article A; Edit, Heading Level 3, Article A&hellip;</q>.</p>
<p>NVDA also provides navigation by landmark (via the <kbd>D</kbd> key), moving focus to and announcing the implied <code>navigation</code>, <code>banner</code>, and <code>contentinfo</code> landmarks in the <a href="/research-files/html5-aria-2011/html5.php">HTML5 Only</a> test case, as well as all explicitly identified landmarks in the second <a href="/research-files/html5-aria-2011/html5Aria.php">HTML5 Plus ARIA Roles</a> test case.</p>
<p><ins datetime="2011-08-21"><em>Update (August 21, 2011): Note that NVDA 2011.1 in FF4 (and NVDA 2011.2 in FF6 for that matter) does not provide landmark navigation to or announce <code>application</code> landmarks.</em></ins></p>
<h4>JAWS 12</h4>
<p>JAWS behaves identically in both FF4 and IE9. It doesn't do anything special with the simple HTML5 elements from the first test case, but does, in the second test case, announce all explicitly identified landmark roles: <code>application</code>, <code>banner</code>, <code>complementary</code>, <code>contentinfo</code>, <code>main</code>, and <code>navigation</code>. Further, JAWS also announces the ARIA document structure roles, <code>article</code> and <code>region</code>, as landmarks.</p>
<p>Like NVDA, in the second test case, JAWS offers landmark navigation (via the <kbd>;</kbd> key) to all explicitly identified ARIA landmark roles, as well as to the two document structure roles, <code>article</code> and <code>region</code>, which JAWS equally considers landmarks.</p>
<p>Crucially, JAWS 12 fixes the <a href="/blog/2010/09/header-elements-removed/">Firefox and <code>header</code> bug</a> from which JAWS 10 and 11 suffer, whereby all content contained in that element was effectively invisible to JAWS when used with Firefox.</p>
<h4>Window-Eyes 7.5</h4>
<p>With its latest version, Window-Eyes is still struggling with HTML5. In FF4, the results were fine with both test cases, in that all content was accessible and read as expected, even if Window-Eyes doesn't announce either the HTML5 elements or ARIA roles.</p>
<p>Where Window-Eyes in IE9 is concerned, however, the results are very disconcerting. So disconcerting, in fact, that I would very much appreciate their confirmation by other users. Briefly, Window-Eyes appears to suffer some serious difficulties with both test cases. With the <a href="/research-files/html5-aria-2011/html5.php">HTML5 Only test case</a>, it completely misrepresents the lists on the page, of which there are only two, while Window-Eyes finds five. It also finds only one heading, which isn't actually a heading, while the page actually contains six headings.</p>
<p>With the <a href="/research-files/html5-aria-2011/html5Aria.php">second test case with ARIA roles</a>, Window-Eyes correctly identifies the two lists, but doesn't quite properly recognise those lists' content. It finds two headings on the page in this test case, but again, neither of the headings it identifies are actual headings on the page. Finally, it finds three non-existent frames, to only two of which it provides navigational access.</p>
<p>Window-Eyes does not provide keyboard shortcuts for navigation by landmark.</p>
<p>Needless to say, Window-Eyes 7.5 in IE9 is an iffy combination where HTML5 or HTML5 combined with ARIA roles are concerned. What exactly is going on requires further research, but <a href="/articles/2010/05/html5-aria/">Window-Eyes' problem with lists</a>, particularly when ARIA roles are applied, has been noted before.</p>
<h4>SAToGo 3.2.197</h4>
<p>Since SAToGo clearly announces that it <q>can only provide complete spoken prompts if you use Internet Explorer</q>, I tested it in IE9 only. With the first test case, it read and provided easy access to all content. However, with the <a href="/research-files/html5-aria-2011/html5Aria.php">HTML5 Plus ARIA Roles page</a>, when reading through the whole page using the "say all" command or the arrow keys, the two <code>article</code> elements are not read, but each is announced as <q>editable text, blank</q>. Yet, if using the <kbd>Tab</kbd> key to move through the focussable items on the page, SAToGo stops at each <code>article</code>, reads its contents as if it were all just simple text, and then finishes by saying <q>editable text, blank</q>.</p>
<p>SAToGo offers landmark navigation (via the <kbd>;</kbd> key) for the <code>banner</code>, <code>navigation</code>, <code>main</code>, <code>application</code>, and <code>contentinfo</code> landmarks, but not the <code>complementary</code> landmark. And it does not announce the type of landmark when so navigating.</p>
<h4>VoiceOver 3</h4>
<p>With the first test case, VoiceOver reads and provides access to all content, but does not announce or do anything special with the HTML5 elements.</p>
<p>Its behaviour with the second test case is the same, except that, when reading through the page using the "Read All" command (<kbd>Ctrl</kbd>+<kbd>Option</kbd>+<kbd>A</kbd>), the <code>aria-labelledby</code> attribute on the <code>section</code> with <code>role="region"</code> seems to cause VoiceOver to repeatedly announce the value of the referenced label, in this case, "Articles Section", after practically each node within that <code>section</code>. Removing the <code>aria-labelledby</code> attribute prevents this.</p>
<p>While <a href="http://www.marcozehe.de/2010/06/22/apples-ios-4-supports-wai-aria-landmarks/">VoiceOver in iOS 4 provides landmark navigation</a>, this functionality does not appear to be available in the Mac OS X version of VoiceOver.</p>
<h2 id="detailedResults">Detailed Results</h2>
<p>Unless noted otherwise, the screen reader reads and provides access to all content on the page in each test case.</p>
<h3><a href="/research-files/html5-aria-2011/html5.php">HTML5 Only Test Case</a></h3>
<table>
<caption class="hidden">Detailed Results for the HTML5 Only Test Case</caption>
<thead>
<tr>
<th scope="col">Screen Reader</th>
<th scope="col" abbr="Firefox 4">FF4</th>
<th scope="col" abbr="Internet Explorer 9">IE9</th>
<th scope="col">Safari 5.0.4</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">NVDA</th>
<td>
<ul>
<li>announces <code>nav</code> elements as <q>navigation landmark</q></li>
<li>announces every <code>header</code> element as <q>banner landmark</q></li>
<li>announces every <code>footer</code> element as <q>contentinfo landmark</q></li>
<li>does not announce <code>section</code>, <code>article</code>, or <code>aside</code> elements</li>
<li>navigation by landmark to implied <code>nav</code>, <code>header</code>, and <code>footer</code> landmarks</li>
</ul>
</td>
<td><ul><li>does nothing special with the HTML5 elements</li></ul></td>
<td>N/A</td>
</tr>
<tr>
<th scope="row">JAWS</th>
<td><ul><li>does nothing special with the HTML5 elements</li></ul></td>
<td><ul><li>does nothing special with the HTML5 elements</li></ul></td>
<td>N/A</td>
</tr>
<tr>
<th scope="row">Window-Eyes</th>
<td><ul><li>does nothing special with the HTML5 elements</li></ul></td>
<td>
<ul>
<li>There are only two lists on the page, but <abbr title="Window-Eyes">WE</abbr> identifies five lists:
<ul>
<li>the first list item under the "Test Cases" heading is not identified as part of a list, while the second list item is (List 1 with 1 item)
<li>the list under the "HTML5 Only" heading is identified as a list of two items (List 2 with 2 items)
<li>just before the "Article A" heading, <abbr title="Window-Eyes">WE</abbr> identifies an empty list (List 3 with 0 items)
<li>just before the <code>aside</code> in "Article A", <abbr title="Window-Eyes">WE</abbr> identifies an empty list (List 4 with 0 items)
<li>just before the last <code>footer</code> on the page, WE identifies an empty list (List 5 with 0 items)
</ul>
</li>
<li>recognises one heading on the page, an empty first-level heading somewhere between the link and <code>footer</code> in "Article B"</li>
</ul>
</td>
<td>N/A</td>
</tr>
<tr>
<th scope="row">SAToGo</th>
<td>N/A</td>
<td><ul><li>does nothing special with the HTML5 elements</li></ul></td>
<td>N/A</td>
</tr>
<tr>
<th scope="row">VoiceOver</th>
<td>N/A</td>
<td>N/A</td>
<td><ul><li>does nothing special with the HTML5 elements</li></ul></td>
</tr>
</tbody>
</table>
<h3><a href="/research-files/html5-aria-2011/html5Aria.php">HTML5 Plus ARIA Roles Test Case</a></h3>
<table>
<caption class="hidden">Detailed Results for the HTML5 Plus ARIA Roles Test Case</caption>
<thead>
<tr>
<th scope="col">Screen Reader</th>
<th scope="col" abbr="Firefox 4">FF4</th>
<th scope="col" abbr="Internet Explorer 9">IE9</th>
<th scope="col">Safari 5.0.4</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">NVDA</th>
<td>
<ul>
<li>same behaviour as HTML5 Only</li>
<li>additionally announces all explicitly identified landmark roles: <del datetime="2011-08-21"><code>application</code>, </del><code>banner</code>, <code>complementary</code>, <code>contentinfo</code>, <code>main</code>, and <code>navigation</code></li>
<li><ins datetime="2011-08-31">does not announce <code>application</code> landmark</ins></li>
<li>does not announce document structure roles: <code>article</code>, <code>region</code></li>
<li>navigation by landmark to the implied <code>nav</code>, <code>header</code>, and <code>footer</code> landmarks, as well as all explicitly identified landmarks</li>
</ul>
</td>
<td>
<ul>
<li>same behaviour as HTML5 Only</li>
<li>additionally says "edit" before reading each line of text, e.g., <q>Edit, Heading Level Two, Articles Section; Edit, Link, Skip to Link in Article A; Edit, Edit, Heading Level 3, Article A&hellip;</q></li>
</ul>
</td>
<td>N/A</td>
</tr>
<tr>
<th scope="row">JAWS</th>
<td><ul><li>same as in IE9</li></ul></td>
<td>
<ul>
<li>announces all explicitly identified landmark roles: <code>application</code>, <code>banner</code>, <code>complementary</code>, <code>contentinfo</code>, <code>main</code>, and <code>navigation</code></li>
<li>also announces the document structure roles, <code>article</code> and <code>region</code>, as landmarks</li>
<li>navigation by landmark to all landmark roles as well as the two document structure roles which JAWS considers landmarks</li>
</ul>
</td>
<td>N/A</td>
</tr>
<tr>
<th scope="row">Window-Eyes</th>
<td><ul><li>same as in HTML5 Only</li></ul></td>
<td>
<ul>
<li><abbr title="Window-Eyes">WE</abbr> properly identifies only two lists, but:
<ul>
<li><abbr title="Window-Eyes">WE</abbr> considers the first list under "Test Cases" to contain only one item, the one with the link</li>
<li>the second list is correctly recognised as a two item list</li>
</ul>
</li>
<li><abbr title="Window-Eyes">WE</abbr> incorrectly recognises two headings on this page: the non-heading text "Vivamus placerat" in "Article A" is considered an <code>h3</code>, as is the text "Aliquam vehicula justo ut metus" in "Article B"</li>
<li>additionally, while <abbr title="Window-Eyes">WE</abbr> announces that the page has three frames, it only provides navigational access to two, one being the "Articles Section" <code>section</code> element, and one it calls the <q>Application Section Button that does nothing frame</q></li>
</ul>
</td>
<td>N/A</td>
</tr>
<tr>
<th scope="row">SAToGo</th>
<td>N/A</td>
<td>
<ul>
<li>same as HTML5 Only, except that, when reading through the page using the "say all" command or the arrow keys, each <code>article</code> elements' content is not read, but collectively announced only as <q>editable text, blank</q></li>
<li>however, if using the <kbd>Tab</kbd> key, SAToGo stops at each <code>article</code>, reads its contents as if it were just simple text, finishing with <q>editable text, blank</q></li>
<li>navigation by landmark to the <code>application</code>, <code>banner</code>, <code>contentinfo</code>, <code>main</code>, and <code>navigation</code> landmarks, but not the <code>complementary</code> landmark</li>
<li>does not announce the type of landmark when navigating by landmark</li>
</ul>
</td>
<td>N/A</td>
</tr>
<tr>
<th scope="row">VoiceOver</th>
<td>N/A</td>
<td>N/A</td>
<td>
<ul>
<li>same as HTML5 Only, except that in "Read All" mode, the <code>aria-labelledby</code> on the <code>section</code> with <code>role="region"</code> makes VoiceOver announce the value of the referenced label after practically each node within that <code>section</code>. For example, VoiceOver reads <q>Articles Section; Skip to link in Article A, Articles Section, link; Article A, Vivamus placerat, Articles Section; libero ut convallis elementum, Articles Section, link, Articles Section; This is some text in an aside, Articles Section&hellip;</q>. Once it gets to the end of the <code>section</code>, it says the word "region", which is the ARIA document structure role assigned to the <code>section</code>. Removing the <code>aria-labelledby</code> attribute prevents VoiceOver from doing this, and from mentioning that the <code>section</code> is a "region"</li>
</ul>
</td>
</tr>
</tbody>
</table>]]></content:encoded>
			<wfw:commentRss>http://www.accessibleculture.org/articles/2011/04/html5-aria-2011/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>It&#039;s Spelled aria-labelledby</title>
		<link>http://www.accessibleculture.org/articles/2011/03/its-spelled-aria-labelledby/</link>
		<comments>http://www.accessibleculture.org/articles/2011/03/its-spelled-aria-labelledby/#comments</comments>
		<pubDate>Sat, 05 Mar 2011 22:27:48 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[best practices]]></category>
		<category><![CDATA[JAWS]]></category>
		<category><![CDATA[NVDA]]></category>
		<category><![CDATA[WAI-ARIA]]></category>

		<guid isPermaLink="false">http://www.accessibleculture.org/?p=1056</guid>
		<description><![CDATA[This is just a quick note on spelling. The specification for aria-labelledby identifies the attribute's correct spelling as "aria-labelledby", as opposed to what might be its expected U.S. English spelling, "aria-labeledby". Apparently, the approved spelling was selected to minimize the difficulty for developers. However, seeing as how easy it is to find examples in the wild where the attribute is&#8230; <a class="continue" href="http://www.accessibleculture.org/articles/2011/03/its-spelled-aria-labelledby/">Continue reading<span class="hidden"> It's Spelled <code>aria-labelledby</code></span></a>]]></description>
			<content:encoded><![CDATA[<p>This is just a quick note on spelling. The <a href="http://www.w3.org/TR/wai-aria/states_and_properties#aria-labelledby">specification for <code>aria-labelledby</code></a> identifies the attribute's correct spelling as "aria-labelledby", as opposed to what might be its expected U.S. English spelling, "aria-labeledby". Apparently, the approved spelling was selected to <q cite="http://www.w3.org/TR/wai-aria/states_and_properties#aria-labelledby">minimize the difficulty for developers</q>. However, seeing as how easy it is to find examples in the wild where the attribute is spelled "aria-labeledby" suggests that perhaps some difficulty for developers remains.</p>
<h2>Browser and Accessiblity API Support</h2>
<p><del datetime="2011-03-07">Internet Explorer 8 supports both spellings, i.e., "aria-labelledby" and "aria-labeledby". No matter the attribute's spelling, <abbr title="Internet Explorer 8">IE8</abbr> passes the attribute value to the <abbr title="Microsoft Active Accessibility">MSAA</abbr> accessibility <abbr title="Application Programming Interface">API</abbr>, which allows supporting assistive technologies, such as screen readers, to construct the relevant component's accessible name using that value.</del></p>
<p><ins datetime="2011-03-07"><em>Update (March 7, 2011): Thanks to Steve Faulkner for setting things straight (see <a href="http://www.accessibleculture.org/blog/2011/03/its-spelled-aria-labelledby/#comment-1">Steve's comment below</a>). Turns out, in fact, that IE <em>does not</em> support the incorrect spelling "aria-labeledby", but instead, in the absence of a proper label, builds the component's accessible name using whatever text exists within the component. You can read <a href="">my reply to Steve</a> which explains how I ended up coming to this false conclusion about IE. This is good news, in the end.</em></ins></p>
<p>Firefox 3.6, on the other hand, only supports the attribute when it is spelled correctly as per the specification. The attribute's value is passed along to both the MSAA and <abbr title="IAccessible2">IA2</abbr> accessibility APIs that Firefox supports only when the attribute is spelled "aria-labelledby". Otherwise, if the attribute is spelled "aria-labeledby", assistive technologies running on top of Firefox are not able to construct an accessible name for the associated component.</p>
<h2>It's in the Spelling</h2>
<p>If you need an additional reason to spell the attribute according to spec, let it be that that Firefox only supports it when it's spelled "aria-labelledby". If it's spelled "aria-labeledby", any accessibility benefits intended by using the attribute will be lost to those using Firefox, which is the preferred browser for many, especially those using the <abbr title="NonVisual Desktop Access">NVDA</abbr> screen reader.</p>
<p>This difference in how the two browsers behave and the information they provide accessibility APIs also helps to explain the results from the two tests provided below.</p>
<div class="alertdialogtest">
<h2>Test #1: <code>aria-labelledby</code> spelled correctly</h2>
<p>Below is an ARIA <code>alertdialog</code> whose label is referenced using <code>aria-labelledby</code> spelled according to the specification.</p>
<p class="jswarning">This <code>alertdialog</code> example requires that JavaScript be enabled.</p>
<button class="opendialog">Open alertdialog #1</button>
<div class="alertdialog" role="alertdialog" aria-labelledby="title1" aria-describedby="desc1">
<div id="title1" class="dialog-title">alertdialog #1 label</div>
<div id="desc1" class="dialog-desc"><p>Text for alertdialog #1</p></div>
<button class="closedialog">Close</button>
</div>
<h3>Test #1 Results</h3>
<ul>
<li>In Firefox 3.6, both the NVDA 2011.1b2 and JAWS 12 screen readers announce the referenced label, "alertdialog #1 label," when reading the dialog.</li>
<li>In IE8, JAWS 12 announces the referenced label when reading the dialog, but NVDA 2011.1b2 announces neither the dialog's label nor its text content.</li>
</ul>
</div>
<div class="alertdialogtest">
<h2>Test #2: <code>aria-labeledby</code> spelled incorrectly</h2>
<p>An <code>alertdialog</code> whose label is referenced using <code>aria-labeledby</code> spelled incorrectly, according to the specification.</p>
<p class="jswarning">This <code>alertdialog</code> example requires that JavaScript be enabled.</p>
<button class="opendialog">Open alertdialog #2</button>
<div class="alertdialog" role="alertdialog" aria-labeledby="title2" aria-describedby="desc2">
<div id="title2" class="dialog-title">alertdialog #2 label</div>
<div id="desc2" class="dialog-desc"><p>Text for alertdialog #2</p></div>
<button class="closedialog">Close</button>
</div>
<h3>Test #2 Results</h3>
<ul>
<li>In Firefox 3.6, NVDA 2011.1b2 and JAWS 12 <strong>do not</strong> announce the referenced label, "alertdialog #2 label," when reading the dialog.</li>
<li><del datetime="2011-03-07">In IE8, JAWS 12 announces the referenced label, "alertdialog #2 label," while</del> NVDA 2011.1b2 announces neither the dialog's label nor its text content. <ins datetime="2011-03-07"><em>Update (March 7, 2011): It's now clear, based on <a href="http://www.html5accessibility.com/tests/alertdialog.html">tests by Steve Faulkner</a>, that JAWS in IE reads the label text only as part of the larger sequence of all the text contained in the dialog, and is not announcing it as an explicit label, per se.</em></ins></li>
</ul>
</div>
<h2>Spell it as Specified</h2>
<p>Despite the fact that, in some instances, <code>aria-labelledby</code> is supported when it's spelled "aria-labeledby", it is probably best just to play it safe and spell it "aria-labelledby" as defined by the specification. You'll not only be following the standard, but, and more importantly, users of Firefox with assistive technologies that support ARIA will benefit. <ins datetime="2011-03-07"><em>Update (March 7, 2011): While contrary to my initial conclusion, IE does not support the "aria-labeledby" spelling. Apparently, however, <a href="https://sites.google.com/a/chromium.org/dev/developers/design-documents/accessibility#TOC-aria-labelledby-and-aria-describedb">a development version of Google Chrome supports both spellings</a>. I've not looked at this, but Chrome's accessibility support is still very much in development at this stage.</em></ins></p>]]></content:encoded>
			<wfw:commentRss>http://www.accessibleculture.org/articles/2011/03/its-spelled-aria-labelledby/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>An ARIA alert Test Case</title>
		<link>http://www.accessibleculture.org/articles/2011/02/aria-alert/</link>
		<comments>http://www.accessibleculture.org/articles/2011/02/aria-alert/#comments</comments>
		<pubDate>Tue, 15 Feb 2011 06:15:24 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[alert]]></category>
		<category><![CDATA[JAWS]]></category>
		<category><![CDATA[NVDA]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[screen readers]]></category>
		<category><![CDATA[test cases]]></category>
		<category><![CDATA[WAI-ARIA]]></category>

		<guid isPermaLink="false">http://www.accessibleculture.org/?p=1045</guid>
		<description><![CDATA[I put together a few examples of ARIA alerts and tested them with JAWS and NVDA in Firefox 3.6, Internet Explorer 7 and 8. The interesting bit is how alerts can be improved for JAWS 10 in Internet Explorer by adding an aria-live attribute value of "assertive". <a class="continue" href="http://www.accessibleculture.org/articles/2011/02/aria-alert/">Continue reading<span class="hidden"> An ARIA <code>alert</code> Test Case</span></a>]]></description>
			<content:encoded><![CDATA[<p>Based on <a href="/research/not-all-aria-widgets-deserve-role-application/#comment-5">a comment to my article</a>, <a href="/research/not-all-aria-widgets-deserve-role-application/">Not All <abbr title="Accessible Rich Internet Applications">ARIA</abbr> Widgets Deserve <code>role="application"</code></a>, I put together <a href="/research-files/test-cases/aria/alert/index.html">a few examples of ARIA <code>alert</code>s</a> and tested them with JAWS and NVDA in Firefox 3.6, Internet Explorer 7 and 8.</p>
<h2>The Results Summarised</h2>
<p>One, it seems that NVDA just doesn't want to do <code>alert</code>s in Internet Explorer, though it shines in Firefox, as you'd expect. I'd love to know why. I should probably know this. Is it as simple as some accessibility <abbr title="Application Programming Interface">API</abbr> thing?</p>
<p>Two, JAWS 11 and 12 do great with <code>role="alert"</code> in both Firefox and Internet Explorer.</p>
<p>Three, JAWS 10, on the other hand, while it does well in FF3.6, doesn't manage <code>role="alert"</code> in IE7 and IE8 at all. If you are looking to support JAWS 10 in IE7 or IE8 at all, it is likely best to double up on alerts with both <code>role="alert"</code> and <code>aria-live="assertive"</code>. While this is somewhat redundant since, by definition, the <a href="http://www.w3.org/TR/wai-aria/roles#alert"><code>alert</code> role is to be processed as an assertive live region</a>, doing so does allow JAWS 10 to automatically announce the updated alert's contents in those two browsers. And since the <code>alert</code> role is effectively an assertive live region by default, this shouldn't, I expect, cause any problems or conflicts.</p>
<h2>The Tests</h2>
<p>Below are four examples of ARIA <code>alert</code>s. Following each example is a table providing detailed results.</p>
<p>The examples were tested with NVDA 2010.2, JAWS 10, 11, and 12, using Firefox 3.6 and Internet Explorer 7 and 8. Do note that none of the examples were tested using the combination of JAWS 12 and <abbr title="Internet Explorer 7">IE7</abbr>. However, I'm assuming that since JAWS 11 with IE7 works well in all cases, with the exception of <a href="#exD">Example D</a>, that JAWS 12 with IE7 works the same.</p>
<section class="alerttest">
<h3 id="exA">Example A: Does Not Use <code>role="application"</code></h3>
<p>In this example, the <code>p</code> element in which the alert text is displayed simply has <code>role="alert"</code> applied.</p>
<button id="a1">Alert #A1</button>
<button id="a2">Alert #A2</button>
<button id="a3">Alert #A3</button>
<div class="alert">
<p role="alert">Alerts will display here.</p>
</div>
<table>
<caption>Example A Results</caption>
<tr>
<th scope="col">Screen Reader</th>
<th scope="col"><abbr title="Internet Explorer 7">IE7</abbr></th>
<th scope="col"><abbr title="Internet Explorer 8">IE8</abbr></th>
<th scope="col"><abbr title="Firefox 3.6">FF3.6</abbr></th>
</tr>
<tr>
<td scope="row">JAWS 10</td>
<td>No</td>
<td>No</td>
<td>Yes</td>
</tr>
<tr>
<td scope="row">JAWS 11</td>
<td>Yes</td>
<td>Yes</td>
<td>Yes</td>
</tr>
<tr>
<td scope="row">JAWS 12</td>
<td>Not Tested</td>
<td>Yes</td>
<td>Yes</td>
</tr>
<tr>
<td scope="row">NVDA</td>
<td>No</td>
<td>No</td>
<td>Yes</td>
</tr>
</table>
</section>
<section class="alerttest">
<h3 id="exB">Example B: Uses <code>role="application"</code></h3>
<p>In this example, a <code>div</code> set with <code>role="application"</code> wraps the buttons and alert area.</p>
<div role="application">
<button id="b1">Alert #B1</button>
<button id="b2">Alert #B2</button>
<button id="b3">Alert #B3</button>
<div class="alert">
<p role="alert">Alerts will display here.</p>
</div>
</div>
<table>
<caption>Example B Results</caption>
<tr>
<th scope="col">Screen Reader</th>
<th scope="col"><abbr title="Internet Explorer 7">IE7</abbr></th>
<th scope="col"><abbr title="Internet Explorer 8">IE8</abbr></th>
<th scope="col"><abbr title="Firefox 3.6">FF3.6</abbr></th>
</tr>
<tr>
<td scope="row">JAWS 10</td>
<td>No</td>
<td>No</td>
<td>Yes</td>
</tr>
<tr>
<td scope="row">JAWS 11</td>
<td>Yes</td>
<td>Yes</td>
<td>Yes</td>
</tr>
<tr>
<td scope="row">JAWS 12</td>
<td>Not Tested</td>
<td>Yes</td>
<td>Yes</td>
</tr>
<tr>
<td scope="row">NVDA</td>
<td>No</td>
<td>No</td>
<td>Yes</td>
</tr>
</table>
</section>
<section class="alerttest">
<h3 id="exC">Example C: No <code>role="application"</code>, but uses <code>aria-live</code></h3>
<p>In this example, there is no <code>role="application"</code> used, but the <code>p</code> with <code>role="alert"</code> is also set with <code>aria-live="assertive"</code>, which is redundant since, by definition, the <a href="http://www.w3.org/TR/wai-aria/roles#alert"><code>alert</code> role is to be processed as an assertive live region</a>. However, doubling up like this certainly makes a difference to JAWS 10 in Internet Explorer 7 and 8.</p>
<button id="c1">Alert #C1</button>
<button id="c2">Alert #C2</button>
<button id="c3">Alert #C3</button>
<div class="alert">
<p role="alert" aria-live="assertive">Alerts will display here.</p>
</div>
<table>
<caption>Example C Results</caption>
<tr>
<th scope="col">Screen Reader</th>
<th scope="col"><abbr title="Internet Explorer 7">IE7</abbr></th>
<th scope="col"><abbr title="Internet Explorer 8">IE8</abbr></th>
<th scope="col"><abbr title="Firefox 3.6">FF3.6</abbr></th>
</tr>
<tr>
<td scope="row">JAWS 10</td>
<td>Yes</td>
<td>Yes</td>
<td>Yes</td>
</tr>
<tr>
<td scope="row">JAWS 11</td>
<td>Yes</td>
<td>Yes</td>
<td>Yes</td>
</tr>
<tr>
<td scope="row">JAWS 12</td>
<td>Not Tested</td>
<td>Yes</td>
<td>Yes</td>
</tr>
<tr>
<td scope="row">NVDA</td>
<td>No</td>
<td>No</td>
<td>Yes</td>
</tr>
</table>
</section>
<section class="alerttest">
<h3 id="exD">Example D: No <code>role="application"</code>, but uses <code>aria-live</code></h3>
<p>In this final example, there is no <code>role="application"</code> used. The alert's <code>p</code> element does not use <code>role="alert"</code>, but is only set with <code>aria-live="assertive"</code>. As such, it is not an actual ARIA alert, but does exhibit the same behaviour. Since there seems be some benefit for JAWS 10 in Internet Explorer when <code>role="alert"</code> is combined with <code>aria-live="assertive"</code>, this example exists merely to see if, at least in the context of these examples, there is any difference in behaviour between using an <code>aria-live</code> region as opposed to an actual <code>alert</code> role.</p>
<button id="d1">Alert #D1</button>
<button id="d2">Alert #D2</button>
<button id="d3">Alert #D3</button>
<div class="alert">
<p aria-live="assertive">Alerts will display here.</p>
</div>
<table>
<caption>Example D Results</caption>
<tr>
<th scope="col">Screen Reader</th>
<th scope="col"><abbr title="Internet Explorer 7">IE7</abbr></th>
<th scope="col"><abbr title="Internet Explorer 8">IE8</abbr></th>
<th scope="col"><abbr title="Firefox 3.6">FF3.6</abbr></th>
</tr>
<tr>
<td scope="row">JAWS 10</td>
<td>Yes</td>
<td>Yes</td>
<td>Yes</td>
</tr>
<tr>
<td scope="row">JAWS 11</td>
<td>Not Really (<a href="#J11-IE7-note">see Note below</a>)</td>
<td>Yes</td>
<td>Yes</td>
</tr>
<tr>
<td scope="row">JAWS 12</td>
<td>Not Tested</td>
<td>Yes</td>
<td>Yes</td>
</tr>
<tr>
<td scope="row">NVDA</td>
<td>No</td>
<td>No</td>
<td>Yes</td>
</tr>
</table>
<p id="J11-IE7-note"><strong>Note: </strong>With this example, even though the alert text gets updated, JAWS 11 in IE7 sometimes only announces the text that was in the alert area before the new alert is called; but sometimes it announces the previous alert text immediately followed by the updated alert text. This would seem to be a regression with JAWS 11 since JAWS 10 in IE7 works fine, according to my tests, anyway. Whether this example works correctly in JAWS 12 with IE7 I don't know as I didn't test that combination.</p>
</section> ]]></content:encoded>
			<wfw:commentRss>http://www.accessibleculture.org/articles/2011/02/aria-alert/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

