Add feature flag for Switch Access
Bug: 907179
Change-Id: I1f66d659690027191a5c2d0d21f09abb2f2d82d0
Reviewed-on: https://chromium-review.googlesource.com/c/1347575
Reviewed-by: Elly Fong-Jones <[email protected]>
Reviewed-by: Hector Carmona <[email protected]>
Reviewed-by: Dominic Mazzoni <[email protected]>
Commit-Queue: Anastasia Helfinstein <[email protected]>
Cr-Commit-Position: refs/heads/master@{#610911}
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index 5afcfa0b..e36dcd1 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -2734,6 +2734,12 @@
{"enable-cros-ime-service", flag_descriptions::kImeServiceName,
flag_descriptions::kImeServiceDescription, kOsCrOS,
FEATURE_VALUE_TYPE(chromeos::features::kImeServiceConnectable)},
+ {"enable-experimental-accessibility-switch-access",
+ flag_descriptions::kExperimentalAccessibilitySwitchAccessName,
+ flag_descriptions::kExperimentalAccessibilitySwitchAccessDescription,
+ kOsCrOS,
+ SINGLE_VALUE_TYPE(
+ ::switches::kEnableExperimentalAccessibilitySwitchAccess)},
#endif // OS_CHROMEOS
#if !defined(OS_ANDROID) && defined(GOOGLE_CHROME_BUILD)
{"enable-google-branded-context-menu",
diff --git a/chrome/browser/chromeos/accessibility/accessibility_manager.cc b/chrome/browser/chromeos/accessibility/accessibility_manager.cc
index c754b2c..5b47c0ff 100644
--- a/chrome/browser/chromeos/accessibility/accessibility_manager.cc
+++ b/chrome/browser/chromeos/accessibility/accessibility_manager.cc
@@ -873,10 +873,10 @@
// even if the preference is enabled, if the flag isn't also set.
base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
if (!command_line->HasSwitch(
- ::switches::kEnableExperimentalAccessibilityFeatures)) {
+ ::switches::kEnableExperimentalAccessibilitySwitchAccess)) {
if (enabled) {
LOG(WARNING) << "Switch access enabled but experimental accessibility "
- << "features flag is not set.";
+ << "switch access flag is not set.";
}
return;
}
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
index 50e74f38..309dde0 100644
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -1127,6 +1127,11 @@
"expiry_milestone": 76
},
{
+ "name": "enable-experimental-accessibility-switch-access",
+ "owners": [ "[email protected]", "dmazzoni", "dtseng" ],
+ "expiry_milestone": 76
+ },
+ {
"name": "enable-experimental-app-banners",
// "owners": [ "your-team" ],
"expiry_milestone": 76
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
index a3590a7..84f0e10 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -694,6 +694,11 @@
const char kExperimentalAccessibilityFeaturesDescription[] =
"Enable additional accessibility features in the Settings page.";
+const char kExperimentalAccessibilitySwitchAccessName[] =
+ "Experimental feature Switch Access";
+const char kExperimentalAccessibilitySwitchAccessDescription[] =
+ "Add a setting to enable the prototype of Switch Access";
+
const char kVizDisplayCompositorName[] = "Viz Display Compositor (OOP-D)";
const char kVizDisplayCompositorDescription[] =
"If enabled, the display compositor runs as part of the viz service in the"
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
index b3ae602b..d197f1f 100644
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -159,6 +159,9 @@
extern const char kExperimentalAccessibilityFeaturesName[];
extern const char kExperimentalAccessibilityFeaturesDescription[];
+extern const char kExperimentalAccessibilitySwitchAccessName[];
+extern const char kExperimentalAccessibilitySwitchAccessDescription[];
+
extern const char kFCMInvalidationsName[];
extern const char kFCMInvalidationsDescription[];
diff --git a/chrome/browser/resources/chromeos/switch_access/switch_access_e2e_test_base.js b/chrome/browser/resources/chromeos/switch_access/switch_access_e2e_test_base.js
index f2d76c88..955ee093 100644
--- a/chrome/browser/resources/chromeos/switch_access/switch_access_e2e_test_base.js
+++ b/chrome/browser/resources/chromeos/switch_access/switch_access_e2e_test_base.js
@@ -51,7 +51,7 @@
base::Unretained(chromeos::AccessibilityManager::Get()),
true);
base::CommandLine::ForCurrentProcess()->AppendSwitch(
- ::switches::kEnableExperimentalAccessibilityFeatures);
+ ::switches::kEnableExperimentalAccessibilitySwitchAccess);
chromeos::AccessibilityManager::Get()->SetSwitchAccessEnabled(true);
WaitForExtension(extension_misc::kSwitchAccessExtensionId, load_cb);
*/ });
diff --git a/chrome/browser/resources/settings/a11y_page/manage_a11y_page.html b/chrome/browser/resources/settings/a11y_page/manage_a11y_page.html
index 67b74e5..25fd06a 100644
--- a/chrome/browser/resources/settings/a11y_page/manage_a11y_page.html
+++ b/chrome/browser/resources/settings/a11y_page/manage_a11y_page.html
@@ -169,7 +169,7 @@
pref="{{prefs.settings.a11y.caret_highlight}}"
label="$i18n{caretHighlightLabel}">
</settings-toggle-button>
- <template is="dom-if" if="[[showExperimentalFeatures_]]">
+ <template is="dom-if" if="[[showExperimentalSwitchAccess_]]">
<settings-toggle-button
pref="{{prefs.settings.a11y.switch_access}}"
label="$i18n{switchAccessLabel}">
diff --git a/chrome/browser/resources/settings/a11y_page/manage_a11y_page.js b/chrome/browser/resources/settings/a11y_page/manage_a11y_page.js
index da1722b..d3c5e11 100644
--- a/chrome/browser/resources/settings/a11y_page/manage_a11y_page.js
+++ b/chrome/browser/resources/settings/a11y_page/manage_a11y_page.js
@@ -147,6 +147,14 @@
},
},
+ showExperimentalSwitchAccess_: {
+ type: Boolean,
+ value: function() {
+ return loadTimeData.getBoolean(
+ 'showExperimentalAccessibilitySwitchAccess');
+ },
+ },
+
/**
* Whether the docked magnifier flag is enabled.
* @private {boolean}
diff --git a/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc
index 2c3c4be..f8a2a3f 100644
--- a/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc
@@ -333,6 +333,11 @@
base::CommandLine::ForCurrentProcess()->HasSwitch(
::switches::kEnableExperimentalAccessibilityFeatures));
+ html_source->AddBoolean(
+ "showExperimentalAccessibilitySwitchAccess",
+ base::CommandLine::ForCurrentProcess()->HasSwitch(
+ ::switches::kEnableExperimentalAccessibilitySwitchAccess));
+
html_source->AddBoolean("dockedMagnifierFeatureEnabled",
ash::features::IsDockedMagnifierEnabled());
#endif
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index 6a4f173..b74d2572 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -29245,6 +29245,8 @@
<int value="-1956747298" label="LayeredAPI:enabled"/>
<int value="-1956349722" label="disable-smooth-scrolling"/>
<int value="-1955923385" label="EnableGamepadButtonAxisEvents:enabled"/>
+ <int value="-1954246274"
+ label="enable-experimental-accessibility-switch-access"/>
<int value="-1953121360" label="EphemeralTab:disabled"/>
<int value="-1948540128" label="disable-webrtc-hw-encoding (deprecated)"/>
<int value="-1946595906" label="enable-push-api-background-mode"/>
diff --git a/ui/accessibility/accessibility_switches.cc b/ui/accessibility/accessibility_switches.cc
index 580987d2..d1df718 100644
--- a/ui/accessibility/accessibility_switches.cc
+++ b/ui/accessibility/accessibility_switches.cc
@@ -13,6 +13,10 @@
const char kEnableExperimentalAccessibilityFeatures[] =
"enable-experimental-accessibility-features";
+// Shows setting to enable Switch Access before it has launched.
+const char kEnableExperimentalAccessibilitySwitchAccess[] =
+ "enable-experimental-accessibility-switch-access";
+
bool AreExperimentalAccessibilityFeaturesEnabled() {
return base::CommandLine::ForCurrentProcess()->HasSwitch(
::switches::kEnableExperimentalAccessibilityFeatures);
diff --git a/ui/accessibility/accessibility_switches.h b/ui/accessibility/accessibility_switches.h
index 0bfea58..735a76a 100644
--- a/ui/accessibility/accessibility_switches.h
+++ b/ui/accessibility/accessibility_switches.h
@@ -11,6 +11,7 @@
namespace switches {
AX_EXPORT extern const char kEnableExperimentalAccessibilityFeatures[];
+AX_EXPORT extern const char kEnableExperimentalAccessibilitySwitchAccess[];
// Returns true if experimental accessibility features are enabled.
AX_EXPORT bool AreExperimentalAccessibilityFeaturesEnabled();