ACTION-1561

The Accessibility API mapping team has been wrestling with cross platform
challenges around how to expose generic containers that have no semantic
meaning but which retain structure in the mapping of accessible content.

Here are the issues:

1. <div> are not mapped with consistent mappings across all platforms.
Some platforms map a div to a group (Safari and IE) while others map it to
a panel (ATK-ATSPI) and others map it to a section (FF, Chrome).

2. MacOSX maps <div> and to axGroup while role="group" which has real
semantic meaning that the items mapped in the group have a real association
associated with each other such as a group of associated text boxes. A div
on its own has no semantic meaning other that to act as a generic container
of stuff.

3. When applying role to presentation we have different role mappings based
on the original structure of the content in HTML. For example, Firefox maps
table cells to roles of "textbox" where list items get converted to
paragraphs. ATK/ATSPI maps these to a PANEL role where MacOSX maps these to
axGroup

4. HTML5 introduces a <section> element which maps to a region role yet
unless it actually has a label associated with it it really has not
semantic value. It really should be treated like a <div>

5. SVG is now using role group for containers having alternative text.
Should these be sections or real groupings? This is a a concern. Again I
believe wer are oveloading group semantics.

What we need is a consistent implementation that does not confuse a generic
section in the document with a semantic grouping and would fit well with
section in HTML5.

One proposal:

1. Map <div> to a role of section on all platforms or a single generic role
on all platforms that says this is just an container and nothing more
2. When applying role="presentation" map the semantic HTML structural
alements to the role determined in 1
3. In HTML5 map <section> to the generic role in 1. and map it to region
when a label is applied to it.
4. Regarding 1. for a Mac either make the generic container a new section
role and leave axGroup for role="group" or make role="group" map to
something different than axGroup and leave axGroup generic.


Rich Schwerdtfeger

Received on Monday, 19 January 2015 16:22:10 UTC