2011-01-22 12:24:45: Created issue 'A comprehensive, semantic image map specification' nickname image-map-spec owned by Sam Ruby on product , description 'Image maps have a complex structure which UAs and AT understand differently. At the same time HTML5 adds ARIA, which also have no particular model for how image maps works. This requires as fine grained understandig and specification of image maps.
The complex structure is caused by the fact that elements outside an <img> affects the image - thus conceptually, the <area>s are inside (or "around" - like anormal anchor elment) the <img> even if the container <map> element is outside the image map. (On the other side, image maps for object@usmap can be placed _inside_ the <object>.)
Examples of UA/AT differences:
- at least one UA (Opera) seems treat <area> elements of the <map> element as the content of the img@usemap element, causing that the @alt of the img@usemap element is ignored.
- another (VoiceOver) seems to treat image maps quite differently on OSX 10.6 compared to 10.5, and it is not easy to conclude if there is progress 10.6
- some AT (Jaws) seems to treat stray <area> elements as links, even outside <map>
- some AT treat the <area> as a links if they have @role="link", but VoiceOver seems not to
- <area> isn't listed amongst the interactive elements, while img@usemap/object@usemap are listed as interactive elements. E.g. <area> has role="link" but still isn't considered interactive (because, I assume, it "interactivates" the image and not itself.)
The editor's solution to Bug 10518 says that authors may place both <area> and <a> in the same <map>, for better maintainance. But HTML4 (see HTML4 section 13.6 Image maps) then has rules which says that UAs then should ignore either the <area>s or the <a>s. (Yes, this is linked to the fact that <a> in HTML4 can take the @coords and @shape attributes. However, in my experience, some AT (VoiceOver, it could seem) may still work that way.) And, as for instance text based browsers do handle the <area> elements, and we don't want them - or any
other UA/AT - to get a double set of links.
- there is no method in ARIA for pointing from the img@usemap element to the <map> element. And this perhaps have implications of what one should *not* do. E.g. to point from the img@usemap element to the <map> element with aria-labelledby might not be a good idea, for instance, unless the purpose is to make the AT not treat the image map as an
- can the image of img@usemap be presentational? I.e. can it have an empty @alt ? And does this affect how AT treat the area elements.
This issue is not about "fixing ARIA", but about establishing a image map model which, eventually, lets ARIA implement image maps. (In that regard, I also mentioned image maps in this comment to on the ARIA 1.0 spec
The purpose of this issue is to bring a clear specification of image maps with a clear understanding of how ARIA fits in.
Associated bug report:
(issue raised on behalf of Leif Halvard Silli)' non-public [Sam Ruby]