Bug 235068 - AX: [macOS][Accessibility][VoiceOver] VoiceOver fails to announce selected state for rows within WAI-ARIA data grid
Summary: AX: [macOS][Accessibility][VoiceOver] VoiceOver fails to announce selected st...
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: Accessibility (show other bugs)
Version: Safari 15
Hardware: Mac (Intel) macOS 12
: P2 Normal
Assignee: Nobody
URL: https://codepen.io/majornista/pen/jOG...
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2022-01-11 07:53 PST by Michael Jordan
Modified: 2022-05-09 07:39 PDT (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Jordan 2022-01-11 07:53:07 PST
VoiceOver fails to adequately announce the selected state of a row in a WAI-ARIA data grid, both when navigating between rows and when toggling selection of a row.

An example that reproduces the behavior can be found at https://codepen.io/majornista/pen/jOGxJxR (Debug Mode: https://cdpn.io/majornista/debug/jOGxJxR/mVMbGwPNBVer)

To test, open https://cdpn.io/majornista/debug/jOGxJxR/mVMbGwPNBVer in Safari on macOS with VoiceOver running.

1. Use VoiceOver cursor to navigate to the table of Pokemon characters.
2. Press Tab key to move keyboard focus to the first row in the table, "Charizard".
  - Notice that despite being selected, the selected state for the row is not announced by VoiceOver. There is no way for a non-visusal user to distinguish between selected or not selected rows.
3. Press ArrowDown key to move keyboard focus to next selected row in the table, "Venusaur".
  - Notice again that despite being selected, the selected state for the row is not announced by VoiceOver. There is no way for a non-visusal user to distinguish between selected or not selected rows.
4. Press Space key to deselect the focused row, "Venusaur".
  - In Safari, VoiceOver will announce that the row has been "removed from selection" along with the number of selected rows remaining, however without being able to identify the selected rows when navigating the table, this is of limited utility.
  - In Chrome, VoiceOver fails to provide any indication of the selected state change.
5. Press ArrowUp key to move keyboard focus to remaining selected row in the table, "Charizard".
  - Notice again that despite being selected, the selected state for the row is not announced by VoiceOver. There is no way for a non-visusal user to distinguish between selected or not selected rows.
6. Press Space key to re-select the focused row, "Charizard".
  - In Safari, VoiceOver will announce the row content, but nothing to indicate the selected state.
  - In Chrome, VoiceOver fails to provide any indication of the selected state change.
7. You can navigate between cells in the table using ArrowRight, ArrowLeft, ArrowUp or ArrowDown. VoiceOver fails to provide any indication of the current selected state for the row containing focus.
8. Pressing Space to toggle selection of the current row with focus on a cell fails to consistently announce the selected state change for the parent row.
9. You can also navigate between cells using the VoiceOver cursor for table navigation. VoiceOver again fails to provide any indication of the current selected state for the row containing focus.
10. Pressing Control+Option+Space to toggle selection of the current row by clicking with the VoiceOver cursor focused on a cell fails to consistently announce the selected state change for the parent row.

Expected behavior:
1. When navigating between rows in a WAI-ARIA grid, VoiceOver should announce the selected state for a row so that it is possible to distinguish
between selected and unselected rows.
2. When navigating by cell within a column, it would be helpful to know the selected state for the parent row, by perhaps announcing “row selected.”
3. Toggling the selected state of a row should announce the state change regardless of whether additional rows are selected.

This issue has been also reported as rdar://FB9833687 and rdar://87144833. I've opened it here as well for public reference.
Comment 1 Sam Sneddon [:gsnedders] 2022-05-09 07:39:10 PDT
rdar://87144833

(This is https://bugs.webkit.org/show_bug.cgi?id=235068)