Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 51ff7b13c7cad0be9490546d9ed82649e098a1fc
      
https://github.com/WebKit/WebKit/commit/51ff7b13c7cad0be9490546d9ed82649e098a1fc
  Author: Joshua Hoffman <jhoffma...@apple.com>
  Date:   2025-03-03 (Mon, 03 Mar 2025)

  Changed paths:
    A LayoutTests/accessibility/ax-thread-text-apis/svg-duplicated-expected.txt
    A LayoutTests/accessibility/ax-thread-text-apis/svg-duplicated.html
    M Source/WebCore/accessibility/AccessibilityRenderObject.cpp
    M Source/WebCore/accessibility/AccessibilitySVGRoot.h

  Log Message:
  -----------
  AX: Remote SVGs can share renderers, breaking the accessibility tree
https://bugs.webkit.org/show_bug.cgi?id=289001
rdar://145677641

Reviewed by Tyler Wilcock.

When creating text marker ranges in AXTextMarker, we compute the order of the 
start and end text marker
by locating them in the accessibility tree. This method, 
`partialOrderByTraversal` walks the tree forward
and backward until it can locate one marker starting from the other. This walk 
uses nextInPreOrder and
previousInPreOrder, which walk the tree including ignored objects.

This new behavior, enabled with the AX Thread Text APIs feature, exposed an 
issue with remote SVG elements:
remote SVG elements can share renderers, which leads to two accessibility 
objects having the same child
(with the same AXID). This creates issues when walking the tree, and can lead 
us into an infinite loop.

To prevent this, if we detect that an SVG root object is already parented in 
another valid AX object, don't
add it as a child of a different element.

* LayoutTests/accessibility/ax-thread-text-apis/svg-duplicated-expected.txt: 
Added.
* LayoutTests/accessibility/ax-thread-text-apis/svg-duplicated.html: Added.
* Source/WebCore/accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::addRemoteSVGChildren):
* Source/WebCore/accessibility/AccessibilitySVGRoot.h:

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to