Bug 222623 - AX: Updating aria-hidden on a role="row" is not reflected in VoiceOver on iOS
Summary: AX: Updating aria-hidden on a role="row" is not reflected in VoiceOver on iOS
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: Accessibility (show other bugs)
Version: Safari 14
Hardware: All iOS 14
: P2 Normal
Assignee: Nobody
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2021-03-02 15:33 PST by Devon Govett
Modified: 2021-03-02 15:33 PST (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 Devon Govett 2021-03-02 15:33:33 PST
Adding and removing aria-hidden from an element with role="row" within a grid does not seem to be properly reflected in VoiceOver on iOS.

Steps to reproduce:

1. Open https://codepen.io/devongovett/pen/xxRzxpv in iOS Safari
2. Turn on VoiceOver
3. Move the VO cursor to the first row in the grid. Navigate through each subsequent row.
4. Move the VO cursor to the "Add row aria-hidden" button and press it. This adds `aria-hidden="true"` to the second row in the grid.
5. Navigate through the grid again. Notice that the content in the second row is still visible.

This works properly if aria-hidden is added to the gridcell element instead of the row. This can be seen by using the "Add gridcell aria-hidden" button in step 4 instead. The content in the second row is correctly invisible.

Also note that this appears to work properly if you press the "Add row aria-hidden" button prior to navigating through the grid. Step 3 is necessary to reproduce the problem. However, in this case, after turning off aria-hidden by pressing the button again and navigating back through the grid, the second row is still skipped even though it does not have aria-hidden anymore. Seems like a caching issue to me.
Comment 1 Radar WebKit Bug Importer 2021-03-02 15:33:49 PST
<rdar://problem/74952475>