W3C home > Mailing lists > Public > wai-xtech@w3.org > February 2009

Re: Example canvas element use - accessibility concerns

From: David Bolter <david.bolter@utoronto.ca>
Date: Wed, 18 Feb 2009 14:07:36 -0500
Message-ID: <499C5C78.4090302@utoronto.ca>
To: Maciej Stachowiak <mjs@apple.com>
CC: Steven Faulkner <faulkner.steve@gmail.com>, HTML WG <public-html@w3.org>, W3C WAI-XTECH <wai-xtech@w3.org>, Janina Sajka <janina@rednote.net>
Maciej Stachowiak wrote:
>
> On Feb 18, 2009, at 10:05 AM, David Bolter wrote:
>
>> Ben, a Bespin developer has written about some accessibility thinking
>> here:
>>
>> http://benzilla.galbraiths.org/2009/02/18/bespin-and-canvas-part-2/
>>
>> It seems reasonable to me. How do we move this conversation forward?
>
>
> The downsides to a bespin-like approach to text editing go beyond
> accessibility. Operating systems provide quite a few built-in services
> for text, and it's hard to recapture them when doing raw text drawing
> onto a bitmap surface.
>
> I tend to draw parallels to native APIs in cases like this. <canvas>
> is a raw drawing area. Most OS-level equivalents let you use
> additional low-level APIs to hook into accessibility, international
> text input, spellchecking and other system services. It makes sense to
> me to have some of these, to enable <canvas> to be more effective as a
> mechanism for bleeding-edge innovation on the Web. However, designing
> low-level APIs to handle these details in an OS-agnostic way is pretty
> challenging. This is why my initial reaction is to figure out what is
> inadequate about current HTML editing facilities for a project like
> Bespin and add the needed functionality. That's a conceptually simpler
> problem to tackle than "what are all the OS-level hooks you miss out
> on by doing your own text drawing and editing".
>
> However, it seems to me that part of the reason Bespin was written the
> way it was is simply that the authors are comfortable with that style
> of programming and enjoyed writing it that way. Past experience with
> Java's 2D graphics APIs was cited. Consider that Bespin includes a
> canvas-rendered UI widget toolkit, and it seems to me that none of the
> arguments for <canvas>-based custom text editing really apply there.
> So we may actually need someone else to try to rebuild the Bespin
> experience in a non-<canvas>-based way and report the stumbling
> blocks. But I am not sure anyone will find that to be a fun and
> motivating project.
>
> As to the specific proposal there, to have a hidden DOM under the
> canvas element, I'm not sure that is the best way to expose OS
> integration, not even just for accessibility. If such an approach
> works with acceptable accuracy and performance then it casts doubt on
> the motivation for using <canvas> at all; and in general having two
> completely separate ways of presenting the same content that must be
> kept in sync (even in the face of dynamic change) is likely to be
> error-prone.
>

I think for the approach to work, the hidden DOM could be the "model",
and the canvas could merely be a photon dependent "view" -- in terms of
MVC pattern-speak (and to borrow a TV Raman phrase).

cheers,
David
Received on Wednesday, 18 February 2009 19:08:18 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Friday, 27 April 2012 13:16:01 GMT