Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 79a7a8e073b5a255fb91e9f3dfb28559b171468b
https://github.com/WebKit/WebKit/commit/79a7a8e073b5a255fb91e9f3dfb28559b171468b
Author: Dominic Mazzoni <[email protected]>
Date: 2026-09-29 (Tue, 29 Sep 2026)
Changed paths:
R
LayoutTests/http/tests/site-isolation/accessibility/client/search-backward-from-ignored-framehost-expected.txt
R
LayoutTests/http/tests/site-isolation/accessibility/client/search-backward-from-ignored-framehost.html
A
LayoutTests/http/tests/site-isolation/accessibility/client/search-from-remote-frame-host-expected.txt
A
LayoutTests/http/tests/site-isolation/accessibility/client/search-from-remote-frame-host.html
A
LayoutTests/http/tests/site-isolation/accessibility/search-from-remote-frame-host-expected.txt
A
LayoutTests/http/tests/site-isolation/accessibility/search-from-remote-frame-host.html
A
LayoutTests/http/wpt/site-isolation/accessibility/search-from-remote-frame-host-shared-process.sub-expected.txt
A
LayoutTests/http/wpt/site-isolation/accessibility/search-from-remote-frame-host-shared-process.sub.html
M LayoutTests/platform/mac/TestExpectations
M Source/WebCore/accessibility/AXObjectCache.cpp
M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp
M Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm
Log Message:
-----------
AX: work around framework bug in order to enable VoiceOver to search AX tree
with site isolation on
rdar://188656977
Reviewed by Tyler Wilcock.
A longstanding framework bug prevents apps from passing a remote AX
element as an argument to an AX API. To work around this, VoiceOver
walks up to find the nearest ancestor and passes that instead.
Unfortunately this can lead to VoiceOver getting stuck in a loop when
exploring an out-of-process iframe, if the nearest ancestor is the
same as the receiver element.
Work around this by detecting this case - where the only child of the
receiver element is a remote child, and the start object is equal to
the receiver - and returning no results, tricking VoiceOver into
continuing its search.
The underlying framework bug has been fixed, but this workaround is
needed because Safari ships to downlevel OS releases.
Tests:
http/tests/site-isolation/accessibility/client/search-from-remote-frame-host.html
http/tests/site-isolation/accessibility/search-from-remote-frame-host.html
http/wpt/site-isolation/accessibility/search-from-remote-frame-host-shared-process.sub.html
*
LayoutTests/http/tests/site-isolation/accessibility/client/search-backward-from-ignored-framehost-expected.txt:
Removed.
*
LayoutTests/http/tests/site-isolation/accessibility/client/search-backward-from-ignored-framehost.html:
Removed.
*
LayoutTests/http/tests/site-isolation/accessibility/client/search-from-remote-frame-host-expected.txt:
Added.
*
LayoutTests/http/tests/site-isolation/accessibility/client/search-from-remote-frame-host.html:
Added.
*
LayoutTests/http/tests/site-isolation/accessibility/search-from-remote-frame-host-expected.txt:
Added.
*
LayoutTests/http/tests/site-isolation/accessibility/search-from-remote-frame-host.html:
Added.
*
LayoutTests/http/wpt/site-isolation/accessibility/search-from-remote-frame-host-shared-process.sub-expected.txt:
Added.
*
LayoutTests/http/wpt/site-isolation/accessibility/search-from-remote-frame-host-shared-process.sub.html:
Added.
* LayoutTests/platform/mac/TestExpectations:
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::onRemoteFrameInitialized):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::createIsolatedObjectData):
* Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(handleUIElementsForSearchPredicateAttribute):
Canonical link: https://commits.webkit.org/322205@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications