Below is the proposal and attached HTML file with spec. ready text denoted
by <ZZ> and </ZZ> for final review on Monday's canvas accessibility subteam
call (incorporating feedback from David Bolter).
When possible a facility should be provided to make <canvas> directly
accessible to assistive technologies in such a way that an accessibility
validator may detect the accessible representation the canvas rendering .
The accessibility
representation 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
done 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. When set to true it indicates that the canvas subtree is
to be used as a directly keyboard operable 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.
"Progressive
enhancement can be achieved since the fallback content can come over the
wire in the HTML
source and script can determine whether the the canvas feature is supported
by the browser by using
the canvas.getContext() method. If it returns null canvas is not supported.
If canvas
is supported then the author can replace or modify, or re-purpose the
fallback
content to be shadow DOM content (and update the new attribute) when it
initializes the canvas.
(See attached file: canvaselement-issue74)
Rich Schwerdtfeger
Distinguished Engineer, SWG Accessibility Architect/Strategist