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

Issue 730965 link

Starred by 4 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: May 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 1
Type: Bug
Team-Accessibility



Sign in to add a comment

Accessible text interface broken for input type="number"

Project Member Reported by ja...@nvaccess.org, Jun 8 2017

Issue description

Chrome Version: 61.0.3122.0 (Official Build) canary(64-bit)
OS: Windows 10 Version 1703 (OS Build 16199.1000) 64-bit

What steps will reproduce the problem?

(1) Start Chrome and the NVDA screen reader.
(2) Open this URL: data:text/html,<input type="number" value="20">
(3) Tab to the spin button.
Expected: NVDA should say "spin button editable, selected  20"
Actual: NVDA says "spin button editable, selected"
(4) Press down arrow.
Expected: NVDA should say "19"
Actual: NVDA says "blank"

IAccessibleText is implemented for this control and it has the editable state. This is correct, since the user should be able to edit the text, move character by character, etc. However:
* nCharacters reports 0.
(* When text is selected (e.g. when you focus the control), nSelections reports 1 and selection(0) reports the expected offsets. For example, if the first 2 characters are selected (as in the example above), selection(0) reports (0, 2).
* Even when selection(0) reports selection offsets, textAtOffset for those offsets behaves as if there is no text (which is not surprising given that nCharacters returns 0).
* IAccessible::accValue exposes the value correctly. However, this isn't what is used when dealing with editable text.

Impact: This makes these controls unusable by Chrome + NVDA users.
Originally reported in NVDA issue: https://github.com/nvaccess/nvda/issues/5422
 

Comment 1 by ja...@nvaccess.org, Jun 8 2017

> * Even when selection(0) reports selection offsets, textAtOffset for those offsets behaves as if there is no text

Correction: I meant IAccessibleText::text, not IAccessibleText::textAtOffset.

Comment 2 by tm08...@gmail.com, Jun 11 2017

Gracias


Labels: triage-nektar
Labels: triage-aaron
Labels: -Pri-3 -triage-aaron -triage-nektar Pri-1
Owner: ----
Status: Available (was: Untriaged)
Cc: nek...@chromium.org
Components: -UI>Accessibility UI>Accessibility>Compatibility
Labels: -Pri-1 Pri-2
Project Member

Comment 7 by bugdroid1@chromium.org, Dec 1 2017

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

commit c36b7c34147c40f12e727cff18b0d8214fcbb289
Author: Nektarios Paisios <nektar@chromium.org>
Date: Fri Dec 01 16:31:44 2017

Fixed some bugs in the IAccessibleText::get_text method affecting spinners

R=aleventhal@chromium.org, dmazzoni@chromium.org
Tested; manually

Bug:  730965 
Change-Id: I0819a7e053f665ae5150147fd90b5dcab6ca0994
Reviewed-on: https://chromium-review.googlesource.com/786544
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Commit-Queue: Nektarios Paisios <nektar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#520956}
[modify] https://crrev.com/c36b7c34147c40f12e727cff18b0d8214fcbb289/content/browser/accessibility/browser_accessibility_com_win.cc
[modify] https://crrev.com/c36b7c34147c40f12e727cff18b0d8214fcbb289/ui/accessibility/platform/ax_platform_node_win.cc

Status: Fixed (was: Available)
Fixed when it comes to exposing the value via the IAccessibleText implementation. I don't think I can easily fix the announcement of the spinner value though because when the caret is positioned at the end of the text field, the caret location is mapped to a hidden button that increases or decreases the spinner's value. It's hard to change this without changing the spinner's internal implementation.
Owner: nek...@chromium.org
Cc: hdodda@chromium.org
Labels: Needs-Feedback
Tested the issue on windows 10 using NVDA 2017.3 with chrome M64 #64.0.3284.0 and followed below steps :

1. Launched chrome and NVDA
2. Opened url "data:text/html,<input type="number" value="20">" and tabbed to the spin button ( NVDA says " spin button editable 20" )
3.Cliked down arrow and observed that NVDA says nothing.

@Nektar-- Could you please confirm us if we are missing anything in testing or if this is the expected fix , so that we can add TE-Verified labels.

Thanks!
Correction in comment #11 , tested in M65 #65.0.3284..
Not OP, but in response to comment #11:

Your test is correct. The response from NVDA should be 19, but says nothing.


Tested on 66.0.3329.0 (32-bit) issue still persists.
Labels: -Pri-2 -Needs-Feedback win-a11y Pri-1
Status: Assigned (was: Fixed)
Issue still persists Chrome 66.0.3357.3 Canary 
NVDA 2017.4
 Issue 793113  has been merged into this issue.
Status: Started (was: Assigned)
The fix is either to ignore inner spin button parts (including incrementer and decrementer buttons) on Win, but I don't like hackish solutions.
I sent out a patch removing inner spin button parts from all platforms, because they are not used anywhere:
1. Mac exposes spin buttons as steppers.
2. Android exposes them as input fields.
3. ChromeVox and Select to Speak don't seem to need those buttons.

Project Member

Comment 19 by bugdroid1@chromium.org, May 10 2018

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

commit 4067f8276e464c6f3b47bf89f4cf821c0d03b991
Author: Nektarios Paisios <nektar@chromium.org>
Date: Thu May 10 20:15:41 2018

Removed AXSpinButton and AXSpinButtonPart classes

Cause behind P1 bug that prevented NVDA to read spin controls, i.e. <input type="number">.
Broke NVDA, was not used by ChromeVox and Select to Speak, wasn't needed by VoiceOver and also doesn't work on Safari either.

R=dmazzoni@chromium.org, aleventhal@chromium.org

Bug:  730965 
Cq-Include-Trybots: master.tryserver.chromium.linux:closure_compilation
Change-Id: Ic59229d286bf1b0992253408a77730d662bc2876
Tested: Manually
Reviewed-on: https://chromium-review.googlesource.com/1044709
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Reviewed-by: David Tseng <dtseng@chromium.org>
Reviewed-by: Demetrios Papadopoulos <dpapad@chromium.org>
Reviewed-by: Nektarios Paisios <nektar@chromium.org>
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Commit-Queue: Nektarios Paisios <nektar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#557648}
[modify] https://crrev.com/4067f8276e464c6f3b47bf89f4cf821c0d03b991/chrome/common/extensions/api/automation.idl
[modify] https://crrev.com/4067f8276e464c6f3b47bf89f4cf821c0d03b991/content/browser/accessibility/browser_accessibility_android.cc
[modify] https://crrev.com/4067f8276e464c6f3b47bf89f4cf821c0d03b991/content/renderer/accessibility/blink_ax_enum_conversion.cc
[modify] https://crrev.com/4067f8276e464c6f3b47bf89f4cf821c0d03b991/content/shell/test_runner/web_ax_object_proxy.cc
[modify] https://crrev.com/4067f8276e464c6f3b47bf89f4cf821c0d03b991/content/test/data/accessibility/html/input-date-expected-win.txt
[modify] https://crrev.com/4067f8276e464c6f3b47bf89f4cf821c0d03b991/content/test/data/accessibility/html/input-datetime-local-expected-win.txt
[modify] https://crrev.com/4067f8276e464c6f3b47bf89f4cf821c0d03b991/content/test/data/accessibility/html/input-month-expected-blink.txt
[modify] https://crrev.com/4067f8276e464c6f3b47bf89f4cf821c0d03b991/content/test/data/accessibility/html/input-month-expected-mac.txt
[modify] https://crrev.com/4067f8276e464c6f3b47bf89f4cf821c0d03b991/content/test/data/accessibility/html/input-number-expected-blink.txt
[modify] https://crrev.com/4067f8276e464c6f3b47bf89f4cf821c0d03b991/content/test/data/accessibility/html/input-time-expected-blink.txt
[modify] https://crrev.com/4067f8276e464c6f3b47bf89f4cf821c0d03b991/content/test/data/accessibility/html/input-time-expected-mac.txt
[modify] https://crrev.com/4067f8276e464c6f3b47bf89f4cf821c0d03b991/content/test/data/accessibility/html/input-time-expected-win.txt
[modify] https://crrev.com/4067f8276e464c6f3b47bf89f4cf821c0d03b991/content/test/data/accessibility/html/input-week-expected-blink.txt
[modify] https://crrev.com/4067f8276e464c6f3b47bf89f4cf821c0d03b991/content/test/data/accessibility/html/input-week-expected-mac.txt
[modify] https://crrev.com/4067f8276e464c6f3b47bf89f4cf821c0d03b991/content/test/data/accessibility/html/input-week-expected-win.txt
[delete] https://crrev.com/511f71f2d113829989df1949d1a9343f1d0019f8/third_party/WebKit/LayoutTests/accessibility/spin-button-bounds.html
[delete] https://crrev.com/511f71f2d113829989df1949d1a9343f1d0019f8/third_party/WebKit/LayoutTests/accessibility/spin-button-detach-expected.txt
[delete] https://crrev.com/511f71f2d113829989df1949d1a9343f1d0019f8/third_party/WebKit/LayoutTests/accessibility/spin-button-detach.html
[modify] https://crrev.com/4067f8276e464c6f3b47bf89f4cf821c0d03b991/third_party/blink/public/web/web_ax_enums.h
[modify] https://crrev.com/4067f8276e464c6f3b47bf89f4cf821c0d03b991/third_party/blink/renderer/modules/accessibility/BUILD.gn
[modify] https://crrev.com/4067f8276e464c6f3b47bf89f4cf821c0d03b991/third_party/blink/renderer/modules/accessibility/ax_enums.cc
[modify] https://crrev.com/4067f8276e464c6f3b47bf89f4cf821c0d03b991/third_party/blink/renderer/modules/accessibility/ax_enums.h
[modify] https://crrev.com/4067f8276e464c6f3b47bf89f4cf821c0d03b991/third_party/blink/renderer/modules/accessibility/ax_layout_object.cc
[modify] https://crrev.com/4067f8276e464c6f3b47bf89f4cf821c0d03b991/third_party/blink/renderer/modules/accessibility/ax_layout_object.h
[modify] https://crrev.com/4067f8276e464c6f3b47bf89f4cf821c0d03b991/third_party/blink/renderer/modules/accessibility/ax_object.cc
[modify] https://crrev.com/4067f8276e464c6f3b47bf89f4cf821c0d03b991/third_party/blink/renderer/modules/accessibility/ax_object.h
[modify] https://crrev.com/4067f8276e464c6f3b47bf89f4cf821c0d03b991/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.cc
[delete] https://crrev.com/511f71f2d113829989df1949d1a9343f1d0019f8/third_party/blink/renderer/modules/accessibility/ax_spin_button.cc
[delete] https://crrev.com/511f71f2d113829989df1949d1a9343f1d0019f8/third_party/blink/renderer/modules/accessibility/ax_spin_button.h
[modify] https://crrev.com/4067f8276e464c6f3b47bf89f4cf821c0d03b991/third_party/closure_compiler/externs/automation.js
[modify] https://crrev.com/4067f8276e464c6f3b47bf89f4cf821c0d03b991/ui/accessibility/ax_enum_util.cc
[modify] https://crrev.com/4067f8276e464c6f3b47bf89f4cf821c0d03b991/ui/accessibility/ax_enums.mojom
[modify] https://crrev.com/4067f8276e464c6f3b47bf89f4cf821c0d03b991/ui/accessibility/platform/ax_platform_node_win.cc

Status: Fixed (was: Started)

Sign in to add a comment