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

Reply via email to