- From: Charles Pritchard <chuck@jumis.com>
- Date: Tue, 12 Jul 2011 14:15:35 -0700
- To: Canvas <public-canvas-api@w3.org>
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