Proposal for canvas discussion today

James Craig and I discussed what we think will be a better solution to a
new element within <canvas>. I would like to discuss it today.


When possible a facility must me provided to make <canvas> directly
accessible to assistive technologies in such a way that an accessibility
validator may detect the accessible binding in markup. The accessibility
binding should be such that keyboard navigation of <canvas> be consistent
with standard HTML navigation in the DOM and as such the author should be
able to use the area between the <canvas> </canvas> tags to implement this
accessible rendering. The challenge being that the author also uses the
same <canvas> subtree to represent fallback content. The fallback subtree
differs from the accessible <canvas> subtree in that the accessible
<canvas> subtree is designed to have its rendering directly drawn to the
<canvas> whereas the fallback subtree is not.

The determination of the disposition of the <canvas> subtree can be
determined at load time. Therefore, to indicate to assistive technologies
and test tools that the <canvas> subtree is a directly accessible binding
of <canvas> we would like to introduce a new canvas attribute called
adom/(or whatever the group likes). When set to true it indicates that the
canvas subtree is to be use as a direct accessible subtree of canvas.
Another important reason for it being an attribute (as opposed to a
separate element) is because there is likely no need for the DOM to contain
both 'fallback content' and 'shadow DOM content' at the same time. The
fallback content can come over the wire in the HTML source, and a script
can determine whether canvas is renderable, then replace that fallback
content with the shadow DOM content (and update the new attribute) when it
initializes the canvas.

We propose adding this text to canvas:

The canvas element has a third boolean attribute called adom to indicate if
the canvas subtree is an accessible DOM subtree binding of canvas. If it is
true, standard HTML elements may be used in the subtree, however the the
rendering of the subtree is controlled by script through the canvas API.
When adom is set to "true" the elements within the <canvas> should be
included as part of the keyboard navigation order in HTML. The default
value for adom is false to indicate that the canvas subtree is fallback
content. Authors that implement adom MUST ensure that:


      - an accessible visible focus rendering of the adom element is
      provided on the <canvas> area


      - an accessible visible caret rendering of the adom element is
      provided on the <canvas> area


      - the canvas rendering supports system font and color settings





      and changing:





      interface HTMLCanvasElement : HTMLElement {
                 attribute unsigned long width;
                 attribute unsigned long height;

        DOMString toDataURL(in optional DOMString type, in any... args);

        object getContext(in DOMString contextId);
      };

      to:

      interface HTMLCanvasElement : HTMLElement {
                 attribute unsigned long width;
                 attribute unsigned long height;
      attribute boolean adom;

        DOMString toDataURL(in optional DOMString type, in any... args);

        object getContext(in DOMString contextId);
      };



Rich Schwerdtfeger
Distinguished Engineer, SWG Accessibility Architect/Strategist

Received on Monday, 15 February 2010 19:56:48 UTC