diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc index 301149ed4c084..ac9effde50f06 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc @@ -3052,6 +3052,10 @@ const FeatureEntry kFeatureEntries[] = { {"ntp-realbox", flag_descriptions::kNtpRealboxName, flag_descriptions::kNtpRealboxDescription, kOsDesktop, FEATURE_VALUE_TYPE(features::kNtpRealbox)}, + + {"webui-a11y-enhancements", flag_descriptions::kWebUIA11yEnhancementsName, + flag_descriptions::kWebUIA11yEnhancementsDescription, kOsDesktop, + FEATURE_VALUE_TYPE(features::kWebUIA11yEnhancements)}, #endif // !defined(OS_ANDROID) #if defined(DCHECK_IS_CONFIGURABLE) diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json index 0a9dc9251a293..3e47a859a68b1 100644 --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json @@ -3329,6 +3329,11 @@ "owners": [ "davidbienvenu" ], "expiry_milestone": 81 }, + { + "name": "webui-a11y-enhancements", + "owners": [ "aee" ], + "expiry_milestone": 82 + }, { "name": "webui-tab-strip", "owners": [ "johntlee", "pbos" ], diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc index 4cb103206b3e3..973a1556a7de9 100644 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc @@ -2932,6 +2932,15 @@ const char kProactiveTabFreezeAndDiscardDescription[] = "Enables proactive tab freezing and discarding. This requires " "#enable-page-almost-idle."; +const char kWebUIA11yEnhancementsName[] = + "Enable accessibility enahncements in WebUI"; +const char kWebUIA11yEnhancementsDescription[] = + "This flag covers a wide variety of accessibility enhancements in WebUI " + "and is used to demonstrate the enhancements for review and testing. When " + "a enhancement is ready to be released, the enhancement will be taken out " + "from behind this feature flag. This flag will remain disabled and ready " + "to be used for other enhancements."; + #if defined(GOOGLE_CHROME_BUILD) const char kGoogleBrandedContextMenuName[] = diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h index b9a63a53de5b5..f218e1a93de42 100644 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h @@ -1718,6 +1718,9 @@ extern const char kOmniboxWrapPopupPositionDescription[]; extern const char kProactiveTabFreezeAndDiscardName[]; extern const char kProactiveTabFreezeAndDiscardDescription[]; +extern const char kWebUIA11yEnhancementsName[]; +extern const char kWebUIA11yEnhancementsDescription[]; + #if defined(GOOGLE_CHROME_BUILD) extern const char kGoogleBrandedContextMenuName[]; diff --git a/chrome/browser/ui/webui/settings/settings_ui.cc b/chrome/browser/ui/webui/settings/settings_ui.cc index 3ea47f5691e47..f0337c524a5a4 100644 --- a/chrome/browser/ui/webui/settings/settings_ui.cc +++ b/chrome/browser/ui/webui/settings/settings_ui.cc @@ -47,6 +47,7 @@ #include "chrome/browser/ui/webui/settings/settings_security_key_handler.h" #include "chrome/browser/ui/webui/settings/settings_startup_pages_handler.h" #include "chrome/browser/ui/webui/settings/site_settings_handler.h" +#include "chrome/common/chrome_features.h" #include "chrome/common/pref_names.h" #include "chrome/common/url_constants.h" #include "chrome/grit/settings_resources.h" @@ -270,6 +271,10 @@ SettingsUI::SettingsUI(content::WebUI* web_ui) AccountConsistencyModeManager::IsDiceEnabledForProfile(profile)); #endif // !defined(OS_CHROMEOS) + html_source->AddBoolean( + "a11yEnhancements", + base::FeatureList::IsEnabled(features::kWebUIA11yEnhancements)); + html_source->AddBoolean("unifiedConsentEnabled", unified_consent::IsUnifiedConsentFeatureEnabled()); diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc index 19d73db25a97f..e84e44fff1e23 100644 --- a/chrome/common/chrome_features.cc +++ b/chrome/common/chrome_features.cc @@ -821,6 +821,10 @@ const base::Feature kWebRtcRemoteEventLog{"WebRtcRemoteEventLog", // Compress remote-bound WebRTC event logs (if used; see kWebRtcRemoteEventLog). const base::Feature kWebRtcRemoteEventLogGzipped{ "WebRtcRemoteEventLogGzipped", base::FEATURE_ENABLED_BY_DEFAULT}; + +// Enable WebUI accessibility enhancements for review and testing. +const base::Feature kWebUIA11yEnhancements{"WebUIA11yEnhancements", + base::FEATURE_DISABLED_BY_DEFAULT}; #endif // Whether to enable "dark mode" enhancements in Mac Mojave or Windows 10 for diff --git a/chrome/common/chrome_features.h b/chrome/common/chrome_features.h index 97c62fbd55a31..ccf1fd4f0b0f8 100644 --- a/chrome/common/chrome_features.h +++ b/chrome/common/chrome_features.h @@ -514,6 +514,8 @@ COMPONENT_EXPORT(CHROME_FEATURES) extern const base::Feature kWebRtcRemoteEventLog; COMPONENT_EXPORT(CHROME_FEATURES) extern const base::Feature kWebRtcRemoteEventLogGzipped; +COMPONENT_EXPORT(CHROME_FEATURES) +extern const base::Feature kWebUIA11yEnhancements; #endif COMPONENT_EXPORT(CHROME_FEATURES) extern const base::Feature kWebUIDarkMode; diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml index a7335a9a7e9db..c326880b1e1a9 100644 --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml @@ -34830,6 +34830,7 @@ Called by update_gpu_driver_bug_workaround_entries.py.--> <int value="-1847835522" label="disable-touch-adjustment"/> <int value="-1847776781" label="enable-loading-ipc-optimization-for-small-resources"/> + <int value="-1846680525" label="WebUIA11yEnhancements:enabled"/> <int value="-1846471618" label="enable-experimental-accessibility-switch-access-text"/> <int value="-1844754731" label="Mash:disabled"/> @@ -36329,6 +36330,7 @@ from previous Chrome versions. <int value="149914698" label="SearchReadyOmnibox:disabled"/> <int value="151022756" label="ArcAvailableForChildAccount:disabled"/> <int value="151101719" label="HtmlBaseUsernameDetector:enabled"/> + <int value="151630887" label="WebUIA11yEnhancements:disabled"/> <int value="152867897" label="PasswordEditingAndroid:disabled"/> <int value="153347646" label="SmartDimModelV3:disabled"/> <int value="155977192" label="EnableFileManagerFormatDialog:disabled"/>