| Summary: | AX: aria-selected state not announced for ARIA treeitem instances | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | Todd Kloots <todd.kloots> | ||||||||
| Component: | Accessibility | Assignee: | Nobody <webkit-unassigned> | ||||||||
| Status: | RESOLVED FIXED | ||||||||||
| Severity: | Normal | CC: | bfulgham, spanage, webkit-bug-importer | ||||||||
| Priority: | P2 | Keywords: | InRadar | ||||||||
| Version: | Safari 14 | ||||||||||
| Hardware: | Mac | ||||||||||
| OS: | macOS 10.15 | ||||||||||
| Attachments: |
|
||||||||||
|
Description
Todd Kloots
2020-10-28 15:44:18 PDT
Created attachment 412584 [details]
Screen shot of the ARIA tree example with the Accessibility Inspector
I believe this could be a bug in VoiceOver. When examining the selected ARIA treeitem instance in the Accessibility Inspector, the inspector shows it as selected.
As of Mac OS 11.4 aria-selected is announced by VoiceOver BUT only if interacting using VO- navigation. If you navigate using only arrow keys WITH VO- modifiers aria-selected is not announced. The fix for this issue was needed outside the WebKit project, therefore this is being resolved as 'Moved'. This should now be fixed in shipping software. Seeing different but problematic behavior in 13.1 Beta (22C5044e), see attached video. When cell selection changes, VO continues to announce the previously selected cell as selected. This is a regression from the progress made in Monterey (12.6.1). Created attachment 463547 [details]
Select state not updating
Verified this as fixed. The root cause was the repro example (https://codepen.io/toddlr/pen/XWrGrGV) didn't implement aria-selected per the spec (https://www.w3.org/TR/wai-aria-1.2/#aria-selected). Specifically, per the spec: "Single-selection containers where the currently focused item is not selected. The selection normally follows the focus, and is managed by the user agent." So, if an ARIA tree uses aria-selected in a single-selection mode it needs to explicitly declare all unselected treeitems using aria-selected=false else VoiceOver will (per the spec) assume focus and selection are in sync. |