[webkit-changes] [WebKit/WebKit] 0d448f: AX: Implement support for serving attributed strin...

Tyler Wilcock noreply at github.com
Thu Dec 12 08:36:21 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 0d448f9e4bf09635515def81acc656df0fed5d31
      https://github.com/WebKit/WebKit/commit/0d448f9e4bf09635515def81acc656df0fed5d31
  Author: Tyler Wilcock <tyler_w at apple.com>
  Date:   2024-12-12 (Thu, 12 Dec 2024)

  Changed paths:
    A LayoutTests/accessibility/ax-thread-text-apis/attributed-string-spanning-multiple-elements-expected.txt
    A LayoutTests/accessibility/ax-thread-text-apis/attributed-string-spanning-multiple-elements.html
    M Source/WebCore/accessibility/AXCoreObject.h
    M Source/WebCore/accessibility/AXLogger.cpp
    M Source/WebCore/accessibility/AXTextMarker.cpp
    M Source/WebCore/accessibility/AXTextMarker.h
    M Source/WebCore/accessibility/AccessibilityNodeObject.cpp
    M Source/WebCore/accessibility/AccessibilityNodeObject.h
    M Source/WebCore/accessibility/AccessibilityObject.h
    M Source/WebCore/accessibility/cocoa/AXTextMarkerCocoa.mm
    M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp
    M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h
    M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h
    M Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm

  Log Message:
  -----------
  AX: Implement support for serving attributed strings off the main-thread for ranges that span multiple elements
https://bugs.webkit.org/show_bug.cgi?id=284193
rdar://problem/141067345

Reviewed by Chris Fleizach.

This commit implements support for serving attributed strings off the main-thread for ranges that span multiple elements.
Similar to AXTextMarkerRange::toString(), we traverse from the object starting the range to the end, building an attributed
string as we go.

This patch also fixes a bug in the off-main-thread text marker implementation where we did not emit two newlines for
paragraph elements, and a tab for table cells as mandated by the spec (https://html.spec.whatwg.org/multipage/dom.html#the-innertext-idl-attribute).

* LayoutTests/accessibility/ax-thread-text-apis/attributed-string-spanning-multiple-elements-expected.txt: Added.
* LayoutTests/accessibility/ax-thread-text-apis/attributed-string-spanning-multiple-elements.html: Added.
* Source/WebCore/accessibility/AXCoreObject.h:
(WebCore::AXCoreObject::emitsNewlineAfter const):
* Source/WebCore/accessibility/AXLogger.cpp:
(WebCore::operator<<):
* Source/WebCore/accessibility/AXTextMarker.cpp:
(WebCore::AXTextMarkerRange::toString const):
(WebCore::AXTextMarker::findMarker const):
(WebCore::Accessibility::findObjectWithRuns):
(WebCore::findObjectWithRuns): Deleted.
* Source/WebCore/accessibility/AXTextMarker.h:
(WebCore::Accessibility::findObjectWithRuns):
* Source/WebCore/accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::emitTextAfter const):
(WebCore::AccessibilityNodeObject::shouldEmitNewlinesBeforeAndAfterNode const): Deleted.
* Source/WebCore/accessibility/AccessibilityNodeObject.h:
* Source/WebCore/accessibility/AccessibilityObject.h:
* Source/WebCore/accessibility/cocoa/AXTextMarkerCocoa.mm:
(WebCore::AXTextMarkerRange::toAttributedString const):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::initializeProperties):
(WebCore::AXIsolatedObject::setProperty):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h:
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:
* Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):

Canonical link: https://commits.webkit.org/287745@main



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list