New issue
Advanced search Search tips

Issue 721663 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: May 2017
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 2
Type: Bug



Sign in to add a comment

TalkBack feedback for password fields is incorrect in Android O

Project Member Reported by dmazz...@chromium.org, May 12 2017

Issue description

This bug is about password text fields on the web, e.g. <input type=password>, when TalkBack is enabled.

Prior to O, Android used a setting that controlled whether the text of a password was read out or not. If it said that passwords should be read out, Chrome would expose the text to accessibility services regardless of whether the text was shown. If it said to obscure passwords, we'd only expose a string of dots.

Starting with O, the behavior has changed. Now there's a system setting that controls whether characters in passwords should be shown briefly, or not at all, and Chrome is supposed to just expose whatever is visible - whether a character or a dot.

HOWEVER (and this part isn't documented anywhere), we're not supposed to fire any events when a character is replaced with a dot, otherwise TalkBack announces that change.

Here's a quick test of all of the permutations and what should happen:

Settings > Security & Location > Show Passwords OFF
  1. Type a character in a password field - should hear character first
     (from keyboard), then "dot".
  2. Delete a character - should hear "dot deleted"
  3. Press volume keys to navigate through characters - should hear
     "dot"
  4. Move focus away and back to password, should hear something like
     "three dots"

Settings > Security & Location > Show Passwords ON
  1. Type a character in a password field - should hear character twice -
     once from keyboard, once from text field. Visually, character changes
     to a dot, but nothing should be announced.
  2. Delete a character - should hear "dot deleted", you should not hear the
     character again because it was replaced with a dot after a short delay
  3. Press volume keys to navigate through characters - should hear
     "dot" because characters were all replaced with dots
  4. Move focus away and back to password, should hear something like
     "eight dots"

 
Internal bug: b/36140540

Project Member

Comment 2 by bugdroid1@chromium.org, May 12 2017

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

commit 4e36c746c6c51486f9e57e47a946ee35918fd9f0
Author: dmazzoni <dmazzoni@chromium.org>
Date: Fri May 12 18:43:33 2017

Fix TalkBack feedback for password fields in Android O

Prior to O, we were supposed to expose either the value of a password field,
or just dots, depending on a value of a system setting, and independent of
what's shown visually.

In O, we're now supposed to expose what's visually shown, whether that's
characters or dots.

HOWEVER, if a character is replaced with a dot we have to update our internal
state, but not fire an Android event with that character change, to keep it
silent.

This fix reverts the change to LayoutText landed by Paul Miller in r468393
(and merged back to M58) because it was suppressing changes to the internal
accessibility state when a character was replaced with a dot. Instead now we
keep the internal state updated but suppress that particular event from being
fired on Android.

As a minor improvement, this change implements setTextSelection
on AccessibilityNodeInfo, which enables TalkBack to announce when
the cursor reaches the beginning or end of a text field the same
way as it does with native fields.

BUG= 721663 ,716212
TBR=wangxianzhu
NOTRY=true

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

[modify] https://crrev.com/4e36c746c6c51486f9e57e47a946ee35918fd9f0/content/browser/accessibility/browser_accessibility.cc
[modify] https://crrev.com/4e36c746c6c51486f9e57e47a946ee35918fd9f0/content/browser/accessibility/browser_accessibility.h
[modify] https://crrev.com/4e36c746c6c51486f9e57e47a946ee35918fd9f0/content/browser/accessibility/browser_accessibility_android.cc
[modify] https://crrev.com/4e36c746c6c51486f9e57e47a946ee35918fd9f0/content/browser/accessibility/browser_accessibility_manager_android.cc
[modify] https://crrev.com/4e36c746c6c51486f9e57e47a946ee35918fd9f0/content/browser/accessibility/browser_accessibility_manager_android.h
[modify] https://crrev.com/4e36c746c6c51486f9e57e47a946ee35918fd9f0/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java
[modify] https://crrev.com/4e36c746c6c51486f9e57e47a946ee35918fd9f0/content/public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java
[modify] https://crrev.com/4e36c746c6c51486f9e57e47a946ee35918fd9f0/third_party/WebKit/Source/core/layout/LayoutText.cpp

Labels: -Pri-0 Pri-2
Status: Fixed (was: Started)
Verified on latest Andriod -O/Chrome version-M60.
When deleting the password letter, It is reading as bullet instead of dot 

Sign in to add a comment