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

Reply via email to