Improve a11y for BiometricPrompt credential view

Ensures text that is important for accessibility in the auth prompt
credential view is read aloud by TalkBack.

Test: Manual:
1. Set PIN/pattern/password as screen unlock method
3. Enable Talkback in settings
4. Launch the CtsVerifier-v2 test app
5. Open SECURITY > Biometric Tests > BIOMETRIC+CREDENTIAL TESTS
6. Tap 4a: SetUserAuthParams: Credential, Cipher
7. Tap Choose Unlock time-based key with credential
8. Enter an incorrect PIN/pattern/password

Fixes: 151389440
Fixes: 151390960
Change-Id: I95c38cb678b0ae46988539b167c48fe9572677bc
This commit is contained in:
Curtis Belmonte
2020-04-03 11:51:10 -07:00
parent 754636846c
commit da9204a96b
2 changed files with 4 additions and 1 deletions

View File

@@ -249,6 +249,7 @@
<style name="TextAppearance.DeviceManagementDialog.Title" parent="@android:style/TextAppearance.DeviceDefault.DialogWindowTitle"/>
<style name="TextAppearance.AuthCredential">
<item name="android:accessibilityLiveRegion">polite</item>
<item name="android:gravity">center_horizontal</item>
<item name="android:textAlignment">gravity</item>
<item name="android:layout_gravity">top</item>

View File

@@ -214,9 +214,11 @@ public abstract class AuthCredentialView extends LinearLayout {
protected void onAttachedToWindow() {
super.onAttachedToWindow();
setText(mTitleView, getTitle(mBiometricPromptBundle));
final CharSequence title = getTitle(mBiometricPromptBundle);
setText(mTitleView, title);
setTextOrHide(mSubtitleView, getSubtitle(mBiometricPromptBundle));
setTextOrHide(mDescriptionView, getDescription(mBiometricPromptBundle));
announceForAccessibility(title);
final boolean isManagedProfile = Utils.isManagedProfile(mContext, mEffectiveUserId);
final Drawable image;