New issue
Advanced search Search tips

Issue 755278 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug
Team-Accessibility

Blocking:
issue 755275
issue 762575



Sign in to add a comment

[A11y Assessment - File Manager] Can't expand or collapse

Project Member Reported by lpalmaro@chromium.org, Aug 14 2017

Issue description

OS: Chrome
Version: 61.0.3163.38

1. Enable ChromeVox with Ctrl Alt Z
2. Press Alt Shift M to open the files manager
3. Press Search + Right to navigate through item by item on the screen using ChromeVox 
4. Press Search + Right to navigate to the left panel tree view, and attempt to use the keyboard to expand or collapse any of the sections. 

You hear that a section is expanded or collapsed, but then you can't actually expand or collapse any of these sections (e.g. My Drive) with the keyboard. You can only click it with the mouse to expand it. We need to make sure this is something that can be done with keyboard only, or keyboard + ChromeVox. 
 
Cc: yamaguchi@chromium.org fukino@chromium.org
Components: Platform>Apps>FileManager
Blockedon: 762575
Blocking: 762575
Blockedon: -762575
Currently [right arrow] and [left arrow] keys are assigned to expand and collapse the tree node. So the operations can be done with keyboard only, at least before ChromeVox is turned on.

My understanding is that, when [search + arrow] command is used, ChromeVox enters to the mode which doesn't send key events directly to the app, thus cannot use the normal key bindings to expand the folder. Mouse click on the directory label is assigned to "move to that directory". This is why we cannot expand/collapse by keyboard+ChromeVox.

As a workaround, user may hit [tab] key to exit that mode so that user can use the normal keyboard operation using cursor keys, if possible. (ChromeVox will still read out keyboard-focused items in that mode.)

One possible improvement would be to make the expand/collapse icon recognized as a button by accessibility tools. Currently that button is not focusible by such tools.
I think making the expand/collapse icon recognized as a button would go a long way in making this better. Thoughts on feasibility? Otherwise, it's really hard to use right now for screen reader users. 

Comment 7 by sashab@chromium.org, Feb 23 2018

Labels: CrOS-FilesApp-Accessibility

Comment 8 by sashab@chromium.org, Feb 28 2018

Labels: -CrOS-FilesApp-Accessibility CrOSFilesCategory-Accessibility
I'm triaging a11y bugs. 

I have reproduced this bug. I'm not fixing this yet, I'll came back to it later.
Owner: lucmult@chromium.org
Status: Started (was: Assigned)
Labels: M-68
Blocking: 755275
Project Member

Comment 13 by bugdroid1@chromium.org, Apr 26 2018

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

commit e410a714625560d0cb89d4008761319b9ad4a177
Author: Luciano Pacheco <lucmult@chromium.org>
Date: Thu Apr 26 04:45:08 2018

Fix a11y on navigation/directory tree

This CL fixes the keyboard navigation when using screen reader/
Chromevox.

The main fix is to force focus on the cr.ui.Tree/DirectoryTree element
when navigating with Chromevox keyboard shortcut "Search+right arrow",
before the focus was staying on "body" element so Tree couldn't handle
the keyboard events to expand/collapse directories.

It's a series of small fixes.

1. Fix text read by Chromevox when navigating on directories, it was
reading all sub-directories names, instead of only the current focused
directory's name, fixed by adding |id| to each entries' label element,
to make existing |aria-labelledby| attribute work for screen reader.
This was broken because we overwrite the |innerHTML| from
|cr.ui.TreeItem|, losing the |id|.

2. Listen to |click| event on DirectoryTree and forces the focus to it
when the focus/activeElement is the "body" element. This happens when
Chromevox issues the |click| event when user press "Search+right arrow".

3. Replace |cr.ui.Tree|'s |role| attribute from "group" to "navigation",
which is a "landmark" type which is recommended [1]. This required to
change |cr.ui.Tree| to not overwrite existing |role| attribute.


[1] - https://developers.google.com/web/fundamentals/accessibility/how-to-review#take_advantage_of_headings_and_landmarks

Bug:  755278 
Cq-Include-Trybots: master.tryserver.chromium.linux:closure_compilation
Change-Id: If33be610e1d28f0a69205ee148783328a367fe80
Reviewed-on: https://chromium-review.googlesource.com/985772
Commit-Queue: Luciano Pacheco (SYD) <lucmult@chromium.org>
Reviewed-by: Naoki Fukino <fukino@chromium.org>
Reviewed-by: Demetrios Papadopoulos <dpapad@chromium.org>
Reviewed-by: David Tseng <dtseng@chromium.org>
Reviewed-by: Sasha Morrissey <sashab@chromium.org>
Cr-Commit-Position: refs/heads/master@{#553917}
[modify] https://crrev.com/e410a714625560d0cb89d4008761319b9ad4a177/ui/file_manager/file_manager/foreground/js/ui/directory_tree.js
[modify] https://crrev.com/e410a714625560d0cb89d4008761319b9ad4a177/ui/file_manager/file_manager/main.html
[modify] https://crrev.com/e410a714625560d0cb89d4008761319b9ad4a177/ui/file_manager/file_manager/test/create_new_folder.js
[modify] https://crrev.com/e410a714625560d0cb89d4008761319b9ad4a177/ui/file_manager/integration_tests/file_manager/transfer.js
[modify] https://crrev.com/e410a714625560d0cb89d4008761319b9ad4a177/ui/webui/resources/js/cr/ui/tree.js

Status: Fixed (was: Started)
The patch above fixes this issue.

When navigating with Chromevox (Search+right arrow), when landing on directory tree, every Search+right arrow will navigate on the displayed directories.

User can click/select by using "Search+Space", after that keyboard navigation with arrows can be used to navigate and expand/collapse.

Sign in to add a comment