[Webkit-unassigned] [Bug 278928] New: AX: AXTextOperation over multiple ranges is entirely broken

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Aug 30 09:13:50 PDT 2024


https://bugs.webkit.org/show_bug.cgi?id=278928

            Bug ID: 278928
           Summary: AX: AXTextOperation over multiple ranges is entirely
                    broken
           Product: WebKit
           Version: Safari 18
          Hardware: All
                OS: All
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: Accessibility
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: samar.sunkaria at grammarly.com
                CC: andresg_22 at apple.com,
                    webkit-bug-importer at group.apple.com

When performing an AXTextOperation over multiple ranges (_in descending order of their position_), typically only the first range is replaced. In a contenteditable, multiple ranges might be replaced correctly if they aren’t located within the same node.

This problem is consistently reproducible. However, it is much harder (though not impossible) to reproduce when a non-smart replacement is performed (as proposed in https://bugs.webkit.org/show_bug.cgi?id=278458).

This seems to happen whenever the replacement isn't executed using the `ReplaceSelectionCommand::performTrivialReplace` and instead takes the longer path in `ReplaceSelectionCommand::doApply`. While the initial replacement is performed correctly, subsequent replacements fail because text selection fails on the following iteration of `AccessibilityObject::performTextOperation`.

After the first replacement the SimpleRanges stored in `AccessibilityTextOperation` are orphaned, and can no longer be used for performing a selection; ever since https://bugs.webkit.org/show_bug.cgi?id=221942 was introduced. That change likely caused this bug.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20240830/d973aa79/attachment-0001.htm>


More information about the webkit-unassigned mailing list