New issue
Advanced search Search tips

Issue 854345 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Closed: Sep 28
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows , Chrome
Pri: 2
Type: Bug
Team-Accessibility



Sign in to add a comment

A11y: chrome://bookmarks indexes are not announced by screen readers

Project Member Reported by dsexton@chromium.org, Jun 19 2018

Issue description

Chrome: 69.0.3452.0 (Official Build) dev (64-bit)
NVDA: 2018.2.1
JAWS: 2018

Steps to repro:
# With NVDA running, launch Chrome
# Ensure that there are bookmarks on the bookmarks bar
# Visit chrome://bookmarks
# Tab to the bookmark folder list
# Notice that NVDA says:
Collapse Bookmarks bar Bookmarks bar  not selected  expanded  1 of 1 level 1
# Use arrows to navigate the list of bookmark folders

Expected: The correct index should be announced for each item in the tree

Actual: Each item is announced as '1 of 1' even though there are more than one item
 
Labels: a11y-WebUI a11y-Bookmarks
Also reproduces with ChromeVox per steps above

Google Chrome	69.0.3497.35 (Official Build) dev (64-bit)
Firmware Version	Google_Lulu.6301.136.57
Disambiguation: 
Bug 854312 is about all of the confusing text spoken by screen reader
 Bug 854345  is about incorrect indexes within that text for Bookmarks folders
Bug 854362 is about incorrect indexes for bookmarks within folders 
Labels: OS-Chrome OS-Windows
The 'treeitem' role is inside of a 'navigation' rather than a 'tree' - I wonder if that affects index computation.
Cc: dmazzoni@google.com dtseng@chromium.org
+dmazzoni/dtseng - any thoughts on which of the two options I outline above would be preferable?

i.e. 
1) skip over "group" role elements when computing indexes of treeitems; or
2) nest "group" role element under treeitem role element in the bookmarks-folder-node element
I feel like (1) is more general

Labels: pm-markchang
Labels: jaws
Labels: -JAWS
Owner: chrishall@chromium.org
Status: Started (was: Available)
We have a role=navigation which then has children mixing role=treeitem and role=group
Our treeitems then contain groups which further contain treeitems and groups.

ARIA says that we must nest treeitem within either tree or group, but we are nesting it within navigation
"Authors MUST ensure elements with role treeitem are contained in, or owned by, an element with the role group or tree."
https://www.w3.org/TR/wai-aria/#treeitem

I'm going to change the top level item from navigation to treeitem (possibly with a navigation parent, I'll try find other examples).

Using aria-owns seems to correctly fix the nesting of treeitems and groups, so I will add appropriate ownership relations.

The current menu aria roles come from the work on https://bugs.chromium.org/p/chromium/issues/detail?id=735808
I have a pending CR up for review which uses aria-owns to reparent the descendants under the folder, which better matches the semantics of the folder nesting.
This now generates correct indices \o/

I have also changed the top level div from role=navigation to role=tree as I think is required by ARIA.

https://chromium-review.googlesource.com/c/chromium/src/+/1238756
Labels: Group-WebUI_Bookmarks
Project Member

Comment 16 by bugdroid1@chromium.org, Sep 28

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

commit adf5b6561bda9b53d4067b12b51ef34501b0e54e
Author: Chris Hall <chrishall@chromium.org>
Date: Fri Sep 28 07:38:26 2018

Bookmarks folder navigation tree correcting indices.

This change corrects the accessibility semantics of the bookmarks folder
navigation tree.

Before this change, the indices on the bookmark folder items were
incorrectly always being read out as '1 of 1' even when there were multiple
items within the menu, this was because each role='treeitem' was followed by
a role='group' sibling.

This change uses aria-owns to reparent the descendents role='group' under the
containing folder, which more closesly matches the semantic meaning of
the nested folders. Now indicies are read out correctly as '1 of 2' or
similar.

This also changes the top level role from 'navigation' to 'tree' as aria
requires that every 'treeitem' is within either a 'tree' or 'group'.


Change-Id: I58ade626e8df6a7bd87be32d05d9d86679bc6200
Bug:  854345 
Reviewed-on: https://chromium-review.googlesource.com/1238756
Commit-Queue: Chris Hall <chrishall@chromium.org>
Reviewed-by: calamity <calamity@chromium.org>
Reviewed-by: Alice Boxhall <aboxhall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#595010}
[modify] https://crrev.com/adf5b6561bda9b53d4067b12b51ef34501b0e54e/chrome/browser/resources/md_bookmarks/app.html
[modify] https://crrev.com/adf5b6561bda9b53d4067b12b51ef34501b0e54e/chrome/browser/resources/md_bookmarks/folder_node.html

Status: Fixed (was: Started)
That change should gives me indices in my testing on ChromeOS and ChromeVox
Status: Verified (was: Fixed)
Fixed as of 71.0.3578.44 (Official Build) beta (64-bit) (cohort: Beta)

Sign in to add a comment