Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: ed16a756bec625d60e1acf4defaf6b38d61dcfb0
https://github.com/WebKit/WebKit/commit/ed16a756bec625d60e1acf4defaf6b38d61dcfb0
Author: Tyler Wilcock <[email protected]>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M LayoutTests/TestExpectations
A
LayoutTests/http/tests/site-isolation/accessibility/heading-search-returns-remote-frame-expected.txt
A
LayoutTests/http/tests/site-isolation/accessibility/heading-search-returns-remote-frame.html
M LayoutTests/platform/ios/TestExpectations
M Source/WebCore/accessibility/AXCoreObject.cpp
M Source/WebCore/accessibility/AXSearchManager.cpp
M Source/WebCore/accessibility/AXSearchManager.h
M Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm
M Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.h
M Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm
Log Message:
-----------
AX iOS: Accessibility search should surface out-of-process iframes as remote
element placeholders
https://bugs.webkit.org/show_bug.cgi?id=316040
rdar://178471548
Reviewed by Chris Fleizach.
When VoiceOver navigates by rotor (e.g. headings) on iOS, the in-process
accessibility
search run by AXSearchManager silently dropped any out-of-process
(site-isolated) iframe
it crossed, so content inside cross-origin iframes was unreachable by rotor.
Now, rather than skipping a remote frame, the search records it in tree order
and returns
its AXRemoteElement platform placeholder inline. VoiceOver descends into that
placeholder
to reach the iframe's content.
The obsolete -[WebAccessibilityObjectWrapper
_accessibilityShouldUseCustomRotor] hook (which
disabled the custom rotor under site isolation) is removed.
* LayoutTests/TestExpectations:
*
LayoutTests/http/tests/site-isolation/accessibility/heading-search-returns-remote-frame-expected.txt:
Added.
*
LayoutTests/http/tests/site-isolation/accessibility/heading-search-returns-remote-frame.html:
Added.
* LayoutTests/platform/ios/TestExpectations:
* Source/WebCore/accessibility/AXCoreObject.cpp:
(WebCore::AXCoreObject::findMatchingObjectsWithin):
* Source/WebCore/accessibility/AXSearchManager.cpp:
(WebCore::appendAccessibilityObject):
(WebCore::AXSearchManager::findMatchingObjectsInternalAsStream):
* Source/WebCore/accessibility/AXSearchManager.h:
(WebCore::SearchResultEntry::remoteFrame):
(WebCore::SearchResultEntry::remoteFrameObject const):
(WebCore::SearchResultEntry::SearchResultEntry):
(WebCore::AccessibilitySearchResultStream::appendRemoteFrame):
* Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper _accessibilityShouldUseCustomRotor]): Deleted.
* Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.h:
* Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
(WTR::AccessibilityUIElementIOS::isRemotePlatformElement const):
(WTR::AccessibilityUIElementIOS::uiElementsForSearchPredicate):
Canonical link: https://commits.webkit.org/314365@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications