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

Reply via email to