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

Issue 859401 link

Starred by 8 users

Issue metadata

Status: Fixed
Owner:
Closed: Aug 3
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 2
Type: Task

Blocked on:
issue 846134



Sign in to add a comment

Allow users to disable the accessibility tab switcher

Project Member Reported by mdw@chromium.org, Jul 2

Issue description

Chrome Version: Chrome Beta 68.0.3440.33
OS: Android 8.0.0 OPR3.170623.008

This user from Reddit is reporting the simplified (Svelte) tab switcher showing on Chrome Beta on M68 on a Pixel 1 phone. As far as I can tell this should not be happening?

https://www.reddit.com/r/chrome/comments/8um7gp/anyone_else_have_this_weird_tab_browser_design/e1js6x1/

Details and video at the link above.

 
We also show this version of the tab switcher when certain accessibility services are enabled because the regular tab switcher is not accessible. Specifically, we will show the accessibility tab switcher if touch exploration is enabled (e.g. TalkBack) or if we detect an accessibility service that states it can perform gestures.

The second check for accessibility services that can perform gestures is new in 68.0.3438.0+ and was added to make the tab switcher accessible for Switch Access. This is critical for Chrome to be considered GAR compliant (see issue 839598 and https://chromium.googlesource.com/chromium/src.git/+/4ed1781357914596afcfa930c1608ab01c5fbf88).

My guess is that this user has an app installed that declares itself to be an accessibility service that can perform gestures. They might not be aware of this, however, as we've seen abuses of the accessibility API in the past (e.g. apps declaring that they are accessibility services to use the API for non-accessibility purposes). 

We have issue 846134 tracking further enhancements to tab switcher accessibility support. Our current heuristics capture some core uses cases but there are likely other times the accessibility tab switcher should be enabled. One short/medium term solution we're considering is enabling the accessibility tab switcher for all users with an accessibility service running and adding a Chrome setting to allow them to turn off the accessibility tab switcher if they, like this user, would prefer the regular tab switcher.

A better long-term solution would be to populate the accessibility node info for the regular tab switcher so that users are able to navigate it using accessibility services. We expect this to be fairly high eng cost and likely doesn't make sense to pick up until the UI stabilizes.
Depending on how much work it is, it does make sense to me to add the option to force the accessibility switcher off through a Chrome setting.
Hi all, fixed the issue.

I have LongShot enabled in accessibility. Link: https://play.google.com/store/apps/details?id=com.leavjenn.longshot

It automatically scrolls (which is a gesture) to take long screenshots of scrollable areas to include the whole area.

As soon as I turned it off in accessibility it fixed the issue, didn't even have to relaunch chrome.

But I still believe that chrome://flags/#enable-horizontal-tab-switcher and chrome://flags/#enable-accessibility-tab-switcher should work as overrides to disable their respective targeted features.

Thanks for all your help, and sorry you had to type out that long paragraph. By the way you pinpointed the issue in that paragraph:

"...we will show the accessibility tab switcher ... we detect an accessibility service that states it can perform gestures."

and

"My guess is that this user has an app installed that declares itself to be an accessibility service that can perform gestures."

Thanks for all your efforts! I must say I'm impressed by them as well. Sorry to have caused confusion!!
Status: WontFix (was: Assigned)
Thanks all for the prompt response!

Since the issue is not seen anymore, closing as WAI.

Comment 5 Deleted

Blockedon: 846134
There's still some possible work here to add a Chrome setting so that users can use the regular tab switcher with apps that declare accessibility services.

Issue 846134 isn't public, so let's keep this open as the public facing bug.
Agree with that. Thanks for being a great dev and showing initiative for the user experience! I would also love the option to restore the default functionality. Technically those chrome flags should work in the first place, so I think it is still a bug.
Status: Started (was: Assigned)
chrome://flags is meant to be a development and testing tool. Flipping flags there isn't guaranteed to behave in any particular way.

I have a prototype uploaded here: https://chromium-review.googlesource.com/c/chromium/src/+/1125323

I'd like to discuss with some specific folks who are returning from vacation in about a week and a half, then I'll send it out for review.
Screenshot_20180703-222226.png
120 KB View Download
Cc: srahim@chromium.org
I think we're good to move forward on this plan. Given that M69 branch is tomorrow, I think this should target M70 so that we have adequate time to test the change.

+srahim@ to consult on the strings. Shimi, please see the screenshot in comment #9. We are adding a setting to disable the "simplified tab switcher" view that's typically shown when accessibility services like TalkBack and Switch Access are enabled and could use guidance on what the title and description of the setting should say.
A quick update here: There are two outstanding TODO's in the CL regarding animations and tablet testing. I'm traveling most of this week so I plan to wrap this up next week. 
I'm worried that this is just a band-aid. Chrome is still enabling accessibility support for everything and degrading performance.

The ideal solution is that it shouldn't be necessary to use accessibility APIs to implement something like LongShot. That's a pretty big hammer for such a narrow use case.

Do users realize that if LongShot turned out to be malicious, it has access to all of the content of every screen on your phone, AND it has the ability to perform arbitrary gestures? In theory it could sit there waiting for you to sign into your bank account and then take control of your phone and send all of your money to the app author.

> The ideal solution is that it shouldn't be necessary to use accessibility APIs to implement something like LongShot. That's a pretty big hammer for such a narrow use case.

I agree, but that is definitely not a Chrome problem to solve. Based on public reporting, Android had started then paused a crackdown on accessibility API usage for non-accessibility purposes: https://arstechnica.com/gadgets/2017/12/google-pauses-android-accessibility-app-crackdown-after-public-outcry/

dmazzoni@ - it's probably worth reaching out to the Android folks who own this space if you're interested in following along.
Issue 869034 has been merged into this issue.
Screenshot from latest patchset
Screenshot_20180801-172052.png
121 KB View Download
Project Member

Comment 16 by bugdroid1@chromium.org, Aug 2

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

commit 1fffcaa3a17ce8a428343bd633f5f9583108dc79
Author: Theresa <twellington@chromium.org>
Date: Thu Aug 02 17:44:20 2018

Add a preference for the accessibility tab switcher

When accessibility mode is enabled, show a preference in accessibility
settings that allows uers to disable the accessibility tab switcher.

We make a best effort guess as to when we should show the accessibility
tab switcher. Some users would prefer to use the regular tab switcher,
however.

BUG= 859401 

Change-Id: Ie8a8cf317a216b4343188e1a6d6cc037d31aae64
Reviewed-on: https://chromium-review.googlesource.com/1125323
Commit-Queue: Theresa <twellington@chromium.org>
Reviewed-by: Steven Holte <holte@chromium.org>
Reviewed-by: Ted Choc <tedchoc@chromium.org>
Cr-Commit-Position: refs/heads/master@{#580238}
[modify] https://crrev.com/1fffcaa3a17ce8a428343bd633f5f9583108dc79/chrome/android/java/res/xml/accessibility_preferences.xml
[modify] https://crrev.com/1fffcaa3a17ce8a428343bd633f5f9583108dc79/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
[modify] https://crrev.com/1fffcaa3a17ce8a428343bd633f5f9583108dc79/chrome/android/java/src/org/chromium/chrome/browser/device/DeviceClassManager.java
[modify] https://crrev.com/1fffcaa3a17ce8a428343bd633f5f9583108dc79/chrome/android/java/src/org/chromium/chrome/browser/preferences/AccessibilityPreferences.java
[modify] https://crrev.com/1fffcaa3a17ce8a428343bd633f5f9583108dc79/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java
[modify] https://crrev.com/1fffcaa3a17ce8a428343bd633f5f9583108dc79/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarTablet.java
[modify] https://crrev.com/1fffcaa3a17ce8a428343bd633f5f9583108dc79/chrome/android/java/strings/android_chrome_strings.grd
[add] https://crrev.com/1fffcaa3a17ce8a428343bd633f5f9583108dc79/chrome/android/java/strings/android_chrome_strings_grd/IDS_ACCESSIBILITY_TAB_SWITCHER_SUMMARY.png.sha1
[add] https://crrev.com/1fffcaa3a17ce8a428343bd633f5f9583108dc79/chrome/android/java/strings/android_chrome_strings_grd/IDS_ACCESSIBILITY_TAB_SWITCHER_TITLE.png.sha1
[add] https://crrev.com/1fffcaa3a17ce8a428343bd633f5f9583108dc79/chrome/android/java/strings/android_chrome_strings_grd/IDS_READER_FOR_ACCESSIBILITY_TITLE.png.sha1
[modify] https://crrev.com/1fffcaa3a17ce8a428343bd633f5f9583108dc79/tools/metrics/histograms/histograms.xml

Status: Fixed (was: Started)
This setting will be available in 70.0.3511.0+.

Sign in to add a comment