From e2ad415fdba79b27dfd2c98a2b01d56db9257c71 Mon Sep 17 00:00:00 2001 From: Doris Ling Date: Thu, 27 Apr 2017 15:09:21 -0700 Subject: [PATCH] Add content description to the master switch toggle button. Set the preference title as the toggle button's content description, so that when user focus on the button, it will read the lable as well on top of just "switch on" or "switch off". Change-Id: Id1954fd54b7d38cb4e75d8b3e49d05ee694e0e41 Fix: 37618855 Test: make RunSettingsRoboTests --- .../settings/widget/MasterSwitchPreference.java | 1 + .../widget/MasterSwitchPreferenceTest.java | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/com/android/settings/widget/MasterSwitchPreference.java b/src/com/android/settings/widget/MasterSwitchPreference.java index 002cb77762e..29bc17bce5a 100644 --- a/src/com/android/settings/widget/MasterSwitchPreference.java +++ b/src/com/android/settings/widget/MasterSwitchPreference.java @@ -83,6 +83,7 @@ public class MasterSwitchPreference extends TwoTargetPreference { mSwitch = (Switch) holder.findViewById(R.id.switchWidget); if (mSwitch != null) { + mSwitch.setContentDescription(getTitle()); mSwitch.setChecked(mChecked); mSwitch.setEnabled(mEnableSwitch); } diff --git a/tests/robotests/src/com/android/settings/widget/MasterSwitchPreferenceTest.java b/tests/robotests/src/com/android/settings/widget/MasterSwitchPreferenceTest.java index 3747dda0525..21dc0384463 100644 --- a/tests/robotests/src/com/android/settings/widget/MasterSwitchPreferenceTest.java +++ b/tests/robotests/src/com/android/settings/widget/MasterSwitchPreferenceTest.java @@ -183,4 +183,19 @@ public class MasterSwitchPreferenceTest { preference.setDisabledByAdmin(null); assertThat(toggle.isEnabled()).isTrue(); } + + @Test + public void onBindViewHolder_toggleButtonShouldHaveContentDescription() { + final MasterSwitchPreference preference = new MasterSwitchPreference(mContext); + final PreferenceViewHolder holder = PreferenceViewHolder.createInstanceForTests( + LayoutInflater.from(mContext) + .inflate(R.layout.preference_widget_master_switch, null)); + final Switch toggle = (Switch) holder.findViewById(R.id.switchWidget); + final String label = "TestButton"; + preference.setTitle(label); + + preference.onBindViewHolder(holder); + + assertThat(toggle.getContentDescription()).isEqualTo(label); + } }