Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: cab0b7e28656803df363cfdecec9624985665214
      
https://github.com/WebKit/WebKit/commit/cab0b7e28656803df363cfdecec9624985665214
  Author: Tyler Wilcock <[email protected]>
  Date:   2026-02-23 (Mon, 23 Feb 2026)

  Changed paths:
    A LayoutTests/accessibility/aria-owns-grid-parts-expected.txt
    A LayoutTests/accessibility/aria-owns-grid-parts.html
    M Source/WebCore/accessibility/AccessibilityNodeObject.cpp
    M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp

  Log Message:
  -----------
  AX: VoiceOver isn't able to access aria-owned rows and their cells in grids / 
tables
https://bugs.webkit.org/show_bug.cgi?id=306130
rdar://168770938

Reviewed by Joshua Hoffman.

This commit updates AccessibilityNodeObject::computeCellSlots() to look for and 
handle aria-owned elements of the
table we are computing cell slots for, mostly fixing the bug. Even after this 
though, I noticed VoiceOver still
wouldn't navigate into the table testcases in new test 
aria-owns-grid-parts.html.

The reason for that was because we were returning an empty frame for the grid, 
and VoiceOver generally ignores things
with an empty frame. This makes sense — the isolated tree gets geometry from 
paint, and these grids have no actual DOM
children, just aria-owns children, so they don't have any meaningful geometry 
from non-ARIA means.

Fix this by adding more robust frame fallbacks in 
AXIsolatedObject::relativeFrame. The tests verify we don't return
an empty frame for any of these grids.

* LayoutTests/accessibility/aria-owns-grid-parts-expected.txt: Added.
* LayoutTests/accessibility/aria-owns-grid-parts.html: Added.
* Source/WebCore/accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::computeCellSlots):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::relativeFrame const):

Canonical link: https://commits.webkit.org/308087@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to