diff options
| author | 2023-02-20 07:30:07 +0000 | |
|---|---|---|
| committer | 2023-02-20 11:04:30 +0000 | |
| commit | 2fd620d718561fbf822a16ba8d5b8b1ae66db326 (patch) | |
| tree | 5e641d7f831bea3924029964f48e1748d5cdd8f9 | |
| parent | 5b5420b921b41464f862b0323e87a3f8005b367f (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
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); } |