Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 41524d97b39bf5a4eebab351524cb582e4b28143
      
https://github.com/WebKit/WebKit/commit/41524d97b39bf5a4eebab351524cb582e4b28143
  Author: Tyler Wilcock <[email protected]>
  Date:   2026-03-17 (Tue, 17 Mar 2026)

  Changed paths:
    A 
LayoutTests/http/tests/site-isolation/accessibility/client/search-backward-from-ignored-framehost-expected.txt
    A 
LayoutTests/http/tests/site-isolation/accessibility/client/search-backward-from-ignored-framehost.html
    M Source/WebCore/accessibility/AXCrossProcessSearch.cpp
    M Source/WebCore/accessibility/AXCrossProcessSearch.h
    M Source/WebCore/accessibility/AXSearchManager.cpp
    M Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm
    M Source/WebCore/testing/Internals.cpp
    M Source/WebCore/testing/Internals.h
    M Source/WebCore/testing/Internals.idl
    M 
Source/WebKit/Resources/cocoa/NotificationAllowList/ForwardedNotifications.def
    M 
Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementClientMac.h
    M 
Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementClientMac.mm

  Log Message:
  -----------
  AX: After interacting out of a remote frame, VoiceOver sometimes cannot 
progress forwards or backwards with VO-Left / VO-Right
https://bugs.webkit.org/show_bug.cgi?id=310130
rdar://172768578

Reviewed by Joshua Hoffman.

When given an immediate-descendants search for an ignored anchor object (like a 
FrameHost), we
used to return results, which can be a problem for ATs who may think that those 
descendants
belong to the anchor, when in fact the anchor has no true descendants because 
it is ignored and
thus not truly "in tree". In this specific case, VoiceOver tried to find the 
search result
in the frame host's children, and of course cannot do so, causing broken 
behavior.

Fix this by eagerly disallowing this type of search, returning empty results.

* 
LayoutTests/http/tests/site-isolation/accessibility/client/search-backward-from-ignored-framehost-expected.txt:
 Added.
* 
LayoutTests/http/tests/site-isolation/accessibility/client/search-backward-from-ignored-framehost.html:
 Added.
* Source/WebCore/accessibility/AXCrossProcessSearch.cpp:
(WebCore::setShouldMockChildFrameSearchResultsForTesting):
(WebCore::shouldMockChildFrameSearchResultsForTesting):
(WebCore::performSearchWithCrossProcessCoordination):
* Source/WebCore/accessibility/AXCrossProcessSearch.h:
* Source/WebCore/accessibility/AXSearchManager.cpp:
(WebCore::AXSearchManager::findMatchingObjectsInternalAsStream):
* Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(attributeValueForTesting):
* Source/WebCore/testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::setShouldMockChildFrameSearchResultsForTesting):
* Source/WebCore/testing/Internals.h:
* Source/WebCore/testing/Internals.idl:
* 
Source/WebKit/Resources/cocoa/NotificationAllowList/ForwardedNotifications.def:
* Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementClientMac.h:
* Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementClientMac.mm:
(WTR::axCopyAttributeValueAsBoolean):
(WTR::AccessibilityUIElementClientMac::isIgnored const):

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



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

Reply via email to