diff options
| author | 2023-03-16 07:43:53 +0000 | |
|---|---|---|
| committer | 2023-03-24 09:10:00 +0000 | |
| commit | 65dbc73925f16d9b33468e1d39ab810048b0b8d4 (patch) | |
| tree | dc1972ff457e283d970446f2f1623fac2a021232 | |
| parent | 9ea42913946386b334c65ccb8bd58498866bc99c (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
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( |