Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: ca8a934ed7061e80cc605100d29bdcb392586560
https://github.com/WebKit/WebKit/commit/ca8a934ed7061e80cc605100d29bdcb392586560
Author: Joshua Hoffman <[email protected]>
Date: 2026-03-18 (Wed, 18 Mar 2026)
Changed paths:
M LayoutTests/accessibility-isolated-tree/TestExpectations
M LayoutTests/accessibility/button-hit-test.html
M LayoutTests/accessibility/dynamic-changes-update-position.html
M LayoutTests/accessibility/hit-test-on-stitched-text.html
M LayoutTests/accessibility/mac/imagemap-hittest.html
M LayoutTests/accessibility/mac/line-range-for-text-marker.html
M LayoutTests/accessibility/mac/scroll-to-visible-action.html
M LayoutTests/accessibility/mac/text-marker-for-bounds.html
M LayoutTests/accessibility/table-cell-hit-test-not-column.html
M LayoutTests/accessibility/text-input-hit-test.html
M LayoutTests/resources/accessibility-helper.js
M Source/WebCore/accessibility/AXCoreObject.h
M Source/WebCore/accessibility/AXObjectCache.cpp
M Source/WebCore/accessibility/AccessibilityScrollView.cpp
M Source/WebCore/accessibility/AccessibilityScrollView.h
M Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm
M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp
M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h
M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp
M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h
M Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm
M Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h
M Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl
M Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.h
M Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm
M Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.h
M Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm
Log Message:
-----------
AX: Fix LocalFrame hit testing in layout tests
https://bugs.webkit.org/show_bug.cgi?id=310080
rdar://172721343
Reviewed by Tyler Wilcock.
With ACCESSIBILITY_LOCAL_FRAME enabled, relative frames are no longer
supported. This
is an issue for layout tests, since all coordinates for hit testing are
expected to
be in page-relative position. This patch fixes that by converting page to
screen coords
only when in test mode.
The other core fix here is recursively calling approximateHitTest on local
frames. This
allows us to pass through a hit test seemlessly, and gets around some of the
complications with wrappers + LocalFrame.
To support tests, a new method, isFrameGeometryInitialized, was added. This
will allow
layout tests to wait on initialization before performing any geometry-related
actions
or queries.
* LayoutTests/accessibility-isolated-tree/TestExpectations:
* LayoutTests/accessibility/button-hit-test.html:
* LayoutTests/accessibility/dynamic-changes-update-position.html:
* LayoutTests/accessibility/hit-test-on-stitched-text.html:
* LayoutTests/accessibility/mac/imagemap-hittest.html:
* LayoutTests/accessibility/mac/line-range-for-text-marker.html:
* LayoutTests/accessibility/mac/scroll-to-visible-action.html:
* LayoutTests/accessibility/mac/text-marker-for-bounds.html:
* LayoutTests/accessibility/table-cell-hit-test-not-column.html:
* LayoutTests/accessibility/text-input-hit-test.html:
* LayoutTests/resources/accessibility-helper.js:
* Source/WebCore/accessibility/AXCoreObject.h:
(WebCore::AXCoreObject::isFrameGeometryInitialized const):
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::AXObjectCache):
* Source/WebCore/accessibility/AccessibilityScrollView.cpp:
(WebCore::AccessibilityScrollView::isFrameGeometryInitialized const):
* Source/WebCore/accessibility/AccessibilityScrollView.h:
* Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper _accessibilityIsFrameGeometryInitialized]):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::accessibilityHitTest const):
(WebCore::AXIsolatedObject::approximateHitTest const):
(WebCore::AXIsolatedObject::screenRelativePosition const):
(WebCore::AXIsolatedObject::screenRelativeRect const):
(WebCore::AXIsolatedObject::isFrameGeometryInitialized const):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h:
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::createEmptyContent):
(WebCore::AXIsolatedTree::applyPendingChangesLocked):
(WebCore::createIsolatedObjectData):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:
(WebCore::AXIsolatedTree::isFrameGeometryInitialized const):
* Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(attributeValueForTesting):
* Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
(WTR::AccessibilityUIElement::isFrameGeometryInitialized const):
* Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
* Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.h:
* Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
(WTR::AccessibilityUIElementIOS::isFrameGeometryInitialized const):
* Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.h:
* Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:
(WTR::attributeValue):
(WTR::AccessibilityUIElementMac::isFrameGeometryInitialized const):
Canonical link: https://commits.webkit.org/309535@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications