summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Roy Chou <juchengchou@google.com> 2023-03-16 07:43:53 +0000
committer Roy Chou <juchengchou@google.com> 2023-03-24 09:10:00 +0000
commit65dbc73925f16d9b33468e1d39ab810048b0b8d4 (patch)
treedc1972ff457e283d970446f2f1623fac2a021232
parent9ea42913946386b334c65ccb8bd58498866bc99c (diff)
fix(#MagSettingsPanel): modify content desription for buttons
For WindoeMagnificationSettings, originally the description for fullscreen button is "Switch Mode" not "FullScreen". Therefore, we modify the content description to "FullScreen". Besides, for b/271216561, the accessibility move actions should be binded to settings panel view. Originally it was binded to buttons. Therefore we modify the accessibilityDelegate and set it as the mSettingsView's accessibilityDelegate. Also, we add content description for buttons. For MagnificationModeSwitch, since we changed to open the settings panel when tapping on the switch button, we modify the button click accessibility action description from "Switch" to "Open magnification settings". Bug: 22092166, 271216561 Test: manually check with Talkback output Change-Id: I39c0ddf11ce307923af3459ce3155bc7e6d6cfbb
-rw-r--r--packages/SystemUI/res/layout/window_magnification_settings_view.xml12
-rw-r--r--packages/SystemUI/res/values/strings.xml4
-rw-r--r--packages/SystemUI/src/com/android/systemui/accessibility/MagnificationModeSwitch.java2
-rw-r--r--packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationSettings.java43
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/accessibility/MagnificationModeSwitchTest.java2
5 files changed, 15 insertions, 48 deletions
diff --git a/packages/SystemUI/res/layout/window_magnification_settings_view.xml b/packages/SystemUI/res/layout/window_magnification_settings_view.xml
index 7fd9865c93b7..db8191baa790 100644
--- a/packages/SystemUI/res/layout/window_magnification_settings_view.xml
+++ b/packages/SystemUI/res/layout/window_magnification_settings_view.xml
@@ -63,7 +63,8 @@
android:background="@drawable/accessibility_magnification_setting_view_image_btn_bg"
android:src="@drawable/ic_magnification_menu_small"
android:tint="@color/accessibility_magnification_image_button_tint"
- android:tintMode="src_atop" />
+ android:tintMode="src_atop"
+ android:contentDescription="@string/accessibility_magnification_small" />
<ImageButton
android:id="@+id/magnifier_medium_button"
@@ -74,7 +75,8 @@
android:background="@drawable/accessibility_magnification_setting_view_image_btn_bg"
android:src="@drawable/ic_magnification_menu_medium"
android:tint="@color/accessibility_magnification_image_button_tint"
- android:tintMode="src_atop" />
+ android:tintMode="src_atop"
+ android:contentDescription="@string/accessibility_magnification_medium" />
<ImageButton
android:id="@+id/magnifier_large_button"
@@ -85,7 +87,8 @@
android:background="@drawable/accessibility_magnification_setting_view_image_btn_bg"
android:src="@drawable/ic_magnification_menu_large"
android:tint="@color/accessibility_magnification_image_button_tint"
- android:tintMode="src_atop" />
+ android:tintMode="src_atop"
+ android:contentDescription="@string/accessibility_magnification_large" />
<ImageButton
android:id="@+id/magnifier_full_button"
@@ -96,7 +99,8 @@
android:background="@drawable/accessibility_magnification_setting_view_image_btn_bg"
android:src="@drawable/ic_open_in_full"
android:tint="@color/accessibility_magnification_image_button_tint"
- android:tintMode="src_atop" />
+ android:tintMode="src_atop"
+ android:contentDescription="@string/accessibility_magnification_fullscreen" />
</LinearLayout>
<LinearLayout
diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml
index 2aa912ce250d..e7be6fc80d1c 100644
--- a/packages/SystemUI/res/values/strings.xml
+++ b/packages/SystemUI/res/values/strings.xml
@@ -2335,8 +2335,6 @@
<string name="magnification_mode_switch_state_full_screen">Magnify full screen</string>
<!-- A11y state description for magnification mode switch that device is in window mode. [CHAR LIMIT=NONE] -->
<string name="magnification_mode_switch_state_window">Magnify part of screen</string>
- <!-- Click action label for magnification switch. [CHAR LIMIT=NONE] -->
- <string name="magnification_mode_switch_click_label">Switch</string>
<!-- Click action label for magnification settings panel. [CHAR LIMIT=NONE] -->
<string name="magnification_open_settings_click_label">Open magnification settings</string>
<!-- Label of the corner of a rectangle that you can tap and drag to resize the magnification area. [CHAR LIMIT=NONE] -->
@@ -2372,6 +2370,8 @@
<string name="accessibility_magnification_small">Small</string>
<!-- Click action label for magnification panel large size [CHAR LIMIT=NONE]-->
<string name="accessibility_magnification_large">Large</string>
+ <!-- Click action label for magnification panel full screen size [CHAR LIMIT=NONE]-->
+ <string name="accessibility_magnification_fullscreen">Full screen</string>
<!-- Click action label for magnification panel Done [CHAR LIMIT=20]-->
<string name="accessibility_magnification_done">Done</string>
<!-- Click action label for edit magnification size [CHAR LIMIT=20]-->
diff --git a/packages/SystemUI/src/com/android/systemui/accessibility/MagnificationModeSwitch.java b/packages/SystemUI/src/com/android/systemui/accessibility/MagnificationModeSwitch.java
index ae7a8aab5088..f817c3cb90a7 100644
--- a/packages/SystemUI/src/com/android/systemui/accessibility/MagnificationModeSwitch.java
+++ b/packages/SystemUI/src/com/android/systemui/accessibility/MagnificationModeSwitch.java
@@ -120,7 +120,7 @@ class MagnificationModeSwitch implements MagnificationGestureDetector.OnGestureL
R.string.magnification_mode_switch_description));
final AccessibilityAction clickAction = new AccessibilityAction(
AccessibilityAction.ACTION_CLICK.getId(), mContext.getResources().getString(
- R.string.magnification_mode_switch_click_label));
+ R.string.magnification_open_settings_click_label));
info.addAction(clickAction);
info.setClickable(true);
info.addAction(new AccessibilityAction(R.id.accessibility_action_move_up,
diff --git a/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationSettings.java b/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationSettings.java
index 32f80b2151b5..71c5f247b899 100644
--- a/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationSettings.java
+++ b/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationSettings.java
@@ -170,39 +170,11 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest
}
}
- private CharSequence formatContentDescription(int viewId) {
- if (viewId == R.id.magnifier_small_button) {
- return mContext.getResources().getString(
- R.string.accessibility_magnification_small);
- } else if (viewId == R.id.magnifier_medium_button) {
- return mContext.getResources().getString(
- R.string.accessibility_magnification_medium);
- } else if (viewId == R.id.magnifier_large_button) {
- return mContext.getResources().getString(
- R.string.accessibility_magnification_large);
- } else if (viewId == R.id.magnifier_done_button) {
- return mContext.getResources().getString(
- R.string.accessibility_magnification_done);
- } else if (viewId == R.id.magnifier_edit_button) {
- return mContext.getResources().getString(
- R.string.accessibility_resize);
- } else {
- return mContext.getResources().getString(
- R.string.magnification_mode_switch_description);
- }
- }
-
- private final AccessibilityDelegate mButtonDelegate = new AccessibilityDelegate() {
+ private final AccessibilityDelegate mPanelDelegate = new AccessibilityDelegate() {
@Override
public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) {
super.onInitializeAccessibilityNodeInfo(host, info);
- info.setContentDescription(formatContentDescription(host.getId()));
- final AccessibilityAction clickAction = new AccessibilityAction(
- AccessibilityAction.ACTION_CLICK.getId(), mContext.getResources().getString(
- R.string.magnification_mode_switch_click_label));
- info.addAction(clickAction);
- info.setClickable(true);
info.addAction(new AccessibilityAction(R.id.accessibility_action_move_up,
mContext.getString(R.string.accessibility_control_move_up)));
info.addAction(new AccessibilityAction(R.id.accessibility_action_move_down,
@@ -432,6 +404,8 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest
mSettingView.setFocusableInTouchMode(true);
mSettingView.setOnTouchListener(this::onTouch);
+ mSettingView.setAccessibilityDelegate(mPanelDelegate);
+
mPanelView = mSettingView.findViewById(R.id.magnifier_panel_view);
mSmallButton = mSettingView.findViewById(R.id.magnifier_small_button);
mMediumButton = mSettingView.findViewById(R.id.magnifier_medium_button);
@@ -456,22 +430,11 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest
toggleDiagonalScrolling();
});
- mSmallButton.setAccessibilityDelegate(mButtonDelegate);
mSmallButton.setOnClickListener(mButtonClickListener);
-
- mMediumButton.setAccessibilityDelegate(mButtonDelegate);
mMediumButton.setOnClickListener(mButtonClickListener);
-
- mLargeButton.setAccessibilityDelegate(mButtonDelegate);
mLargeButton.setOnClickListener(mButtonClickListener);
-
- mDoneButton.setAccessibilityDelegate(mButtonDelegate);
mDoneButton.setOnClickListener(mButtonClickListener);
-
- mFullScreenButton.setAccessibilityDelegate(mButtonDelegate);
mFullScreenButton.setOnClickListener(mButtonClickListener);
-
- mEditButton.setAccessibilityDelegate(mButtonDelegate);
mEditButton.setOnClickListener(mButtonClickListener);
mSettingView.setOnApplyWindowInsetsListener((v, insets) -> {
diff --git a/packages/SystemUI/tests/src/com/android/systemui/accessibility/MagnificationModeSwitchTest.java b/packages/SystemUI/tests/src/com/android/systemui/accessibility/MagnificationModeSwitchTest.java
index 1d8737c561bf..79dc057e4f28 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/accessibility/MagnificationModeSwitchTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/accessibility/MagnificationModeSwitchTest.java
@@ -400,7 +400,7 @@ public class MagnificationModeSwitchTest extends SysuiTestCase {
assertThat(nodeInfo.getActionList(),
hasItems(new AccessibilityNodeInfo.AccessibilityAction(
ACTION_CLICK.getId(), mContext.getResources().getString(
- R.string.magnification_mode_switch_click_label))));
+ R.string.magnification_open_settings_click_label))));
assertThat(nodeInfo.getActionList(),
hasItems(new AccessibilityNodeInfo.AccessibilityAction(
R.id.accessibility_action_move_up, mContext.getResources().getString(