- From: Charles Pritchard <chuck@jumis.com>
- Date: Sun, 04 Sep 2011 10:22:23 -0700
- To: Canvas <public-canvas-api@w3.org>
Despite long-standing bug reports, webkit has not made further progress
on Canvas a11y:
"Fallback content in canvas element not focusable"
https://bugs.webkit.org/show_bug.cgi?id=50126
I would like to see Apple's VoiceOver for iOS working with Canvas web
apps; when web app authors follow the HTML5 and Canvas 2d specs.
Given the lack of progress from Apple on this issue, authors targeting
Apple's mobile platforms, authors may have to use unfortunate and
inefficient techniques, such as self-voicing. Apple has introduced
support for the audio tag.
I've pointed out a more specific bug, to Apple's VoiceOver:
"VoiceOver does not work well with Canvas in mobile safari"
https://bugs.webkit.org/show_bug.cgi?id=63463
I've confirmed that behavior similar to the standard behavior of
VoiceOver on iOS is possible to produce within the scripting
environment. This, unfortunately, requires an online text to speech
service, the use of audio tags, and well-structured focus management.
It's quite a bit of work on the author, but it does result in a usable
eyes-free interface.
Chromium has introduced an extension within their vendor namespace, to
exploit the text-to-speech services available on the host OS, as well as
a plugin mechanism.
http://code.google.com/chrome/extensions/experimental.tts.html
"Use the chrome.experimental.tts module to play synthesized
text-to-speech (TTS) from your extension or packaged app, or to register
as a speech provider for other extensions and packaged apps that want to
speak"
It's heading out of experimental soon, as the development branch of the
documentation shows.
Web app authors providing packaged web apps for iOS may decide to re-use
that structure, perhaps putting it in navigator.tts namespace. iOS does
have rich text-to-speech services.
Summary:
There's been no movement from Apple in relation to Canvas a11y. A
Chromium contributor has made initial patches for WebKit, to fix the
very basic requirements of focus management. Apple has introduced
support for the audio tag in their mobile platform. Both Chromium and
Safari can support local text-to-speech services for packaged
applications. Untrusted web apps may, unfortunately, rely on
self-voicing and online text-to-speech services.
Web apps may also use strict CSS semantics, with background:
-webkit-canvas and content: url(..) replaced, to gain some support in
Mobile Safari. Presently, Canvas-based web apps are not using such
strong semantics, just as they are not relying on SVG for a11y.
Example of self-voicing:
element.onfocus = function(e) { audioTag.src =
'https://ttsService/?string='+e.target.textContent; };
Self-voicing is not a bad thing in itself. But it is not sufficient for
WCAG level AA. It is quite a bit of work to toggle VoiceOver on and off,
with Apple's mobile platform. Self-voicing can work with Apple's
VoiceOver, but it's a difficult experience.
-Charles
Received on Sunday, 4 September 2011 17:22:44 UTC