<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Limitations of the WAI-ARIA</title>
	<atom:link href="http://rossboucher.com/2009/03/01/limitations-of-the-wai-aria/feed/" rel="self" type="application/rss+xml" />
	<link>http://rossboucher.com/2009/03/01/limitations-of-the-wai-aria/</link>
	<description>Blog by Ross</description>
	<lastBuildDate>Mon, 07 Jun 2010 10:54:39 -0700</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Joelle Neumann</title>
		<link>http://rossboucher.com/2009/03/01/limitations-of-the-wai-aria/comment-page-1/#comment-16605</link>
		<dc:creator>Joelle Neumann</dc:creator>
		<pubDate>Wed, 26 May 2010 11:40:25 +0000</pubDate>
		<guid isPermaLink="false">http://rossboucher.com/?p=44#comment-16605</guid>
		<description>&lt;i&gt;Bespin could be made accessible in a number of ways, but one way that comes to mind is by managing focus of the entire application via the &#8220;roaming tabindex&#8221; technique, and dynamically inserting DOM elements for ARIA roles as needed. Todd Kloots (from YUI) has some blog posts discussing the &#8220;roaming tabindex&#8221; technique for specific widgets, but there is nothing to stop you from using the technique for an entire application. Although it is not the ideal solution because it would not allow for additional UI shortcuts that most AT has into the rest of the DOM (via methods like an item chooser or navigation by header), the Bespin editor could be made accessible by only allowing access to a single element at a time: whatever text is currently selected, or whatever menu item is currently focused. For example, updating a DOM element that represented the current line of the text editor would not cause a substantial performance hit.&lt;/i&gt;
+1</description>
		<content:encoded><![CDATA[<p><i>Bespin could be made accessible in a number of ways, but one way that comes to mind is by managing focus of the entire application via the &#8220;roaming tabindex&#8221; technique, and dynamically inserting DOM elements for ARIA roles as needed. Todd Kloots (from YUI) has some blog posts discussing the &#8220;roaming tabindex&#8221; technique for specific widgets, but there is nothing to stop you from using the technique for an entire application. Although it is not the ideal solution because it would not allow for additional UI shortcuts that most AT has into the rest of the DOM (via methods like an item chooser or navigation by header), the Bespin editor could be made accessible by only allowing access to a single element at a time: whatever text is currently selected, or whatever menu item is currently focused. For example, updating a DOM element that represented the current line of the text editor would not cause a substantial performance hit.</i><br />
+1</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Max Design - standards based web design, development and training &#187; Some links for light reading (3/3/09)</title>
		<link>http://rossboucher.com/2009/03/01/limitations-of-the-wai-aria/comment-page-1/#comment-7866</link>
		<dc:creator>Max Design - standards based web design, development and training &#187; Some links for light reading (3/3/09)</dc:creator>
		<pubDate>Tue, 03 Mar 2009 09:35:39 +0000</pubDate>
		<guid isPermaLink="false">http://rossboucher.com/?p=44#comment-7866</guid>
		<description>[...] Limitations of the WAI-ARIA [...]</description>
		<content:encoded><![CDATA[<p>[...] Limitations of the WAI-ARIA [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: James Craig</title>
		<link>http://rossboucher.com/2009/03/01/limitations-of-the-wai-aria/comment-page-1/#comment-7849</link>
		<dc:creator>James Craig</dc:creator>
		<pubDate>Tue, 03 Mar 2009 06:59:14 +0000</pubDate>
		<guid isPermaLink="false">http://rossboucher.com/?p=44#comment-7849</guid>
		<description>You wrote:
&quot;Even beyond the fact that elements in your program that don’t exist in the DOM tree can’t become part of the accessibility system, not having a programmatic interface means that you can’t dynamically compute accessibility values. …snip… Lack of an actual API also limits the potential uses of ARIA. I can’t, for example, implement my own accessibility tool within the browser. It also causes issues with the event system, and doesn’t add any enhanced functionality for simulating events using accessibility APIs, which could have enabled a lot of advanced automated testing.&quot;

I don&#039;t agree with any of those statements, but if you have specific concerns about the draft and send them in during the last call response period, the working group is required to address the issues formally. We have several issues deferred until a later version of ARIA, so they may already be addressed, but all constructive feedback is welcome.</description>
		<content:encoded><![CDATA[<p>You wrote:<br />
&#8220;Even beyond the fact that elements in your program that don’t exist in the DOM tree can’t become part of the accessibility system, not having a programmatic interface means that you can’t dynamically compute accessibility values. …snip… Lack of an actual API also limits the potential uses of ARIA. I can’t, for example, implement my own accessibility tool within the browser. It also causes issues with the event system, and doesn’t add any enhanced functionality for simulating events using accessibility APIs, which could have enabled a lot of advanced automated testing.&#8221;</p>
<p>I don&#8217;t agree with any of those statements, but if you have specific concerns about the draft and send them in during the last call response period, the working group is required to address the issues formally. We have several issues deferred until a later version of ARIA, so they may already be addressed, but all constructive feedback is welcome.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: James Craig</title>
		<link>http://rossboucher.com/2009/03/01/limitations-of-the-wai-aria/comment-page-1/#comment-7848</link>
		<dc:creator>James Craig</dc:creator>
		<pubDate>Tue, 03 Mar 2009 06:58:35 +0000</pubDate>
		<guid isPermaLink="false">http://rossboucher.com/?p=44#comment-7848</guid>
		<description>You wrote: 
&quot;This leads us to the second problem, not having programmatic access to the accessibility system. This spec is designed to target web applications, but it has taken the same document based approach as HTML. Applications are defined by requiring a programming language, which in the case of the browser is usually JavaScript. It seems short sighted to develop a standard for applications that uses a fundamentally different technology than the application does.&quot;

Although most ARIA controls require interaction with JavaScript, many of the ARIA roles are static semantic roles that require no JavaScript, for example, the landmark roles can provide additional navigation for user agents and assistive technology.

Web applications are always defined by the DOM, because you can&#039;t have a script that executes outside the context of a document. Likewise SVG, or any other implementing host language will have a DOM and may or may not be accessed via JavaScript, another programming language, or directly by the user agent or assistive technology. The DOM is still the lowest common denominator.</description>
		<content:encoded><![CDATA[<p>You wrote:<br />
&#8220;This leads us to the second problem, not having programmatic access to the accessibility system. This spec is designed to target web applications, but it has taken the same document based approach as HTML. Applications are defined by requiring a programming language, which in the case of the browser is usually JavaScript. It seems short sighted to develop a standard for applications that uses a fundamentally different technology than the application does.&#8221;</p>
<p>Although most ARIA controls require interaction with JavaScript, many of the ARIA roles are static semantic roles that require no JavaScript, for example, the landmark roles can provide additional navigation for user agents and assistive technology.</p>
<p>Web applications are always defined by the DOM, because you can&#8217;t have a script that executes outside the context of a document. Likewise SVG, or any other implementing host language will have a DOM and may or may not be accessed via JavaScript, another programming language, or directly by the user agent or assistive technology. The DOM is still the lowest common denominator.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: James Craig</title>
		<link>http://rossboucher.com/2009/03/01/limitations-of-the-wai-aria/comment-page-1/#comment-7847</link>
		<dc:creator>James Craig</dc:creator>
		<pubDate>Tue, 03 Mar 2009 06:57:26 +0000</pubDate>
		<guid isPermaLink="false">http://rossboucher.com/?p=44#comment-7847</guid>
		<description>You wrote:
&quot;What about elements that aren’t part of the visual structure at all? For example, in Cappuccino, every application has a CPApplication object. This object contains information that would undoubtedly be useful to the accessibility system, but because it’s an abstract object and isn’t part of the render tree in any way, it will never be visible to WAI-ARIA compliant browsers.&quot;

If it&#039;s never perceivable to WAI-ARIA compliant browsers, how is it perceivable to sighted users?

Yes, JavaScript can have arbitrary data structures but users don&#039;t have any direct access to any of that data and, with the exception of a few specialized dialogs (alert, confirm, prompt) JavaScript cannot display anything to a user without inserting it into the DOM. Accessibility, is about the user, not about the API.</description>
		<content:encoded><![CDATA[<p>You wrote:<br />
&#8220;What about elements that aren’t part of the visual structure at all? For example, in Cappuccino, every application has a CPApplication object. This object contains information that would undoubtedly be useful to the accessibility system, but because it’s an abstract object and isn’t part of the render tree in any way, it will never be visible to WAI-ARIA compliant browsers.&#8221;</p>
<p>If it&#8217;s never perceivable to WAI-ARIA compliant browsers, how is it perceivable to sighted users?</p>
<p>Yes, JavaScript can have arbitrary data structures but users don&#8217;t have any direct access to any of that data and, with the exception of a few specialized dialogs (alert, confirm, prompt) JavaScript cannot display anything to a user without inserting it into the DOM. Accessibility, is about the user, not about the API.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: James Craig</title>
		<link>http://rossboucher.com/2009/03/01/limitations-of-the-wai-aria/comment-page-1/#comment-7845</link>
		<dc:creator>James Craig</dc:creator>
		<pubDate>Tue, 03 Mar 2009 06:56:43 +0000</pubDate>
		<guid isPermaLink="false">http://rossboucher.com/?p=44#comment-7845</guid>
		<description>You wrote:
&quot;The most obvious downside of assuming that the DOM will be the basic building block of future web applications is that it presumes all web apps will always be structured with DOM trees. But this already isn’t true today. Look at Mozilla’s Bespin editor, which renders text inside a canvas element, or SUN’s Lively Kernel, which implements an entire widget set in SVG. Because there is no underlying DOM structure, these two programs can not be made accessible under the WAI-ARIA spec without substantial hacks.&quot;

SVG is nothing but a DOM structure, and ARIA markup can be used inside SVG, completely hack-free. Although, I am unaware of an SVG viewer implementation that supports ARIA at this time. 

Before going into how Bespin could be made accessible via ARIA, I feel compelled to state that the canvas element is/was intended for drawing graphics. Using a drawing tool for a document goes against the WCAG 2 Principle that &quot;content must be robust&quot; and the HTML 5 spec even states, &quot;Authors should not use the canvas element in a document when a more suitable element is available.&quot; That said, I am aware of the drawbacks to using &quot;more suitable elements&quot; for something like a text editor, and applaud the Bespin creators for their experimentation and continued attempts to make a project like Bespin more accessible.

Since you seem very familiar with Apple technologies, using canvas here is sort of like using a Quartz composition. Quartz compositions are most often useful in the context of an application, which can be made accessible, although it will take significantly more work since the application author is using a custom UI layer instead of using standard Cocoa controls. Likewise, the canvas element is always used in the context of a larger DOM that can be made accessible, although it will take significantly more work since the web application author is using a custom UI layer instead of using standard HTML elements and controls.

Bespin could be made accessible in a number of ways, but one way that comes to mind is by managing focus of the entire application via the &quot;roaming tabindex&quot; technique, and dynamically inserting DOM elements for ARIA roles as needed. Todd Kloots (from YUI) has some blog posts discussing the &quot;roaming tabindex&quot; technique for specific widgets, but there is nothing to stop you from using the technique for an entire application. Although it is not the ideal solution because it would not allow for additional UI shortcuts that most AT has into the rest of the DOM (via methods like an item chooser or navigation by header), the Bespin editor could be made accessible by only allowing access to a single element at a time: whatever text is currently selected, or whatever menu item is currently focused. For example, updating a DOM element that represented the current line of the text editor would not cause a substantial performance hit.</description>
		<content:encoded><![CDATA[<p>You wrote:<br />
&#8220;The most obvious downside of assuming that the DOM will be the basic building block of future web applications is that it presumes all web apps will always be structured with DOM trees. But this already isn’t true today. Look at Mozilla’s Bespin editor, which renders text inside a canvas element, or SUN’s Lively Kernel, which implements an entire widget set in SVG. Because there is no underlying DOM structure, these two programs can not be made accessible under the WAI-ARIA spec without substantial hacks.&#8221;</p>
<p>SVG is nothing but a DOM structure, and ARIA markup can be used inside SVG, completely hack-free. Although, I am unaware of an SVG viewer implementation that supports ARIA at this time. </p>
<p>Before going into how Bespin could be made accessible via ARIA, I feel compelled to state that the canvas element is/was intended for drawing graphics. Using a drawing tool for a document goes against the WCAG 2 Principle that &#8220;content must be robust&#8221; and the HTML 5 spec even states, &#8220;Authors should not use the canvas element in a document when a more suitable element is available.&#8221; That said, I am aware of the drawbacks to using &#8220;more suitable elements&#8221; for something like a text editor, and applaud the Bespin creators for their experimentation and continued attempts to make a project like Bespin more accessible.</p>
<p>Since you seem very familiar with Apple technologies, using canvas here is sort of like using a Quartz composition. Quartz compositions are most often useful in the context of an application, which can be made accessible, although it will take significantly more work since the application author is using a custom UI layer instead of using standard Cocoa controls. Likewise, the canvas element is always used in the context of a larger DOM that can be made accessible, although it will take significantly more work since the web application author is using a custom UI layer instead of using standard HTML elements and controls.</p>
<p>Bespin could be made accessible in a number of ways, but one way that comes to mind is by managing focus of the entire application via the &#8220;roaming tabindex&#8221; technique, and dynamically inserting DOM elements for ARIA roles as needed. Todd Kloots (from YUI) has some blog posts discussing the &#8220;roaming tabindex&#8221; technique for specific widgets, but there is nothing to stop you from using the technique for an entire application. Although it is not the ideal solution because it would not allow for additional UI shortcuts that most AT has into the rest of the DOM (via methods like an item chooser or navigation by header), the Bespin editor could be made accessible by only allowing access to a single element at a time: whatever text is currently selected, or whatever menu item is currently focused. For example, updating a DOM element that represented the current line of the text editor would not cause a substantial performance hit.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: James Craig</title>
		<link>http://rossboucher.com/2009/03/01/limitations-of-the-wai-aria/comment-page-1/#comment-7844</link>
		<dc:creator>James Craig</dc:creator>
		<pubDate>Tue, 03 Mar 2009 06:55:47 +0000</pubDate>
		<guid isPermaLink="false">http://rossboucher.com/?p=44#comment-7844</guid>
		<description>Hi Ross, my response is almost as long as your original article, so I&#039;m going to split up each point and counterpoint into separate comments. To begin:

ARIA 1.0 is intended to allow existing web applications to be made accessible using today&#039;s technologies, and the DOM is the lowest common denominator for web applications. You can have a document without CSS or without JavaScript, but you can&#039;t have a script that executes outside the context of a document. The programming interfaces for ARIA are standard DOM methods.</description>
		<content:encoded><![CDATA[<p>Hi Ross, my response is almost as long as your original article, so I&#8217;m going to split up each point and counterpoint into separate comments. To begin:</p>
<p>ARIA 1.0 is intended to allow existing web applications to be made accessible using today&#8217;s technologies, and the DOM is the lowest common denominator for web applications. You can have a document without CSS or without JavaScript, but you can&#8217;t have a script that executes outside the context of a document. The programming interfaces for ARIA are standard DOM methods.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Matt May</title>
		<link>http://rossboucher.com/2009/03/01/limitations-of-the-wai-aria/comment-page-1/#comment-7802</link>
		<dc:creator>Matt May</dc:creator>
		<pubDate>Mon, 02 Mar 2009 23:35:25 +0000</pubDate>
		<guid isPermaLink="false">http://rossboucher.com/?p=44#comment-7802</guid>
		<description>It&#039;s all well and good that canvas allows visual fidelity, but as far as accessibility goes, it&#039;s several generations behind Flash, which started supporting MSAA in 2002.

But it&#039;s not the job of the group specifying ARIA to make that accessible, it&#039;s (now) the job of the HTML5 spec. So far, I&#039;m not aware that work has even begun. I agree it needs to be done, but take it up with the HTML WG.

I would still like to see what you&#039;re doing that you can&#039;t do with ARIA and the DOM, specifically.</description>
		<content:encoded><![CDATA[<p>It&#8217;s all well and good that canvas allows visual fidelity, but as far as accessibility goes, it&#8217;s several generations behind Flash, which started supporting MSAA in 2002.</p>
<p>But it&#8217;s not the job of the group specifying ARIA to make that accessible, it&#8217;s (now) the job of the HTML5 spec. So far, I&#8217;m not aware that work has even begun. I agree it needs to be done, but take it up with the HTML WG.</p>
<p>I would still like to see what you&#8217;re doing that you can&#8217;t do with ARIA and the DOM, specifically.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ross</title>
		<link>http://rossboucher.com/2009/03/01/limitations-of-the-wai-aria/comment-page-1/#comment-7765</link>
		<dc:creator>Ross</dc:creator>
		<pubDate>Mon, 02 Mar 2009 18:26:42 +0000</pubDate>
		<guid isPermaLink="false">http://rossboucher.com/?p=44#comment-7765</guid>
		<description>@Isofarro That&#039;s an incredibly limiting viewpoint. Canvas is an amazing piece of technology in the browser -- the ability to finally create *exactly* what you want, rather than an abysmal approximation limited by the features of HTML and CSS. 

The DOM doesn&#039;t &quot;aggregate JavaScript&quot;. It provides hooks into the document for JavaScript. Sure, event handlers have references stored in the DOM, but the rest of the code does not sit in the DOM at all. 

Ultimately, the DOM is about pages, about static documents. Applications are more than that -- they are, almost by definition, anything you can dream up. By making ARIA specifically limited to the DOM, you&#039;re limiting its scope, which is unfortunate.

As far as digging into browsers to implement the API I think we really need (this is relevant to @lloyd as well), that&#039;s far beyond what my job should be. We&#039;re just three people, trying to make great products, and sharing a lot of what we learn with the community. If we had to fix every browser shortcoming we deal with, our company would fail. All the browsers have full time employees available to work on this problem, but it doesn&#039;t seem like anyone is pushing them to do so.</description>
		<content:encoded><![CDATA[<p>@Isofarro That&#8217;s an incredibly limiting viewpoint. Canvas is an amazing piece of technology in the browser &#8212; the ability to finally create *exactly* what you want, rather than an abysmal approximation limited by the features of HTML and CSS. </p>
<p>The DOM doesn&#8217;t &#8220;aggregate JavaScript&#8221;. It provides hooks into the document for JavaScript. Sure, event handlers have references stored in the DOM, but the rest of the code does not sit in the DOM at all. </p>
<p>Ultimately, the DOM is about pages, about static documents. Applications are more than that &#8212; they are, almost by definition, anything you can dream up. By making ARIA specifically limited to the DOM, you&#8217;re limiting its scope, which is unfortunate.</p>
<p>As far as digging into browsers to implement the API I think we really need (this is relevant to @lloyd as well), that&#8217;s far beyond what my job should be. We&#8217;re just three people, trying to make great products, and sharing a lot of what we learn with the community. If we had to fix every browser shortcoming we deal with, our company would fail. All the browsers have full time employees available to work on this problem, but it doesn&#8217;t seem like anyone is pushing them to do so.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: lloyd hilaiel</title>
		<link>http://rossboucher.com/2009/03/01/limitations-of-the-wai-aria/comment-page-1/#comment-7748</link>
		<dc:creator>lloyd hilaiel</dc:creator>
		<pubDate>Mon, 02 Mar 2009 15:43:52 +0000</pubDate>
		<guid isPermaLink="false">http://rossboucher.com/?p=44#comment-7748</guid>
		<description>@ross my request to you would be that you then break the accessibility implementation you need in cappuccino into 2 parts, the cappuccino specific part, and the &quot;scriptable accessibility interface&quot;..  this is perhaps a meaningful bootstrap of the design work necessary.  

then to the extent that this api can be faked, we have a zero plugin, works everywhere subset.  some sorta plugin (uh, browserplus?) could implement the api for real, and when present could provide the full functionality...  all theoretical, of course -- but a path to filling the hole for real.</description>
		<content:encoded><![CDATA[<p>@ross my request to you would be that you then break the accessibility implementation you need in cappuccino into 2 parts, the cappuccino specific part, and the &#8220;scriptable accessibility interface&#8221;..  this is perhaps a meaningful bootstrap of the design work necessary.  </p>
<p>then to the extent that this api can be faked, we have a zero plugin, works everywhere subset.  some sorta plugin (uh, browserplus?) could implement the api for real, and when present could provide the full functionality&#8230;  all theoretical, of course &#8212; but a path to filling the hole for real.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
