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

Issue 620432 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Nov 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 2
Type: Bug
Team-Accessibility



Sign in to add a comment

role="combobox" breaks aria-owns (AKA broken autocomplete a11y)

Project Member Reported by ja...@nvaccess.org, Jun 15 2016

Issue description

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

STR:
1. Start Chrome and the NVDA screen reading software.
2. Open this URL: data:text/html,<div contentEditable="true" role="combobox" aria-owns="list" onKeyDown="this.setAttribute('aria-activedescendant', 'item');">content</div><ul id="list"><li id="item">item</li></ul>
3. Focus the combo box.
4. Press a key; e.g. down arrow.
Expected: NVDA should say "list  item  1 of 1"
Actual: NVDA says "unknown  1 of 1"

If an element has role="combobox", it seems to break aria-owns. You can't get to any ARIA owned descendants in the tree. If an owned descendant gets accessible focus (as happens here), it has a role of unknown and doesn't expose other information.

Note that this does not occur if you use role="textbox" instead.

Impact: This breaks accessible autocompletes, including those on Gmail.
NVDA issue: https://github.com/nvaccess/nvda/issues/6075
 

Comment 1 by nek...@chromium.org, Jun 23 2016

Status: Started (was: Untriaged)
Labels: -Pri-3 Pri-2
Nektarios, I already wrote this change: https://codereview.chromium.org/2072013004/ - I think it's the same issue, and possibly a duplicate of  bug 619641 .

Comment 3 by nek...@chromium.org, Jun 23 2016

Yes, I remember seeing this change in the last few days. But I thought that it only touches Blink code. From what I see using chrome://accessibility and the sample provided by Jamie, the internal accessibility tree appears to be correct in this case without your change. On the other hand, the platform specific tree is missing the combo box's children, i.e. the selected item in the list. I might have overlooked something though.
The latest version of the ARIA Spec doesn't use aria-owns for attaching the list of choices to a combo box. It uses aria-controls.
https://rawgit.com/w3c/aria/master/aria/aria.html
We decided to expose the children of combo boxes, search boxes and text boxes that are added using aria-owns only when such boxes are non-editable. Otherwise, if such boxes are made editable either using contenteditable or an <input> or <textarea> field, there would be possible confusion between the children that are present because of the text found in the box and the children that are added using aria-owns. Admittedly, the former are not visible to screen readers 
if an <input> or a <textarea> field is used, but nevertheless we have to deal with them internally.
The way we implement aria-owns is to re-order the accessibility tree internally and not expose the fact that aria-owns has been used to screen readers.
With our latest changes, auto-complete should work because it shouldn't matter to screen readers if the list of choices is not a child but a sibling of the text field.

Please let us know if any clarifications or other approaches are needed.

Project Member

Comment 6 by bugdroid1@chromium.org, Jul 8 2016

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

commit 734e21b735b81cc5c8ac04a98e330a9e7f51decd
Author: nektar <nektar@chromium.org>
Date: Fri Jul 08 20:17:48 2016

The children of non-editable combo boxes, search boxes and text fields specified via e.g. aria-owns should not be hidden from platform trees.

Children of combo boxes, search boxes and text fields might not always be part of the shadow DOM, especially when no <input> or contentEditable . tags have been usedThey might be a list of combo box items specified via aria-owns.
data:text/html,<div role="combobox" aria-owns="list" onKeyDown="this.setAttribute('aria-activedescendant', 'item');">content</div><ul id="list"><li id="item">item</li></ul>
BUG= 620432 
R=dmazzoni@chromium.org
TESTED=manually with Jaws NVDA and Voiceover

Review-Url: https://codereview.chromium.org/2120523002
Cr-Commit-Position: refs/heads/master@{#404478}

[modify] https://crrev.com/734e21b735b81cc5c8ac04a98e330a9e7f51decd/content/browser/accessibility/browser_accessibility.cc
[modify] https://crrev.com/734e21b735b81cc5c8ac04a98e330a9e7f51decd/content/browser/accessibility/browser_accessibility.h
[modify] https://crrev.com/734e21b735b81cc5c8ac04a98e330a9e7f51decd/content/browser/accessibility/browser_accessibility_android.cc
[modify] https://crrev.com/734e21b735b81cc5c8ac04a98e330a9e7f51decd/content/browser/accessibility/browser_accessibility_android.h
[modify] https://crrev.com/734e21b735b81cc5c8ac04a98e330a9e7f51decd/content/browser/accessibility/browser_accessibility_win.cc
[modify] https://crrev.com/734e21b735b81cc5c8ac04a98e330a9e7f51decd/content/browser/accessibility/browser_accessibility_win_unittest.cc
[modify] https://crrev.com/734e21b735b81cc5c8ac04a98e330a9e7f51decd/content/test/data/accessibility/aria/aria-autocomplete-expected-win.txt
[modify] https://crrev.com/734e21b735b81cc5c8ac04a98e330a9e7f51decd/content/test/data/accessibility/aria/aria-searchbox-expected-mac.txt
[modify] https://crrev.com/734e21b735b81cc5c8ac04a98e330a9e7f51decd/content/test/data/accessibility/aria/aria-searchbox-expected-win.txt
[modify] https://crrev.com/734e21b735b81cc5c8ac04a98e330a9e7f51decd/content/test/data/accessibility/aria/aria-searchbox-with-selection-expected-mac.txt
[modify] https://crrev.com/734e21b735b81cc5c8ac04a98e330a9e7f51decd/content/test/data/accessibility/aria/aria-searchbox-with-selection-expected-win.txt
[modify] https://crrev.com/734e21b735b81cc5c8ac04a98e330a9e7f51decd/content/test/data/accessibility/aria/aria-textbox-expected-mac.txt
[modify] https://crrev.com/734e21b735b81cc5c8ac04a98e330a9e7f51decd/content/test/data/accessibility/aria/aria-textbox-expected-win.txt
[modify] https://crrev.com/734e21b735b81cc5c8ac04a98e330a9e7f51decd/content/test/data/accessibility/aria/aria-textbox-with-selection-expected-mac.txt
[modify] https://crrev.com/734e21b735b81cc5c8ac04a98e330a9e7f51decd/content/test/data/accessibility/aria/aria-textbox-with-selection-expected-win.txt
[modify] https://crrev.com/734e21b735b81cc5c8ac04a98e330a9e7f51decd/content/test/data/accessibility/html/input-datetime-expected-mac.txt
[modify] https://crrev.com/734e21b735b81cc5c8ac04a98e330a9e7f51decd/content/test/data/accessibility/html/input-datetime-expected-win.txt
[modify] https://crrev.com/734e21b735b81cc5c8ac04a98e330a9e7f51decd/third_party/WebKit/Source/modules/accessibility/AXNodeObject.h

Cc: lpalmaro@chromium.org ellyjo...@chromium.org

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

Status: Fixed (was: Started)

Sign in to add a comment