Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 220fa2de7c92a9ae70c777cfb02ccf44d5cf602c
https://github.com/WebKit/WebKit/commit/220fa2de7c92a9ae70c777cfb02ccf44d5cf602c
Author: Joshua Hoffman <[email protected]>
Date: 2026-04-16 (Thu, 16 Apr 2026)
Changed paths:
M LayoutTests/accessibility/mac/client/absolute-position-iframe.html
M LayoutTests/accessibility/mac/webkit-scrollarea-position-expected.txt
M LayoutTests/accessibility/mac/webkit-scrollarea-position.html
M LayoutTests/platform/mac-wk2/TestExpectations
M Source/WTF/wtf/PlatformEnableCocoa.h
M Source/WebCore/accessibility/AXObjectCache.cpp
M Source/WebCore/accessibility/AccessibilityObject.cpp
M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp
M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp
M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h
M Source/WebKit/UIProcess/WebPageProxy.cpp
Log Message:
-----------
AX: Enable ACCESSIBILITY_LOCAL_FRAME on all Apple platforms
https://bugs.webkit.org/show_bug.cgi?id=312412
rdar://174864389
Reviewed by Tyler Wilcock.
This PR enables ACCESSIBILITY_LOCAL_FRAME on all Apple/Cocoa platforms.
There are some text and behavior fixes included that were required to
keep all layout tests passing:
- Viewport vs web area positioning: with ACCESSIBILITY_LOCAL_FRAME, both
the scroll area and web area had the same position, both accounting for
scroll. But, our prior behavior returned the position of the scroll view
as its viewport position. This PR updates that by removing the scroll
position when computing it's frame.
- There was sometimes a race where the frame geometry arrived before a tree
was stored. The fix for this is to only update the frame geometry after
we store the tree, to prevent this.
- When we change accessibility mode from off to an on state, we now eagerly
update all frame geometries
- webkit-scrollarea-position.html was updated to our modern style, with
more resillient expectations.
- platform/mac-wk2/TestExpectations was updated to skip relative frame-
related tests, which are not supported with ACCESSIBILITY_LOCAL_FRAME.
* LayoutTests/accessibility/mac/webkit-scrollarea-position-expected.txt:
* LayoutTests/accessibility/mac/webkit-scrollarea-position.html:
* LayoutTests/platform/mac-wk2/TestExpectations:
* Source/WTF/wtf/PlatformEnableCocoa.h:
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::setFrameGeometry):
* Source/WebCore/accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::convertFrameToSpace const):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::convertFrameToSpace const):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::createEmpty):
(WebCore::AXIsolatedTree::create):
(WebCore::AXIsolatedTree::setFrameGeometry):
(WebCore::AXIsolatedTree::updateFrameGeometryAndScrollPositionIfNeeded):
(WebCore::AXIsolatedTree::updateRootScreenRelativePosition):
(WebCore::AXIsolatedTree::applyPendingChangesLocked):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:
(WebCore::AXIsolatedTree::frameScrollPosition const):
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setAccessibilityMode):
Canonical link: https://commits.webkit.org/311369@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications