setElementPath is needed by accessibility APIs

Browser vendor accessibility APIs are simple structures. They are 
managed by the UA and populated by the active DOM.
http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/accessibility/browser_accessibility.cc?revision=64943&view=markup&pathrev=72440 
<http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/accessibility/browser_accessibility.cc?revision=64943&view=markup&pathrev=72440>

When vendors chose to OS / platform APIs, they must implement various 
interfaces and perform some role/state conversion:
http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/accessibility/browser_accessibility_win.cc?revision=72440&view=markup&pathrev=72440 
<http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/accessibility/browser_accessibility_win.cc?revision=72440&view=markup&pathrev=72440>

The existing specification of the Canvas shadow dom allows authors to 
support assistive software running outside of the browser,
interfacing with the platform accessibility API.

HTML5 elements in the canvas shadow dom should be focusable and present 
in the vendor accessibility tree.
Microsoft's IE9 is the first browser to implement the shadow dom 
correctly. The drawFocusRing method included
in IE9, and Microsoft's first implementation of the Canvas 2d context, 
demonstrates the shadow dom in action.

There are two common methods which the UA can -not- glean from the 
shadow dom, without assistance from authors.
Those methods remain unusable by ATs, as the Canvas 2d spec does not 
provide a means for authors to pass that information.

In the vendor accessibility API I've referred to (see: 
browser_accessibility.cc) these method are:
BrowserAccessibilityForPoint
GetBoundsRect

In the platform-specific API, targeting MSAA (see: 
browser_accessibility_win.cc) these methods are:
accHitTest
accLocation

I've proposed that browser vendors permit authors to support those 
interfaces by
adding the method setElementPath(Node element) to the Canvas 2d api.

Argument for the approval of adding setElementPath to the Canvas 2d 
specification.
http://lists.w3.org/Archives/Public/public-canvas-api/2011JulSep/0150.html

Authors and vendors are currently unable to provide usable information 
for the two methods I've described,
limiting the usefulness of assistive technologies using platform 
accessibility APIs. These methods are required
by various assistive technology products.

Canvas Accessibility for Pointer Events and Spatial Awareness
http://lists.w3.org/Archives/Public/public-canvas-api/2011JulSep/0034.html

This is a straightforward API issue that should be addressed by vendors.

I encourage vendors to follow Microsoft's lead in implementing drawFocusRing
and properly implementing the canvas shadow dom. I encourage Microsoft
to continue leading, and implement setElementPath, enabling platform
level assistive technologies to enhance user experience.


-Charles

Received on Tuesday, 12 July 2011 21:16:04 UTC