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

Issue 652059 link

Starred by 3 users

Issue metadata

Status: Verified
Owner:
Last visit > 30 days ago
Closed: Oct 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug
Team-Accessibility



Sign in to add a comment

last line in text area doesn't read last character when using word/char nav or line when using line-nav

Project Member Reported by chaok@google.com, Oct 1 2016

Issue description

Mode: force_next
Version: 55.0.2874.0
Reproduction Steps: 
1. Open a text area (e.g. search+a+i)  
2. Tab into "description field"
3. ALt+Down arrow to move to end > type "the quick brown fox jumps over the lazy dog" 
a. Up/down arrow
b. Right or ctrl+right arrow to last character/word
c. WHen focused on end of text area > left arrow or ctrl+left arrow

Observed: 
a. Blank
b. blank
c. Entire line is uttered

Expected: 
a-b. Last line, word, and character to be uttered as in previous Canary build
c. Last character or word to be uttered
 
Project Member

Comment 1 by sheriffbot@chromium.org, Oct 2 2016

Labels: Hotlist-Google
Regressed by
https://codereview.chromium.org/2301833005/

workaround sent out for review.

Comment 3 by dtseng@chromium.org, Oct 10 2016

Labels: ReleaseBlock-Beta
Owner: nek...@chromium.org
Status: assigned (was: Untriaged)
Assigning to nektar@ for underlying regression.

Line breaks should from at least ChromeVox's perspective and probably most other screen readers work as follows:
- consider leaves that are *text* nodes. Text nodes are nodes who's accessible name is text from the *DOM*. Thus, nodes with roles of static text, line break should be included. However, nodes of other types who's names from are not from contents, should not be considered like divs with an raia label and that are also leaves.
- line breaks, as calculated by the AX module in ui/, should:
provide the index where a line break occurs. If it is a hard line break, the index should contain a new line character. If it is a soft line break, the index should fall on the start of the next line and the client should use affinity to resolve where the caret actually is.

Labels: M-55
Cc: bhthompson@chromium.org
This is marked as a beta blocker for R55 and we are coming up on beta, has any work been started on this?

Comment 6 by nek...@chromium.org, Oct 18 2016

Yes, https://codereview.chromium.org/2271893002/
But I will not be able to finish it in time.
So, I'll send out a more temporary fix.

Comment 7 by dtseng@chromium.org, Oct 19 2016

 Issue 657428  has been merged into this issue.
Just a heads up that this bug is marked as ReleaseBlock-Beta for R55, and we are looking to promote R55 to beta with the build on Monday evening. 

It looks like the CL has a LGTM on it, if we can land it in the next day and get it merged into Chrome by (optimally) Sunday afternoon we should be able to make the beta RC.
Project Member

Comment 9 by bugdroid1@chromium.org, Oct 20 2016

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

commit 6be580cbb1b4947179978c1c0f2dd9c680a99863
Author: nektar <nektar@chromium.org>
Date: Thu Oct 20 23:07:59 2016

Fixed line start offsets.

Now they indeed refer to the offset at the start of each line. This means that if e.g. the first text node starts a new line, the first offset returned should be 0. Further, the offset equivalent to the text's length should never be returned.
I chose to stick with line start offsets instead of line breaks because what exactly is a line break? The beginning of the line, the end of the previous line or the line break character in between two lines when it exists? And what happens if there is no line break character, i.e. a soft line break?
Line start offsets are less ambiguous.
BUG= 652059 
R=dmazzoni@chromium.org, dtseng@chromium.org
TESTED=automation browsertests, manually with ChromeVox on ChromeOS

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

[modify] https://crrev.com/6be580cbb1b4947179978c1c0f2dd9c680a99863/chrome/test/data/extensions/api_test/automation/tests/tabs/line_start_offsets.js
[modify] https://crrev.com/6be580cbb1b4947179978c1c0f2dd9c680a99863/content/browser/accessibility/accessibility_tree_formatter_blink.cc
[modify] https://crrev.com/6be580cbb1b4947179978c1c0f2dd9c680a99863/ui/accessibility/ax_node.cc
[modify] https://crrev.com/6be580cbb1b4947179978c1c0f2dd9c680a99863/ui/accessibility/ax_node.h

Labels: Merge-Request-55
Status: Fixed (was: Assigned)
Labels: -Merge-Request-55 Merge-Approved-55
Project Member

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

Labels: -merge-approved-55 merge-merged-2883
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b2130a303ca27915ac7abbbefe9f675c582852d2

commit b2130a303ca27915ac7abbbefe9f675c582852d2
Author: David Tseng <dtseng@chromium.org>
Date: Fri Oct 21 17:06:36 2016

Merge to m55: Fixed line start offsets.

Now they indeed refer to the offset at the start of each line. This means that if e.g. the first text node starts a new line, the first offset returned should be 0. Further, the offset equivalent to the text's length should never be returned.
I chose to stick with line start offsets instead of line breaks because what exactly is a line break? The beginning of the line, the end of the previous line or the line break character in between two lines when it exists? And what happens if there is no line break character, i.e. a soft line break?
Line start offsets are less ambiguous.
TBR=nektar@chromium.org
BUG= 652059 
R=dmazzoni@chromium.org, dtseng@chromium.org
TESTED=automation browsertests, manually with ChromeVox on ChromeOS

Review-Url: https://chromiumcodereview.appspot.com/2437473003
Cr-Commit-Position: refs/heads/master@{#426636}
(cherry picked from commit 6be580cbb1b4947179978c1c0f2dd9c680a99863)

Review URL: https://codereview.chromium.org/2439133002 .

Cr-Commit-Position: refs/branch-heads/2883@{#231}
Cr-Branched-From: 614d31daee2f61b0180df403a8ad43f20b9f6dd7-refs/heads/master@{#423768}

[modify] https://crrev.com/b2130a303ca27915ac7abbbefe9f675c582852d2/chrome/test/data/extensions/api_test/automation/tests/tabs/line_start_offsets.js
[modify] https://crrev.com/b2130a303ca27915ac7abbbefe9f675c582852d2/content/browser/accessibility/accessibility_tree_formatter_blink.cc
[modify] https://crrev.com/b2130a303ca27915ac7abbbefe9f675c582852d2/ui/accessibility/ax_node.cc
[modify] https://crrev.com/b2130a303ca27915ac7abbbefe9f675c582852d2/ui/accessibility/ax_node.h

Project Member

Comment 13 by bugdroid1@chromium.org, Oct 27 2016

Labels: merge-merged-2840
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b2130a303ca27915ac7abbbefe9f675c582852d2

commit b2130a303ca27915ac7abbbefe9f675c582852d2
Author: David Tseng <dtseng@chromium.org>
Date: Fri Oct 21 17:06:36 2016

Merge to m55: Fixed line start offsets.

Now they indeed refer to the offset at the start of each line. This means that if e.g. the first text node starts a new line, the first offset returned should be 0. Further, the offset equivalent to the text's length should never be returned.
I chose to stick with line start offsets instead of line breaks because what exactly is a line break? The beginning of the line, the end of the previous line or the line break character in between two lines when it exists? And what happens if there is no line break character, i.e. a soft line break?
Line start offsets are less ambiguous.
TBR=nektar@chromium.org
BUG= 652059 
R=dmazzoni@chromium.org, dtseng@chromium.org
TESTED=automation browsertests, manually with ChromeVox on ChromeOS

Review-Url: https://chromiumcodereview.appspot.com/2437473003
Cr-Commit-Position: refs/heads/master@{#426636}
(cherry picked from commit 6be580cbb1b4947179978c1c0f2dd9c680a99863)

Review URL: https://codereview.chromium.org/2439133002 .

Cr-Commit-Position: refs/branch-heads/2883@{#231}
Cr-Branched-From: 614d31daee2f61b0180df403a8ad43f20b9f6dd7-refs/heads/master@{#423768}

[modify] https://crrev.com/b2130a303ca27915ac7abbbefe9f675c582852d2/chrome/test/data/extensions/api_test/automation/tests/tabs/line_start_offsets.js
[modify] https://crrev.com/b2130a303ca27915ac7abbbefe9f675c582852d2/content/browser/accessibility/accessibility_tree_formatter_blink.cc
[modify] https://crrev.com/b2130a303ca27915ac7abbbefe9f675c582852d2/ui/accessibility/ax_node.cc
[modify] https://crrev.com/b2130a303ca27915ac7abbbefe9f675c582852d2/ui/accessibility/ax_node.h

Status: Verified (was: Fixed)
verified on 55.0.2883.30

Comment 15 by dimu@google.com, Nov 4 2016

Labels: -merge-merged-2840
[Automated comment] removing mislabelled merge-merged-2840

Sign in to add a comment