- From: Weston Ruter <westonruter@gmail.com>
- Date: Fri, 28 Aug 2009 14:51:32 -0700
- To: joshue.oconnor@cfit.ie
- Cc: Lachlan Hunt <lachlan.hunt@lachy.id.au>, John Foliot <foliot@wats.ca>, HTMLWG WG <public-html@w3.org>, W3C WAI-XTECH <wai-xtech@w3.org>
- Message-ID: <fb8299e10908281451v6a56dc68x3ae3eb8d02fa5776@mail.gmail.com>
Why doesn't the <canvas> element allow the @usemap attribute? Event handlers could then be attached to a canvas via <map> areas. Such client-side image maps would also make canvas more accessible. On Fri, Jul 10, 2009 at 2:18 AM, Joshue O Connor <joshue.oconnor@cfit.ie>wrote: > Lachlan Hunt wrote: > > Joshue O Connor wrote: > >> Lachlan Hunt wrote: > >>> Joshue O Connor wrote: > >>>> This kind of thing seems to me a ridiculous level of complexity and a > >>>> retrograde step in web development. > >>> Rather than simply rejecting the idea outright, could you elaborate on > >>> specifically what was wrong with the techniques I described? > >> > >> Its clever, in that - yes it /could/ work and fair play for you having > >> the smarts for coming up with it. However, its just (and no slight on > >> you) very complicated. In particular if you look at this through the > >> lens of an author who would have to do the /extra/ steps you describe to > >> make stuff accessible. They just won't bother. When a declarative markup > >> language is used it has inherent properties that are recognised by AT. > >> <canvas> etc is just a drawing API with no such properties - any > >> solution will be a hack really. > > > > Indeed. But the advantage of looking at solutions that use nothing more > > that what we already have available today is that it helps to identify > > possible concepts to build upon, specific issues to address and, if > > anything we have already works well, to avoid needlessly re-inventing > > the wheel. > > True but it needs to be very simple, and ideally the language of the > spec should support and enable the creation of accessible content > automagically - right? The idea that there are better solutions out > there is a common mantra in these parts, <canvas> is one of our greatest > challenges. > > >> Yes, the WG could strongly advocate the use of<canvas> for nothing > >> other than eye candy or pretty pictures. In fact the spec already pretty > >> much states that it shouldn't be used when there is a better solution - > >> not that many will listen as the genie is already out. > > > > This doesn't really sound like a solution to the problems, so much as it > > sounds like trying to stop a wave coming up the beach by standing in the > > water in front of it. > > Yes, but it is the current advice in the spec. [1] > > <quote> > Authors should not use the canvas element in a document when a more > suitable element is available. > </quote> > > That could become the spec equivalent of "Cigarettes may damage your > health" - in other words redundant verbiage that may as well say "Smoke > 'em if you got 'em". FWIW <canvas> is really interesting for what it > does - and I have seen some clever things done with it - it is just very > flawed (in terms of inherent semantics) and these flaws could seriously > effect PWDs who will not be able to access <canvas> content at all > without some committed developer magic, care and attention. If the > solution ain't elegant then the examples in the wild that we will be > looking at in a few years time to support the retention of <canvas> in > HTML 6 will be pretty poor...sound familiar? > > I just don't think it will be too successful. It > > seems clear that people are going to keep finding lots of innovative > > ways to use canvas to solve their problems if they perceive it as having > > some advantage over the alternatives. So instead of pushing against > > developers, I think it's better to work with them to improve the tools > > they want to use. > > > > John Foliot wrote: > >> Lachlan Hunt wrote: > >>> One relatively simple way to make that particular example accessible > >>> would be to make use of an image map. The technique could work > >>> something like this. > >>> > >>> Overlay the canvas with a stretched transparent image of the same size > >>> has the canvas. The image then needs to be associated with an image > >>> map. > >> > >> What size is this stretched image? 1024 X 768? 800 X 600? Something > else? > >> How are you going to know? > > > > Making two elements the same size and positioning one on top of the > > other isn't really that hard. Working within the constraints of using > > only existing tools, that was just a hack to workaround the limitation > > of canvas not having its own usemap attribute. > > If there was an editor that supported this kind of functionality - then > yes it maybe wouldn't be too hard. The challenge is maybe similar to > old school rollovers and even PDF and how you tag those documents. > However, such as thing doesn't exist yet and I guess when you floated > your idea - my first thought was of coming up with image map > co-ordinates that would scale as browser content re-sizes, then mapping > all that to the various <canvas> elements, never mind the heavy reliance > on scripting to capture/emulate onclick events. In short, if there was > an editor that could do all this stuff and adopt a constraints based > approach that was weighted in favour of the creation of accessible > content ( promoted the author to add these image maps and added the > necessary scripts even if the author knows zip about JS and basically, > not let anything out of the local host directory that was not > accessible) - then yeah. > > > > In IRC, some of us discussed a few more techniques that built on these > > concepts to find ways of doing exactly that, including the following: > > > > * An API to declare active regions which can receive focus and events, > > including both keyboard and mouse. These could be positioned either by > > explicitly specifying positions, or have it more automatic somehow based > > on the areas in which the script draws. This may have some advantages > > for authors that would otherwise have to calculate what was clicked > > manually based on the mouse position. > > What about using ARIA and dynamically building a DOM? > > > * APIs that, while the canvas is focussed, let script take manual > > control of navigation events and be able to respond with appropriate > > information. > > Well, I am not an API author but if those things are do-able - go for > it. However, to totally play devils advocate here if I was an author and > I wanted to do <canvas> type stuff but I kinda _slightly_ cared about > accessibility - if the <canvas> framework looked too complex I would > just build all my widgets in Flash. It is also a vector based drawing > app and while not perfect - the accessibility capabilities of Flash/Flex > are certainly improving - and I have been impressed with some of what I > have seen in the latest audits I have done of applications using these > platforms. > > Cheers > > Josh > > [1] http://www.whatwg.org/specs/web-apps/current-work/#the-canvas-element > > > > > > >
Received on Friday, 28 August 2009 21:52:40 UTC