Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 40976d39a2c1327795871923d5f90f7329d20537
      
https://github.com/WebKit/WebKit/commit/40976d39a2c1327795871923d5f90f7329d20537
  Author: Dominic Mazzoni <[email protected]>
  Date:   2026-08-27 (Thu, 27 Aug 2026)

  Changed paths:
    A 
LayoutTests/accessibility/isolated-tree/mac/line-for-index-at-end-of-value-expected.txt
    A 
LayoutTests/accessibility/isolated-tree/mac/line-for-index-at-end-of-value.html
    A 
LayoutTests/accessibility/isolated-tree/mac/range-for-line-trailing-blank-line-expected.txt
    A 
LayoutTests/accessibility/isolated-tree/mac/range-for-line-trailing-blank-line.html
    M 
LayoutTests/accessibility/isolated-tree/mac/range-for-line-with-block-line-breaks-expected.txt
    M 
LayoutTests/accessibility/isolated-tree/mac/range-for-line-with-block-line-breaks.html
    M 
LayoutTests/accessibility/isolated-tree/mac/textarea-line-range-after-dynamic-edit-expected.txt
    M 
LayoutTests/accessibility/isolated-tree/mac/textarea-line-range-after-dynamic-edit.html
    M 
LayoutTests/accessibility/isolated-tree/mac/textarea-line-range-with-trailing-newline-expected.txt
    M 
LayoutTests/accessibility/isolated-tree/mac/textarea-line-range-with-trailing-newline.html
    A 
LayoutTests/accessibility/isolated-tree/textarea-line-for-index-expected.txt
    A LayoutTests/accessibility/isolated-tree/textarea-line-for-index.html
    A LayoutTests/accessibility/mac/line-for-index-at-end-of-value-expected.txt
    A LayoutTests/accessibility/mac/line-for-index-at-end-of-value.html
    M 
LayoutTests/accessibility/mac/range-for-line-trailing-blank-line-expected.txt
    M LayoutTests/accessibility/mac/range-for-line-trailing-blank-line.html
    M 
LayoutTests/accessibility/mac/range-for-line-with-block-line-breaks-expected.txt
    M LayoutTests/accessibility/mac/range-for-line-with-block-line-breaks.html
    M 
LayoutTests/accessibility/mac/textarea-line-range-after-dynamic-edit-expected.txt
    M LayoutTests/accessibility/mac/textarea-line-range-after-dynamic-edit.html
    M 
LayoutTests/accessibility/mac/textarea-line-range-with-trailing-newline-expected.txt
    M 
LayoutTests/accessibility/mac/textarea-line-range-with-trailing-newline.html
    M LayoutTests/accessibility/textarea-line-for-index-expected.txt
    M Source/WebCore/accessibility/AXTextMarker.cpp
    M Source/WebCore/accessibility/AccessibilityObject.cpp
    M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp

  Log Message:
  -----------
  AX: AXLineForIndex fails when passed an index equal to the length of the field
https://bugs.webkit.org/show_bug.cgi?id=322690
rdar://185961392

Reviewed by Tyler Wilcock.

If there are n characters in a text field, then AXLineForIndex should
return a valid line index range for 0...n, inclusive. AXInsertionPointLineNumber
already handled this case correctly.

There were two separate bugs:

AccessibilityObject::doAXLineForIndex passed lastIndexOK = false to
AccessibilityRenderObject::visiblePositionForIndex, so it returned null instead
of a valid VisiblePosition at the text length.

AXTextMarker::lineNumberForIndex walked lines and asked whether the index fell
inside one, but the index at the very end of the last line fell outside every 
line.

Also found and fixed while writing these tests: 
AXIsolatedObject::insertionPointLineNumber
failed for a multiline field with no text, now fixed to return 0.

Tests: accessibility/isolated-tree/mac/line-for-index-at-end-of-value.html
       accessibility/isolated-tree/mac/range-for-line-trailing-blank-line.html
       accessibility/isolated-tree/textarea-line-for-index.html
       accessibility/mac/line-for-index-at-end-of-value.html

* 
LayoutTests/accessibility/isolated-tree/mac/line-for-index-at-end-of-value-expected.txt:
 Added.
* 
LayoutTests/accessibility/isolated-tree/mac/line-for-index-at-end-of-value.html:
 Added.
* 
LayoutTests/accessibility/isolated-tree/mac/range-for-line-trailing-blank-line-expected.txt:
 Copied from 
LayoutTests/accessibility/mac/range-for-line-trailing-blank-line-expected.txt.
* 
LayoutTests/accessibility/isolated-tree/mac/range-for-line-trailing-blank-line.html:
 Copied from 
LayoutTests/accessibility/mac/range-for-line-trailing-blank-line.html.
* 
LayoutTests/accessibility/isolated-tree/mac/range-for-line-with-block-line-breaks-expected.txt:
* 
LayoutTests/accessibility/isolated-tree/mac/range-for-line-with-block-line-breaks.html:
* 
LayoutTests/accessibility/isolated-tree/mac/textarea-line-range-after-dynamic-edit-expected.txt:
* 
LayoutTests/accessibility/isolated-tree/mac/textarea-line-range-after-dynamic-edit.html:
* 
LayoutTests/accessibility/isolated-tree/mac/textarea-line-range-with-trailing-newline-expected.txt:
* 
LayoutTests/accessibility/isolated-tree/mac/textarea-line-range-with-trailing-newline.html:
* LayoutTests/accessibility/isolated-tree/textarea-line-for-index-expected.txt: 
Copied from LayoutTests/accessibility/textarea-line-for-index-expected.txt.
* LayoutTests/accessibility/isolated-tree/textarea-line-for-index.html: Added.
* LayoutTests/accessibility/mac/line-for-index-at-end-of-value-expected.txt: 
Added.
* LayoutTests/accessibility/mac/line-for-index-at-end-of-value.html: Added.
* LayoutTests/accessibility/mac/range-for-line-trailing-blank-line-expected.txt:
* LayoutTests/accessibility/mac/range-for-line-trailing-blank-line.html:
* 
LayoutTests/accessibility/mac/range-for-line-with-block-line-breaks-expected.txt:
* LayoutTests/accessibility/mac/range-for-line-with-block-line-breaks.html:
* 
LayoutTests/accessibility/mac/textarea-line-range-after-dynamic-edit-expected.txt:
* LayoutTests/accessibility/mac/textarea-line-range-after-dynamic-edit.html:
* 
LayoutTests/accessibility/mac/textarea-line-range-with-trailing-newline-expected.txt:
* LayoutTests/accessibility/mac/textarea-line-range-with-trailing-newline.html:
* LayoutTests/accessibility/textarea-line-for-index-expected.txt:
* Source/WebCore/accessibility/AXTextMarker.cpp:
(WebCore::AXTextMarker::lineNumberForIndex const):
* Source/WebCore/accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::doAXLineForIndex):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::insertionPointLineNumber const):

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



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

Reply via email to