Bug 169924 - AX: WebKit should not expose redundant AXGroups with missing role when the label is the same as the contents
Summary: AX: WebKit should not expose redundant AXGroups with missing role when the la...
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: Accessibility (show other bugs)
Version: WebKit Nightly Build
Hardware: All All
: P2 Normal
Assignee: Nobody
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2017-03-21 14:22 PDT by James Craig
Modified: 2017-03-23 09:41 PDT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description James Craig 2017-03-21 14:22:52 PDT
AX: WebKit should not expose redundant AXGroups with missing role when the label is the same as the contents... Unless there are click/key event handlers or some other heuristic indicator of meaning.

VoiceOver users on staff found the following markup pattern problematic:

<div aria-label="1">1</div>
<div aria-label="2">2</div>
<div aria-label="3">3</div>

By default, WebKit exposes layout blocks as an AXGroup, and the aria-label as the AXTitle. This means users with bookended groups redundantly hear:

"1 group, 1, end of group"
"2 group, 3, end of group"
"3 group, 3, end of group"

Yes, it's an authoring problem, but it happens enough that I think we should work around it.

Proposal: On generic elements (GroupRole, not ApplicationGroupRole):
- If there is no explicit role, (With bug 169810, ARIA grouping roles will be WebCore ApplicationGroupRole, not WebCore GroupRole.)
- and if there is no click or key-down/up/press handler (nothing to make the AXGroup actionable)
- and if the content string matches the computed @aria-labelledby or @aria-label string...

Expose only the generic view: AXGroup with no AXTitle. VoiceOver will read the contents.
Comment 1 Radar WebKit Bug Importer 2017-03-23 09:38:26 PDT
<rdar://problem/31221183>