summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Candice Lo <chihtinglo@google.com> 2023-02-20 07:30:07 +0000
committer Candice Lo <chihtinglo@google.com> 2023-02-20 11:04:30 +0000
commit2fd620d718561fbf822a16ba8d5b8b1ae66db326 (patch)
tree5e641d7f831bea3924029964f48e1748d5cdd8f9
parent5b5420b921b41464f862b0323e87a3f8005b367f (diff)
Fix accessibility labels for icon buttons
The icons and frames could get accessibility focus at the same time previously since we set an onClickListener on the icon though the icons are not focusable in layout specification. Therefore, we move the onClickListener to the frames to keep the icons non-focusable. Bug: 269218388 Test: Manually - add a video and a screenshot to bug Test: atest SeekBarWithIconButtonsViewTest Test: atest FontScalingDialogTest Change-Id: I4ea0fd1efb4f8e84200e211519c5a46309cfb1c0
-rw-r--r--packages/SystemUI/src/com/android/systemui/common/ui/view/SeekBarWithIconButtonsView.java4
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/accessibility/fontscaling/FontScalingDialogTest.kt10
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/common/ui/view/SeekBarWithIconButtonsViewTest.java17
3 files changed, 22 insertions, 9 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/common/ui/view/SeekBarWithIconButtonsView.java b/packages/SystemUI/src/com/android/systemui/common/ui/view/SeekBarWithIconButtonsView.java
index 826253947ce1..1833202d64d4 100644
--- a/packages/SystemUI/src/com/android/systemui/common/ui/view/SeekBarWithIconButtonsView.java
+++ b/packages/SystemUI/src/com/android/systemui/common/ui/view/SeekBarWithIconButtonsView.java
@@ -110,7 +110,7 @@ public class SeekBarWithIconButtonsView extends LinearLayout {
mSeekbar.setOnSeekBarChangeListener(mSeekBarListener);
- mIconStart.setOnClickListener((view) -> {
+ mIconStartFrame.setOnClickListener((view) -> {
final int progress = mSeekbar.getProgress();
if (progress > 0) {
mSeekbar.setProgress(progress - 1);
@@ -118,7 +118,7 @@ public class SeekBarWithIconButtonsView extends LinearLayout {
}
});
- mIconEnd.setOnClickListener((view) -> {
+ mIconEndFrame.setOnClickListener((view) -> {
final int progress = mSeekbar.getProgress();
if (progress < mSeekbar.getMax()) {
mSeekbar.setProgress(progress + 1);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/accessibility/fontscaling/FontScalingDialogTest.kt b/packages/SystemUI/tests/src/com/android/systemui/accessibility/fontscaling/FontScalingDialogTest.kt
index 777dd4e0b4a3..ca6f42618e2a 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/accessibility/fontscaling/FontScalingDialogTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/accessibility/fontscaling/FontScalingDialogTest.kt
@@ -19,7 +19,7 @@ import android.os.Handler
import android.provider.Settings
import android.testing.AndroidTestingRunner
import android.testing.TestableLooper
-import android.widget.ImageView
+import android.view.ViewGroup
import android.widget.SeekBar
import androidx.test.filters.SmallTest
import com.android.systemui.R
@@ -68,14 +68,14 @@ class FontScalingDialogTest : SysuiTestCase() {
fun progressIsZero_clickIconEnd_seekBarProgressIncreaseOne_fontSizeScaled() {
fontScalingDialog.show()
- val iconEnd: ImageView = fontScalingDialog.findViewById(R.id.icon_end)!!
+ val iconEndFrame: ViewGroup = fontScalingDialog.findViewById(R.id.icon_end_frame)!!
val seekBarWithIconButtonsView: SeekBarWithIconButtonsView =
fontScalingDialog.findViewById(R.id.font_scaling_slider)!!
val seekBar: SeekBar = fontScalingDialog.findViewById(R.id.seekbar)!!
seekBarWithIconButtonsView.setProgress(0)
- iconEnd.performClick()
+ iconEndFrame.performClick()
val currentScale = systemSettings.getFloat(Settings.System.FONT_SCALE, /* def = */ 1.0f)
assertThat(seekBar.getProgress()).isEqualTo(1)
@@ -88,14 +88,14 @@ class FontScalingDialogTest : SysuiTestCase() {
fun progressIsMax_clickIconStart_seekBarProgressDecreaseOne_fontSizeScaled() {
fontScalingDialog.show()
- val iconStart: ImageView = fontScalingDialog.findViewById(R.id.icon_start)!!
+ val iconStartFrame: ViewGroup = fontScalingDialog.findViewById(R.id.icon_start_frame)!!
val seekBarWithIconButtonsView: SeekBarWithIconButtonsView =
fontScalingDialog.findViewById(R.id.font_scaling_slider)!!
val seekBar: SeekBar = fontScalingDialog.findViewById(R.id.seekbar)!!
seekBarWithIconButtonsView.setProgress(fontSizeValueArray.size - 1)
- iconStart.performClick()
+ iconStartFrame.performClick()
val currentScale = systemSettings.getFloat(Settings.System.FONT_SCALE, /* def = */ 1.0f)
assertThat(seekBar.getProgress()).isEqualTo(fontSizeValueArray.size - 2)
diff --git a/packages/SystemUI/tests/src/com/android/systemui/common/ui/view/SeekBarWithIconButtonsViewTest.java b/packages/SystemUI/tests/src/com/android/systemui/common/ui/view/SeekBarWithIconButtonsViewTest.java
index 2ed03465c6f0..eafe727ee7dc 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/common/ui/view/SeekBarWithIconButtonsViewTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/common/ui/view/SeekBarWithIconButtonsViewTest.java
@@ -20,6 +20,7 @@ import static com.google.common.truth.Truth.assertThat;
import android.testing.AndroidTestingRunner;
import android.testing.TestableLooper;
+import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.SeekBar;
@@ -42,6 +43,8 @@ public class SeekBarWithIconButtonsViewTest extends SysuiTestCase {
private ImageView mIconStart;
private ImageView mIconEnd;
+ private ViewGroup mIconStartFrame;
+ private ViewGroup mIconEndFrame;
private SeekBar mSeekbar;
private SeekBarWithIconButtonsView mIconDiscreteSliderLinearLayout;
@@ -50,6 +53,8 @@ public class SeekBarWithIconButtonsViewTest extends SysuiTestCase {
mIconDiscreteSliderLinearLayout = new SeekBarWithIconButtonsView(mContext);
mIconStart = mIconDiscreteSliderLinearLayout.findViewById(R.id.icon_start);
mIconEnd = mIconDiscreteSliderLinearLayout.findViewById(R.id.icon_end);
+ mIconStartFrame = mIconDiscreteSliderLinearLayout.findViewById(R.id.icon_start_frame);
+ mIconEndFrame = mIconDiscreteSliderLinearLayout.findViewById(R.id.icon_end_frame);
mSeekbar = mIconDiscreteSliderLinearLayout.findViewById(R.id.seekbar);
}
@@ -59,6 +64,8 @@ public class SeekBarWithIconButtonsViewTest extends SysuiTestCase {
assertThat(mIconStart.isEnabled()).isFalse();
assertThat(mIconEnd.isEnabled()).isTrue();
+ assertThat(mIconStartFrame.isEnabled()).isFalse();
+ assertThat(mIconEndFrame.isEnabled()).isTrue();
}
@Test
@@ -67,6 +74,8 @@ public class SeekBarWithIconButtonsViewTest extends SysuiTestCase {
assertThat(mIconEnd.isEnabled()).isFalse();
assertThat(mIconStart.isEnabled()).isTrue();
+ assertThat(mIconEndFrame.isEnabled()).isFalse();
+ assertThat(mIconStartFrame.isEnabled()).isTrue();
}
@Test
@@ -77,12 +86,15 @@ public class SeekBarWithIconButtonsViewTest extends SysuiTestCase {
assertThat(mIconStart.isEnabled()).isTrue();
assertThat(mIconEnd.isEnabled()).isTrue();
+ assertThat(mIconStartFrame.isEnabled()).isTrue();
+ assertThat(mIconEndFrame.isEnabled()).isTrue();
}
@Test
public void clickIconEnd_currentProgressIsOneToMax_reachesMax() {
mIconDiscreteSliderLinearLayout.setProgress(mSeekbar.getMax() - 1);
- mIconEnd.performClick();
+
+ mIconEndFrame.performClick();
assertThat(mSeekbar.getProgress()).isEqualTo(mSeekbar.getMax());
}
@@ -90,7 +102,8 @@ public class SeekBarWithIconButtonsViewTest extends SysuiTestCase {
@Test
public void clickIconStart_currentProgressIsOne_reachesZero() {
mIconDiscreteSliderLinearLayout.setProgress(1);
- mIconStart.performClick();
+
+ mIconStartFrame.performClick();
assertThat(mSeekbar.getProgress()).isEqualTo(0);
}