Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: e67fcd568d5f0ea91b202f58514c73549dbe5ce2
https://github.com/WebKit/WebKit/commit/e67fcd568d5f0ea91b202f58514c73549dbe5ce2
Author: Joshua Hoffman <[email protected]>
Date: 2025-02-11 (Tue, 11 Feb 2025)
Changed paths:
A
LayoutTests/accessibility/ax-thread-text-apis/line-range-at-soft-breaks-expected.txt
A
LayoutTests/accessibility/ax-thread-text-apis/line-range-at-soft-breaks.html
M Source/WebCore/accessibility/AXObjectCache.cpp
M Source/WebCore/accessibility/AXObjectCache.h
M Source/WebCore/accessibility/AXTextMarker.cpp
M Source/WebCore/accessibility/AXTextMarker.h
M Source/WebCore/accessibility/mac/AXObjectCacheMac.mm
M Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.h
M Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm
M Source/WebKit/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm
M Tools/WebKitTestRunner/InjectedBundle/AccessibilityController.h
M Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityController.idl
M Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityControllerMac.mm
Log Message:
-----------
AX: [AX Thread Text APIs] CurrentLine is sometimes missing the first
character of a line
https://bugs.webkit.org/show_bug.cgi?id=287438
rdar://143915387
Reviewed by Tyler Wilcock.
Due to some bugs in `findLine`, the current line range would sometimes miss the
first character
in a line. This is because `atLineBoundaryForDirection` didn't handle text
affinity, so if we
have the following text, with a soft line break after hello:
Hello
world
A text marker after the 'w' in world would be considered at a line break with
our old implementation,
which would just check the previous text marker's line (which could be on the
previous line). This PR
re-writes `atLineBoundaryForDirection` to use line offsets instead, which
should be more robust
against these affinity cases.
This PR also includes some text marker enhancements:
- Iterating in `findLine` now follows the direction of the search, which is
more accurate and
aligned with our other `find` methods.
- A new debug method `printTrees` was added to the WKTR accessibility
controller to more easily
log the AX trees to standard error when debugging.
- This change includes added a new optional paramater to treeData for
streaming options.
- More TextMarkerOrigin fields were added, with new parameters where necessary
to pipe them
through.
- An update to `focusedLocalFrame`, co-authored by Alex Christensen, to fix a
memory-safety
issue with accessing m_page.
*
LayoutTests/accessibility/ax-thread-text-apis/line-range-at-soft-breaks-expected.txt:
Added.
* LayoutTests/accessibility/ax-thread-text-apis/line-range-at-soft-breaks.html:
Added.
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::textMarkerDataForCharacterOffset):
(WebCore::AXObjectCache::textMarkerDataForVisiblePosition):
(WebCore::AXObjectCache::treeData):
* Source/WebCore/accessibility/AXObjectCache.h:
* Source/WebCore/accessibility/AXTextMarker.cpp:
(WebCore::TextMarkerData::TextMarkerData):
(WebCore::AXTextMarker::AXTextMarker):
(WebCore::AXTextMarker::atLineBoundaryForDirection const):
(WebCore::AXTextMarker::findLine const):
(WebCore::AXTextMarker::lineRange const):
* Source/WebCore/accessibility/AXTextMarker.h:
(WebCore::originToString):
* Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:
(WebCore::textMarkerForCharacterOffset):
* Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.h:
* Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityPerformAction:]):
(-[WebAccessibilityObjectWrapper _accessibilityPrintTrees]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
* Source/WebKit/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm:
(-[WKAccessibilityWebPageObjectBase focusedLocalFrame]):
* Tools/WebKitTestRunner/InjectedBundle/AccessibilityController.h:
(WTR::AccessibilityController::printTrees):
* Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityController.idl:
* Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityControllerMac.mm:
(WTR::AccessibilityController::printTrees):
Canonical link: https://commits.webkit.org/290212@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes