ACTION-1540 More Updates per discussion

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. ATK/ATSPI maps a role="group" to ROLE_PANEL which really does not
mean a group. A panel could have a text area in it. So, the group role in
ATK/ATSPI was derived from the group box role in Java. Somewhere along the
line it got hosed. Here are the original defintions from
javax.accessibility

                                                                                                                      
 static AccessibleRole    GLASS_PANE                                                                                  
                          A pane that is guaranteed to be painted on top of all panes beneath it.                     
                                                                                                                      
 static AccessibleRole    GROUP_BOX                                                                                   
                          A GROUP_BOX is a simple container that contains a border around it and contains components  
                          inside it.                                                                                  
                                                                                                                      




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.

6. We need to address what happens when aria-label or aria-labelledby is
applied to a <div>. Should we it become a role of region, group, or what?
At IBM we make people put a role on it. It is indeterminate what the role
is unless the author provides it.

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 22:41:00 UTC