Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 320c6e56b4dfe6e7b5a59864d1ca1399c83bb60f
https://github.com/WebKit/WebKit/commit/320c6e56b4dfe6e7b5a59864d1ca1399c83bb60f
Author: Tyler Wilcock <[email protected]>
Date: 2026-06-10 (Wed, 10 Jun 2026)
Changed paths:
A
LayoutTests/accessibility/aria-grid-with-presentational-sections-expected.txt
A LayoutTests/accessibility/aria-grid-with-presentational-sections.html
M Source/WebCore/accessibility/AccessibilityNodeObject.cpp
Log Message:
-----------
AX: Recent Events table on https://parks.wa.gov is reported as empty by
VoiceOver but works fine in other browsers
https://bugs.webkit.org/show_bug.cgi?id=316702
rdar://179156593
Reviewed by Chris Fleizach.
When a native <table role="grid"> uses native <thead>/<tbody> rowgroups whose
direct <tr> children are role="presentation", with the real role="row" rows
wrapped in a nested presentational <table>, VoiceOver would report the grid
as empty. This is the structure the FullCalendar JS library generates.
This happened because AccessibilityNodeObject::computeCellSlots()'s
processRowGroup
had two strategies:
1. A strict path that only iterates a native section's direct <tr> children
2. A forgiving path that descends the accessibility tree (flattening
presentational
scaffolding) for role="rowgroup" elements. Native elements always took the
strict
path, so presentational <tr> rows were skipped and the real nested rows
were never
found.
With this commit, we route ARIA tables (grid, treegrid, table) through the
descent path
even when the rowgroup is a native element, consistent with the forgiving
ARIA-grid handling in
processTableDescendant. Native (non-ARIA) data tables keep the strict path.
*
LayoutTests/accessibility/aria-grid-with-presentational-sections-expected.txt:
Added.
* LayoutTests/accessibility/aria-grid-with-presentational-sections.html: Added.
* Source/WebCore/accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::computeCellSlots):
Canonical link: https://commits.webkit.org/314901@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications