Bug 239920
Summary: | AX: Label of aria grid is not announced when contained within a main landmark | ||
---|---|---|---|
Product: | WebKit | Reporter: | Devon Govett <govett> |
Component: | Accessibility | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED MOVED | ||
Severity: | Normal | CC: | andresg_22, bfulgham, cfleizach, webkit-bug-importer |
Priority: | P2 | Keywords: | InRadar |
Version: | Safari 15 | ||
Hardware: | iPhone / iPad | ||
OS: | iOS 15 |
Devon Govett
When a table with `role="grid"` is contained within a main landmark (e.g. `<main>` or `<div role="main">`), its accessibility name and description are not announced when navigating into it with VoiceOver on iOS. When the main landmark is removed, the announcement works as expected.
Reproduction steps:
1. Open https://codepen.io/devongovett/pen/zYROQpG on iOS.
2. Turn on VoiceOver, and navigate to the first column header ("Foo"). Notice that it only announces the column header, and not the `aria-label` of the table.
3. Open https://codepen.io/devongovett/pen/GRQKayy. This is the exact same code without the `<main>` wrapper.
4. Navigate to the first column header again. Notice that it announces the name of the table "Test table" in addition to the column header.
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Radar WebKit Bug Importer
<rdar://problem/92551557>
Devon Govett
Discovered a bit more info: it appears this only occurs when the grid is not the first child of the <main> landmark. If you remove the `<span>` before the table in the codepens, the issue no longer occurs. When the table is the first child, the label is announced, but at the end rather than the start of the overall announcement. Seems like maybe it's announcing the name as part of the landmark announcement since it reads "Test table, landmark". Not sure.
chris fleizach
Will need to be fixed in an iOS release rather than WebKit.
Brent Fulgham
We believe this fix is present in iOS 15.6 Beta 4 (or newer).