Bug 221716 - AX: VoiceOver incorrectly announces groups in ARIA tree instances as empty
Summary: AX: VoiceOver incorrectly announces groups in ARIA tree instances as empty
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Accessibility (show other bugs)
Version: Safari 14
Hardware: Mac (Intel) macOS 11
: P2 Normal
Assignee: chris fleizach
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2021-02-10 14:10 PST by Todd Kloots
Modified: 2021-02-23 12:04 PST (History)
10 users (show)

See Also:


Attachments
Screen recording demonstrating the bug (1.49 MB, video/quicktime)
2021-02-10 14:10 PST, Todd Kloots
no flags Details
Screen recording of an ARIA group with aria-owns announced as "0 items enclosed" (4.21 MB, video/quicktime)
2021-02-16 09:26 PST, Todd Kloots
no flags Details
Screen recording of the CodePen using Focus Navigation (12.57 MB, video/quicktime)
2021-02-16 09:34 PST, Todd Kloots
no flags Details
patch (4.46 KB, patch)
2021-02-22 13:22 PST, chris fleizach
ews-feeder: commit-queue-
Details | Formatted Diff | Diff
patch (4.55 KB, patch)
2021-02-22 16:44 PST, chris fleizach
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Todd Kloots 2021-02-10 14:10:20 PST
Created attachment 419902 [details]
Screen recording demonstrating the bug

Steps to reproduce the problem
1. Start VoiceOver
2. Go to https://codepen.io/toddlr/pen/WNoGBQO
3. Use VoiceOver navigation to navigate the ARIA tree instance
4. Observe how VoiceOver announces "Jungle Animals, expanded, 0 items enclosed"
Comment 1 Radar WebKit Bug Importer 2021-02-10 14:10:36 PST
<rdar://problem/74205567>
Comment 2 chris fleizach 2021-02-13 10:08:54 PST
I think we determined this was due to DOM hierarchy usage and that it can be fixed by making the group with aria-owns the sub-element of the tree item
Comment 3 Todd Kloots 2021-02-16 09:24:23 PST
Chris, 

This issue has been proven to persist, even when the group with aria-owns is a child of the treeitem that controls its expansion.

I've created an update prototype (https://codepen.io/toddlr/pen/MWbbree) and you can see for yourself with the following repro steps:

1. Start VoiceOver
2. Go to https://codepen.io/toddlr/pen/MWbbree
3. Use VoiceOver navigation to navigate the tree
4. Observe how VoiceOver will announce a group with aria-owns as having "0 items enclosed"

Todd
Comment 4 Todd Kloots 2021-02-16 09:26:06 PST
Created attachment 420477 [details]
Screen recording of an ARIA group with aria-owns announced as "0 items enclosed"

This is a screen recording of using https://codepen.io/toddlr/pen/MWbbree with VoiceOver navigation
Comment 5 Todd Kloots 2021-02-16 09:34:00 PST
Created attachment 420478 [details]
Screen recording of the CodePen using Focus Navigation

This example demonstrates how VoiceOver does not announce "0 items enclosed" when using keyboard shortcuts implemented in JavaScript:

1. Start VoiceOver
2. Go to https://codepen.io/toddlr/pen/MWbbree
3. Use the tab key to move focus to the ARIA tree instance
4. Navigate the tree using the up/down arrow keys
5. Observe how VoiceOver does not announce the ARIA group with aria-owns as having "0 items enclosed"
Comment 6 chris fleizach 2021-02-22 13:22:18 PST
Created attachment 421231 [details]
patch
Comment 7 chris fleizach 2021-02-22 16:44:46 PST
Created attachment 421265 [details]
patch
Comment 8 EWS 2021-02-23 12:04:09 PST
Committed r273328: <https://commits.webkit.org/r273328>

All reviewed patches have been landed. Closing bug and clearing flags on attachment 421265 [details].