0

[a11y] Add Mouse Keys accelerator to Shortcut customization app.

BUG=b:335456364
TEST=ash_unittests --gtest_filter=MouseKeysTest.*

Change-Id: I6eead29397ca15dfe34a784c94af8d728c9b4909
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5686299
Reviewed-by: Jimmy Gong <jimmyxgong@chromium.org>
Commit-Queue: Emily Stark <estark@chromium.org>
Auto-Submit: Tzarial Kuznia <zork@chromium.org>
Reviewed-by: Emily Stark <estark@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1325933}
This commit is contained in:
Tzarial Kuznia
2024-07-11 06:21:28 +00:00
committed by Chromium LUCI CQ
parent c894df0a6b
commit 2ae4fc46d9
10 changed files with 27 additions and 2 deletions

@ -4310,6 +4310,9 @@ No devices connected.
<message name="IDS_ASH_ACCELERATOR_DESCRIPTION_TOGGLE_MIRROR_MODE" desc="Label for accelerator action - Mirror monitors.">
Mirror monitors
</message>
<message name="IDS_ASH_ACCELERATOR_DESCRIPTION_TOGGLE_MOUSE_KEYS" desc="Label for accelerator action - Pause and resume mouse keys.">
Pause/resume mouse keys when it's on
</message>
<message name="IDS_ASH_ACCELERATOR_DESCRIPTION_TOGGLE_OVERVIEW" desc="Label for accelerator action - Overview mode.">
Overview mode
</message>

@ -0,0 +1 @@
b7ae7c7991cb6756400857c8e78c8530054a15b8

@ -98,6 +98,7 @@ enum AcceleratorSubcategory {
kWindows,
kDesks,
kChromeVox,
kMouseKeys,
kVisibility,
kAccessibilityNavigation,
};

@ -40,6 +40,7 @@
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "ui/accessibility/accessibility_features.h"
#include "ui/base/ime/ash/input_method_manager.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/ui_base_features.h"
@ -453,6 +454,8 @@ bool ShouldExcludeItem(const AcceleratorLayoutDetails& details) {
case kTilingWindowResizeUp:
case kTilingWindowResizeDown:
return !features::IsTilingWindowResizeEnabled();
case kToggleMouseKeys:
return !::features::IsAccessibilityMouseKeysEnabled();
case kToggleSnapGroupWindowsMinimizeAndRestore:
return true;
}

@ -1722,6 +1722,14 @@ const AcceleratorLayoutMap& GetAcceleratorLayoutMap() {
mojom::AcceleratorSubcategory::kChromeVox,
/*locked=*/true, mojom::AcceleratorLayoutStyle::kDefault,
mojom::AcceleratorSource::kAsh)},
{AcceleratorAction::kToggleMouseKeys,
AcceleratorLayoutDetails(
AcceleratorAction::kToggleMouseKeys,
IDS_ASH_ACCELERATOR_DESCRIPTION_TOGGLE_MOUSE_KEYS,
mojom::AcceleratorCategory::kAccessibility,
mojom::AcceleratorSubcategory::kMouseKeys,
/*locked=*/false, mojom::AcceleratorLayoutStyle::kDefault,
mojom::AcceleratorSource::kAsh)},
{AcceleratorAction::kToggleHighContrast,
AcceleratorLayoutDetails(
AcceleratorAction::kToggleHighContrast,

@ -268,8 +268,6 @@ constexpr auto kAshAcceleratorsWithoutLayout =
AcceleratorAction::kToggleWifi,
AcceleratorAction::kTouchHudClear,
AcceleratorAction::kTouchHudModeChange,
// TODO(b/335456364): Allow modification of Toggle Mouse Keys
AcceleratorAction::kToggleMouseKeys,
AcceleratorAction::kVolumeMuteToggle,
AcceleratorAction::kUnpin,
});
@ -480,6 +478,9 @@ inline constexpr uint32_t kAcceleratorLayouts[] = {
// notification that hardcodes ctrl + alt + z into the notification message.
AcceleratorAction::kToggleSpokenFeedback,
// Accessibility > Mouse Keys
AcceleratorAction::kToggleMouseKeys,
// Accessibility > Visibility
AcceleratorAction::kEnableSelectToSpeak,
AcceleratorAction::kToggleHighContrast,

@ -197,6 +197,8 @@ export const getSubcategoryNameStringId =
return `${subcategoryPrefix}Desks`;
case AcceleratorSubcategory.kChromeVox:
return `${subcategoryPrefix}ChromeVox`;
case AcceleratorSubcategory.kMouseKeys:
return `${subcategoryPrefix}MouseKeys`;
case AcceleratorSubcategory.kVisibility:
return `${subcategoryPrefix}Visibility`;
case AcceleratorSubcategory.kAccessibilityNavigation:

@ -157,6 +157,8 @@ void AddLocalizedStrings(content::WebUIDataSource* source) {
{"subcategoryDesks", IDS_SHORTCUT_CUSTOMIZATION_SUBCATEGORY_DESKS},
{"subcategoryChromeVox",
IDS_SHORTCUT_CUSTOMIZATION_SUBCATEGORY_CHROMEVOX},
{"subcategoryMouseKeys",
IDS_SHORTCUT_CUSTOMIZATION_SUBCATEGORY_MOUSE_KEYS},
{"subcategoryVisibility",
IDS_SHORTCUT_CUSTOMIZATION_SUBCATEGORY_VISIBILITY},
{"subcategoryAccessibilityNavigation",

@ -6094,6 +6094,9 @@
<message name="IDS_SHORTCUT_CUSTOMIZATION_SUBCATEGORY_CHROMEVOX" desc="Subcategory named 'ChromeVox' shown within main shortcuts section">
ChromeVox
</message>
<message name="IDS_SHORTCUT_CUSTOMIZATION_SUBCATEGORY_MOUSE_KEYS" desc="Subcategory named 'Mouse keys' shown within main shortcuts section">
Mouse keys
</message>
<message name="IDS_SHORTCUT_CUSTOMIZATION_SUBCATEGORY_VISIBILITY" desc="Subcategory named 'Visibility' shown within main shortcuts section">
Visibility
</message>

@ -0,0 +1 @@
b7ae7c7991cb6756400857c8e78c8530054a15b8