New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 644604 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Jul 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug
Team-Accessibility



Sign in to add a comment

IAccessibleText::setCaretOffset doesn't work correctly in contentEditables

Project Member Reported by ja...@nvaccess.org, Sep 7 2016

Issue description

Version: 55.0.2852.0 canary (64-bit)
OS: Windows 10 64-bit

On a contentEditable, if IAccessibleText::setCaretOffset is called with an offset greater than 0, it sets the caret offset to the end of the text (the value of IAccessibleText::nCharacters).

STR (with NVDA and a braille display):
1. Start NVDA with a braille display connected and configured.
2. Open this URL in Chrome: data:text/html,<div role="textbox" contentEditable="true">abcd</div>
3. Focus the contentEditable.
4. Ensure NVDA is in focus mode.
5. Press the cursor routing button above the letter "b" in "abcd".
Expected: The cursor should move to "b".
Actual: It moves to the end of the text (after "d").

STR (with NVDA Python console):
1. Start NVDA.
2. Open this URL in Chrome: data:text/html,<div role="textbox" contentEditable="true">abcd</div>
3. Focus the contentEditable.
4. Press NVDA+control+z to open the NVDA Python console.
5. Enter this command: focus.IAccessibleTextObject.setCaretOffset(0)
6. Enter this command: focus.IAccessibleTextObject.caretOffset
Result (correct): 0
7. Enter this command: focus.IAccessibleTextObject.setCaretOffset(1)
8. Enter this command: focus.IAccessibleTextObject.caretOffset
Expected: 1
Actual: 4

Impact: This breaks cursor routing with a braille display in many editors, including Google Docs.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Oct 21 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9de71d4067f24c4e333b5bef4f1210c9395ba847

commit 9de71d4067f24c4e333b5bef4f1210c9395ba847
Author: nektar <nektar@chromium.org>
Date: Fri Oct 21 21:57:00 2016

Creates AXPosition to uniquely identify a position in the accessibility tree.

TESTED=manually, unit tests
BUG= 644604 , 530826 
R=dmazzoni@chromium.org, dtseng@chromium.org, avi@chromium.org, ellyjones@chromium.org

Review-Url: https://chromiumcodereview.appspot.com/2271893002
Cr-Commit-Position: refs/heads/master@{#426906}

[modify] https://crrev.com/9de71d4067f24c4e333b5bef4f1210c9395ba847/content/browser/BUILD.gn
[add] https://crrev.com/9de71d4067f24c4e333b5bef4f1210c9395ba847/content/browser/accessibility/ax_platform_position.cc
[add] https://crrev.com/9de71d4067f24c4e333b5bef4f1210c9395ba847/content/browser/accessibility/ax_platform_position.h
[modify] https://crrev.com/9de71d4067f24c4e333b5bef4f1210c9395ba847/content/browser/accessibility/browser_accessibility_cocoa.mm
[modify] https://crrev.com/9de71d4067f24c4e333b5bef4f1210c9395ba847/ui/accessibility/BUILD.gn
[add] https://crrev.com/9de71d4067f24c4e333b5bef4f1210c9395ba847/ui/accessibility/ax_node_position.cc
[add] https://crrev.com/9de71d4067f24c4e333b5bef4f1210c9395ba847/ui/accessibility/ax_node_position.h
[add] https://crrev.com/9de71d4067f24c4e333b5bef4f1210c9395ba847/ui/accessibility/ax_node_position_unittest.cc
[add] https://crrev.com/9de71d4067f24c4e333b5bef4f1210c9395ba847/ui/accessibility/ax_position.h

Comment 2 by nek...@chromium.org, Nov 14 2016

Cc: dmazz...@chromium.org
Status: Started (was: Untriaged)
Labels: NewComponent-Accessibility NewComponent-Accessibility-Compatibility
Components: UI>Accessibility>Compatibility
Components: -UI>Accessibility
Labels: -newcomponent-accessibility-compatibility -newcomponent-accessibility

Comment 6 by nek...@chromium.org, Jul 27 2017

Status: Fixed (was: Started)
Verified fixed using NVDA's Python Console.

Sign in to add a comment