Metrics for unique users of key assistive technologies
Accessibility metrics are fired once, 45 seconds after startup.
However, UMA counts unique users on a daily basis.
This means that the metrics system is only counting 1/2 of users who don't
relaunch their browser in a 2 day period. Or 1/3 of users who don't
relaunch for 3 days, etc.
Adding the following *.EveryReport alternate histogram names for
histograms that fire more often. These can be used with the unique
users aggregation option when viewing metrics:
Accessibility.CrosSpokenFeedback.EveryReport
Accessibility.Android.ScreenReader.EveryReport,
Accessibility.Mac.ScreenReader.EveryReport,
Accessibility.WinScreenReader2.EveryReport,
Accessibility.WinJAWS.EveryReport
Accessibility.WinNVDA.EveryReport
Accessibility.WinZoomText.EveryReport
(cherry picked from commit 81ce2bd7582c2ea1e75969905d02dcaa636e36b1)
Bug: 988502
Change-Id: I0b29dc35615668aafb7e873e574c1ba7ae280ead
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1724698
Commit-Queue: Aaron Leventhal <[email protected]>
Reviewed-by: Jesse Doherty <[email protected]>
Reviewed-by: Nektarios Paisios <[email protected]>
Cr-Original-Commit-Position: refs/heads/master@{#682971}
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1746847
Reviewed-by: Aaron Leventhal <[email protected]>
Cr-Commit-Position: refs/branch-heads/3865@{#309}
Cr-Branched-From: 0cdcc6158160790658d1f033d3db873603250124-refs/heads/master@{#681094}
diff --git a/chrome/browser/metrics/DEPS b/chrome/browser/metrics/DEPS
index b19aa9b..e945fac 100644
--- a/chrome/browser/metrics/DEPS
+++ b/chrome/browser/metrics/DEPS
@@ -1,5 +1,6 @@
include_rules = [
"+chrome/services/util_win/util_win_impl.h",
+ "+content/browser/accessibility/accessibility_metrics_provider.h",
]
specific_include_rules = {
diff --git a/chrome/browser/metrics/chrome_metrics_service_client.cc b/chrome/browser/metrics/chrome_metrics_service_client.cc
index 19f0c4f7..61490caf 100644
--- a/chrome/browser/metrics/chrome_metrics_service_client.cc
+++ b/chrome/browser/metrics/chrome_metrics_service_client.cc
@@ -95,6 +95,7 @@
#include "components/sync_device_info/device_count_metrics_provider.h"
#include "components/ukm/ukm_service.h"
#include "components/version_info/version_info.h"
+#include "content/browser/accessibility/accessibility_metrics_provider.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/histogram_fetcher.h"
@@ -759,6 +760,9 @@
metrics_service_->RegisterMetricsProvider(
SigninStatusMetricsProvider::CreateInstance(
std::make_unique<ChromeSigninStatusMetricsProviderDelegate>()));
+ // ChromeOS uses ChromeOSMetricsProvider for accessibility metrics provider.
+ metrics_service_->RegisterMetricsProvider(
+ std::make_unique<AccessibilityMetricsProvider>());
#endif // !defined(OS_CHROMEOS)
metrics_service_->RegisterMetricsProvider(
diff --git a/chrome/browser/metrics/chrome_metrics_service_client_unittest.cc b/chrome/browser/metrics/chrome_metrics_service_client_unittest.cc
index 14d206f1..a700c30 100644
--- a/chrome/browser/metrics/chrome_metrics_service_client_unittest.cc
+++ b/chrome/browser/metrics/chrome_metrics_service_client_unittest.cc
@@ -189,7 +189,8 @@
#if !defined(OS_CHROMEOS)
// ChromeSigninStatusMetricsProvider (for non ChromeOS).
- expected_providers++;
+ // AccessibilityMetricsProvider
+ expected_providers += 2;
#endif // !defined(OS_CHROMEOS)
#if !defined(OS_ANDROID) && !defined(OS_CHROMEOS)
diff --git a/chrome/browser/metrics/chromeos_metrics_provider.cc b/chrome/browser/metrics/chromeos_metrics_provider.cc
index 31db84b..b520f5f 100644
--- a/chrome/browser/metrics/chromeos_metrics_provider.cc
+++ b/chrome/browser/metrics/chromeos_metrics_provider.cc
@@ -8,6 +8,7 @@
#include <string>
#include <vector>
+#include "ash/public/cpp/ash_pref_names.h"
#include "base/barrier_closure.h"
#include "base/bind.h"
#include "base/callback_helpers.h"
@@ -251,6 +252,14 @@
}
}
+void ChromeOSMetricsProvider::ProvideAccessibilityMetrics() {
+ PrefService* pref = g_browser_process->local_state();
+ bool is_spoken_feedback_enabled =
+ pref->GetBoolean(ash::prefs::kAccessibilitySpokenFeedbackEnabled);
+ UMA_HISTOGRAM_BOOLEAN("Accessibility.CrosSpokenFeedback.EveryReport",
+ is_spoken_feedback_enabled);
+}
+
void ChromeOSMetricsProvider::ProvideStabilityMetrics(
metrics::SystemProfileProto* system_profile_proto) {
metrics::SystemProfileProto::Stability* stability_proto =
@@ -286,6 +295,7 @@
void ChromeOSMetricsProvider::ProvideCurrentSessionData(
metrics::ChromeUserMetricsExtension* uma_proto) {
+ ProvideAccessibilityMetrics();
ProvideStabilityMetrics(uma_proto->mutable_system_profile());
std::vector<SampledProfile> sampled_profiles;
if (profile_provider_->GetSampledProfiles(&sampled_profiles)) {
diff --git a/chrome/browser/metrics/chromeos_metrics_provider.h b/chrome/browser/metrics/chromeos_metrics_provider.h
index 5f7a7824..0a7c8b4c 100644
--- a/chrome/browser/metrics/chromeos_metrics_provider.h
+++ b/chrome/browser/metrics/chromeos_metrics_provider.h
@@ -82,6 +82,8 @@
metrics::ChromeUserMetricsExtension* uma_proto) override;
private:
+ void ProvideAccessibilityMetrics();
+
// Update the number of users logged into a multi-profile session.
// If the number of users change while the log is open, the call invalidates
// the user count value.
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
index f46547c..aff5de7 100644
--- a/content/browser/BUILD.gn
+++ b/content/browser/BUILD.gn
@@ -2615,6 +2615,12 @@
"//chromeos/network",
"//components/session_manager/core",
]
+ } else {
+ sources += [
+ # ChromeOS accessibility metrics provider is in chromeos_metrics_provider.
+ "accessibility/accessibility_metrics_provider.cc",
+ "accessibility/accessibility_metrics_provider.h",
+ ]
}
if (enable_cros_libassistant) {
diff --git a/content/browser/accessibility/accessibility_metrics_provider.cc b/content/browser/accessibility/accessibility_metrics_provider.cc
new file mode 100644
index 0000000..22a0945
--- /dev/null
+++ b/content/browser/accessibility/accessibility_metrics_provider.cc
@@ -0,0 +1,17 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "content/browser/accessibility/accessibility_metrics_provider.h"
+
+#include "content/browser/accessibility/browser_accessibility_state_impl.h"
+
+AccessibilityMetricsProvider::AccessibilityMetricsProvider() {}
+
+AccessibilityMetricsProvider::~AccessibilityMetricsProvider() {}
+
+void AccessibilityMetricsProvider::ProvideCurrentSessionData(
+ metrics::ChromeUserMetricsExtension* uma_proto) {
+ content::BrowserAccessibilityStateImpl::GetInstance()
+ ->UpdateUniqueUserHistograms();
+}
diff --git a/content/browser/accessibility/accessibility_metrics_provider.h b/content/browser/accessibility/accessibility_metrics_provider.h
new file mode 100644
index 0000000..944a557
--- /dev/null
+++ b/content/browser/accessibility/accessibility_metrics_provider.h
@@ -0,0 +1,33 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CONTENT_BROWSER_ACCESSIBILITY_ACCESSIBILITY_METRICS_PROVIDER_H_
+#define CONTENT_BROWSER_ACCESSIBILITY_ACCESSIBILITY_METRICS_PROVIDER_H_
+
+#include "components/metrics/metrics_provider.h"
+#include "content/common/content_export.h"
+
+////////////////////////////////////////////////////////////////////////////////
+//
+// AccessibilityMetricsProvider
+//
+// A class used to provide frequent signals for AT or accessibility usage
+// histograms on Win, Mac and Android, enable accurate counting of unique users.
+//
+////////////////////////////////////////////////////////////////////////////////
+class CONTENT_EXPORT AccessibilityMetricsProvider
+ : public metrics::MetricsProvider {
+ public:
+ AccessibilityMetricsProvider();
+ ~AccessibilityMetricsProvider() override;
+
+ // MetricsProvider:
+ void ProvideCurrentSessionData(
+ metrics::ChromeUserMetricsExtension* uma_proto) override;
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(AccessibilityMetricsProvider);
+};
+
+#endif // CONTENT_BROWSER_ACCESSIBILITY_ACCESSIBILITY_METRICS_PROVIDER_H_
diff --git a/content/browser/accessibility/browser_accessibility_state_impl.cc b/content/browser/accessibility/browser_accessibility_state_impl.cc
index 6a8924b..73a7642 100644
--- a/content/browser/accessibility/browser_accessibility_state_impl.cc
+++ b/content/browser/accessibility/browser_accessibility_state_impl.cc
@@ -8,6 +8,7 @@
#include "base/bind.h"
#include "base/command_line.h"
+#include "base/metrics/histogram_functions.h"
#include "base/metrics/histogram_macros.h"
#include "base/task/post_task.h"
#include "build/build_config.h"
@@ -195,6 +196,7 @@
UpdatePlatformSpecificHistogramsOnUIThread() {}
void BrowserAccessibilityStateImpl::
UpdatePlatformSpecificHistogramsOnOtherThread() {}
+void BrowserAccessibilityStateImpl::UpdateUniqueUserHistograms() {}
#endif
void BrowserAccessibilityStateImpl::AddAccessibilityModeFlags(ui::AXMode mode) {
diff --git a/content/browser/accessibility/browser_accessibility_state_impl.h b/content/browser/accessibility/browser_accessibility_state_impl.h
index 6c60116e..fae609a 100644
--- a/content/browser/accessibility/browser_accessibility_state_impl.h
+++ b/content/browser/accessibility/browser_accessibility_state_impl.h
@@ -11,6 +11,7 @@
#include "base/macros.h"
#include "base/memory/singleton.h"
#include "build/build_config.h"
+#include "components/metrics/metrics_provider.h"
#include "content/public/browser/browser_accessibility_state.h"
#include "ui/accessibility/ax_mode.h"
#include "ui/accessibility/ax_mode_observer.h"
@@ -65,6 +66,11 @@
// AXModeObserver
void OnAXModeAdded(ui::AXMode mode) override;
+ // Fire frequent metrics signals to ensure users keeping browser open multiple
+ // days are counted each day, not only at launch. This is necessary, because
+ // UMA only aggregates uniques on a daily basis,
+ void UpdateUniqueUserHistograms();
+
// Accessibility objects can have the "hot tracked" state set when
// the mouse is hovering over them, but this makes tests flaky because
// the test behaves differently when the mouse happens to be over an
diff --git a/content/browser/accessibility/browser_accessibility_state_impl_android.cc b/content/browser/accessibility/browser_accessibility_state_impl_android.cc
index 1a7c52bb..b8c53a6 100644
--- a/content/browser/accessibility/browser_accessibility_state_impl_android.cc
+++ b/content/browser/accessibility/browser_accessibility_state_impl_android.cc
@@ -42,6 +42,12 @@
mode.has_mode(ui::AXMode::kScreenReader));
}
+void BrowserAccessibilityStateImpl::UpdateUniqueUserHistograms() {
+ ui::AXMode mode = GetAccessibilityMode();
+ UMA_HISTOGRAM_BOOLEAN("Accessibility.Android.ScreenReader.EveryReport",
+ mode.has_mode(ui::AXMode::kScreenReader));
+}
+
// static
void JNI_BrowserAccessibilityState_OnAnimatorDurationScaleChanged(JNIEnv* env) {
// We need to call into gfx::Animation and WebContentsImpl on the UI thread,
diff --git a/content/browser/accessibility/browser_accessibility_state_impl_mac.mm b/content/browser/accessibility/browser_accessibility_state_impl_mac.mm
index 92601ed..fc61262 100644
--- a/content/browser/accessibility/browser_accessibility_state_impl_mac.mm
+++ b/content/browser/accessibility/browser_accessibility_state_impl_mac.mm
@@ -93,4 +93,10 @@
mode.has_mode(ui::AXMode::kScreenReader));
}
+void BrowserAccessibilityStateImpl::UpdateUniqueUserHistograms() {
+ ui::AXMode mode = GetAccessibilityMode();
+ UMA_HISTOGRAM_BOOLEAN("Accessibility.Mac.ScreenReader.EveryReport",
+ mode.has_mode(ui::AXMode::kScreenReader));
+}
+
} // namespace content
diff --git a/content/browser/accessibility/browser_accessibility_state_impl_win.cc b/content/browser/accessibility/browser_accessibility_state_impl_win.cc
index 0fd8916..7a1fc8f 100644
--- a/content/browser/accessibility/browser_accessibility_state_impl_win.cc
+++ b/content/browser/accessibility/browser_accessibility_state_impl_win.cc
@@ -23,6 +23,10 @@
namespace {
+static bool g_jaws = false;
+static bool g_nvda = false;
+static bool g_zoomtext = false;
+
// Enables accessibility based on three possible clues that indicate
// accessibility API usage.
//
@@ -146,31 +150,37 @@
return;
// Look for DLLs of assistive technology known to work with Chrome.
- bool jaws = false;
- bool nvda = false;
- bool satogo = false;
- bool zoomtext = false;
size_t module_count = bytes_required / sizeof(HMODULE);
+ bool satogo = false; // Very few users -- do not need uniques
for (size_t i = 0; i < module_count; i++) {
TCHAR filename[MAX_PATH];
GetModuleFileName(modules[i], filename, base::size(filename));
base::string16 module_name(base::FilePath(filename).BaseName().value());
if (base::LowerCaseEqualsASCII(module_name, "fsdomsrv.dll"))
- jaws = true;
+ g_jaws = true;
if (base::LowerCaseEqualsASCII(module_name, "vbufbackend_gecko_ia2.dll") ||
base::LowerCaseEqualsASCII(module_name, "nvdahelperremote.dll"))
- nvda = true;
+ g_nvda = true;
if (base::LowerCaseEqualsASCII(module_name, "stsaw32.dll"))
satogo = true;
if (base::LowerCaseEqualsASCII(module_name, "zslhook.dll") ||
base::LowerCaseEqualsASCII(module_name, "zslhook64.dll"))
- zoomtext = true;
+ g_zoomtext = true;
}
- UMA_HISTOGRAM_BOOLEAN("Accessibility.WinJAWS", jaws);
- UMA_HISTOGRAM_BOOLEAN("Accessibility.WinNVDA", nvda);
+ UMA_HISTOGRAM_BOOLEAN("Accessibility.WinJAWS", g_jaws);
+ UMA_HISTOGRAM_BOOLEAN("Accessibility.WinNVDA", g_nvda);
UMA_HISTOGRAM_BOOLEAN("Accessibility.WinSAToGo", satogo);
- UMA_HISTOGRAM_BOOLEAN("Accessibility.WinZoomText", zoomtext);
+ UMA_HISTOGRAM_BOOLEAN("Accessibility.WinZoomText", g_zoomtext);
+}
+
+void BrowserAccessibilityStateImpl::UpdateUniqueUserHistograms() {
+ ui::AXMode mode = GetAccessibilityMode();
+ UMA_HISTOGRAM_BOOLEAN("Accessibility.WinScreenReader2.EveryReport",
+ mode.has_mode(ui::AXMode::kScreenReader));
+ UMA_HISTOGRAM_BOOLEAN("Accessibility.WinJAWS.EveryReport", g_jaws);
+ UMA_HISTOGRAM_BOOLEAN("Accessibility.WinNVDA.EveryReport", g_nvda);
+ UMA_HISTOGRAM_BOOLEAN("Accessibility.WinZoomText.EveryReport", g_zoomtext);
}
} // namespace content
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml
index 0879208..d5626fc1 100644
--- a/tools/metrics/histograms/histograms.xml
+++ b/tools/metrics/histograms/histograms.xml
@@ -37,7 +37,7 @@
Tracks whether animations are enabled on Android (e.g. if the animator
duration scale is non-zero.) The purpose is to inform the design of the
prefers-reduced-motion media feature; see http://crbug.com/722548. This is
- checked once, 45 seconds after startup.
+ logged once, 45 seconds after startup.
</summary>
</histogram>
@@ -49,7 +49,7 @@
Tracks whether animations are enabled on Android (e.g. if the animator
duration scale is non-zero.) The purpose is to inform the design of the
prefers-reduced-motion media feature; see http://crbug.com/722548. This is
- checked once, 45 seconds after startup.
+ logged once, 45 seconds after startup.
This replaced Accessibility.Android.AnimationsEnabled because the older
histogram did not capture the default (e.g. no flag) case.
@@ -63,7 +63,9 @@
<owner>[email protected]</owner>
<summary>
Tracks whether a screen reader is enabled on Android (e.g. Talkback). This
- is checked once, 45 seconds after startup.
+ is checked once, 45 seconds after startup. Note: prefer
+ Accessibility.Android.ScreenReader.EveryReport when querying for unique
+ users, as it is logged more frequently.
</summary>
</histogram>
@@ -98,7 +100,7 @@
<owner>[email protected]</owner>
<summary>
Whether the Chrome OS Accessibility Menu is set to be shown regardless of
- the state of a11y features.(checked once 45 secs after startup).
+ the state of a11y features.(logged once 45 secs after startup).
</summary>
</histogram>
@@ -107,7 +109,7 @@
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
- Whether the Chrome OS Autoclick feature is on (checked once 45 secs after
+ Whether the Chrome OS Autoclick feature is on (logged once 45 secs after
startup).
</summary>
</histogram>
@@ -137,7 +139,7 @@
<histogram name="Accessibility.CrosCaretHighlight" enum="BooleanEnabled">
<owner>[email protected]</owner>
<summary>
- Whether the Chrome OS caret highlighting is on (checked once 45 secs after
+ Whether the Chrome OS caret highlighting is on (logged once 45 secs after
startup).
</summary>
</histogram>
@@ -164,7 +166,7 @@
<histogram name="Accessibility.CrosCursorHighlight" enum="BooleanEnabled">
<owner>[email protected]</owner>
<summary>
- Whether the Chrome OS cursor highlighting is on (checked once 45 secs after
+ Whether the Chrome OS cursor highlighting is on (logged once 45 secs after
startup).
</summary>
</histogram>
@@ -173,8 +175,8 @@
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
- Whether the ChromeOS dictation feature is enabled (checked once 45 secs
- after startup).
+ Whether the ChromeOS dictation feature is enabled (logged once 45 secs after
+ startup).
</summary>
</histogram>
@@ -190,7 +192,7 @@
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
- Whether the Chrome OS Docked Magnifier feature is on (checked once 45 secs
+ Whether the Chrome OS Docked Magnifier feature is on (logged once 45 secs
after startup).
</summary>
</histogram>
@@ -198,7 +200,7 @@
<histogram name="Accessibility.CrosFocusHighlight" enum="BooleanEnabled">
<owner>[email protected]</owner>
<summary>
- Whether the Chrome OS focus highlighting is on (checked once 45 secs after
+ Whether the Chrome OS focus highlighting is on (logged once 45 secs after
startup).
</summary>
</histogram>
@@ -207,7 +209,7 @@
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
- Whether the Chrome OS High Contrast mode feature is on (checked once 45 secs
+ Whether the Chrome OS High Contrast mode feature is on (logged once 45 secs
after startup).
</summary>
</histogram>
@@ -216,7 +218,7 @@
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
- Whether the Chrome OS Large Cursor feature is on (checked once 45 secs after
+ Whether the Chrome OS Large Cursor feature is on (logged once 45 secs after
startup).
</summary>
</histogram>
@@ -225,7 +227,7 @@
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
- Cursor size of the Chrome OS Large Cursor (checked once 45 secs after
+ Cursor size of the Chrome OS Large Cursor (logged once 45 secs after
startup).
</summary>
</histogram>
@@ -234,7 +236,7 @@
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
- Whether the Chrome OS Screen Magnifier feature is on (checked once 45 secs
+ Whether the Chrome OS Screen Magnifier feature is on (logged once 45 secs
after startup).
</summary>
</histogram>
@@ -242,7 +244,7 @@
<histogram name="Accessibility.CrosSelectToSpeak" enum="BooleanEnabled">
<owner>[email protected]</owner>
<summary>
- Whether the Chrome OS select-to-speak is on (checked once 45 secs after
+ Whether the Chrome OS select-to-speak is on (logged once 45 secs after
startup).
</summary>
</histogram>
@@ -308,9 +310,11 @@
<histogram name="Accessibility.CrosSpokenFeedback" enum="BooleanEnabled">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
+ <owner>[email protected]</owner>
<summary>
- Whether the Chrome OS Spoken Feedback feature is on (checked once 45 secs
- after startup).
+ Whether the Chrome OS Spoken Feedback feature is on (logged once 45 secs
+ after startup). Note: prefer Accessibility.CrosSpokenFeedback.EveryReport
+ when querying for unique users, as it is logged more frequently.
</summary>
</histogram>
@@ -319,7 +323,7 @@
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
- Whether the Chrome OS Sticky Keys feature is on (checked once 45 secs after
+ Whether the Chrome OS Sticky Keys feature is on (logged once 45 secs after
startup).
</summary>
</histogram>
@@ -328,7 +332,7 @@
expires_after="M81">
<owner>[email protected]</owner>
<summary>
- Whether the Chrome OS switch access is on (checked once 45 secs after
+ Whether the Chrome OS switch access is on (logged once 45 secs after
startup).
</summary>
</histogram>
@@ -346,7 +350,7 @@
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
- Whether the Chrome OS Virtual Keyboard feature is on (checked once 45 secs
+ Whether the Chrome OS Virtual Keyboard feature is on (logged once 45 secs
after startup).
</summary>
</histogram>
@@ -356,7 +360,7 @@
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
- Whether the Chrome accessibility image label setting is on (checked once 45
+ Whether the Chrome accessibility image label setting is on (logged once 45
secs after startup).
</summary>
</histogram>
@@ -404,7 +408,7 @@
<owner>[email protected]</owner>
<summary>
Whether Windows system settings show that high-contrast mode is enabled and
- the user has selected a light-on-dark color scheme (checked once 45 secs
+ the user has selected a light-on-dark color scheme (logged once 45 secs
after startup). This causes Chrome to prompt the user with a bubble to
optionally install a High Contrast extension and theme.
</summary>
@@ -429,7 +433,7 @@
<owner>[email protected]</owner>
<summary>
Whether the "differentiate without color" Mac system setting is
- enabled. This is checked once, 45 seconds after startup.
+ enabled. This is logged once, 45 seconds after startup.
</summary>
</histogram>
@@ -438,7 +442,7 @@
<owner>[email protected]</owner>
<summary>
Whether the "full keyboard access" Mac system setting is enabled.
- This is checked once, 45 seconds after startup.
+ This is logged once, 45 seconds after startup.
</summary>
</histogram>
@@ -447,7 +451,7 @@
<owner>[email protected]</owner>
<summary>
Whether the "increase contrast" Mac system setting is enabled.
- This is checked once, 45 seconds after startup.
+ This is logged once, 45 seconds after startup.
</summary>
</histogram>
@@ -458,7 +462,7 @@
<summary>
Tracks whether the accessibilityDisplayShouldReduceMotion system property is
enabled. The purpose is to inform the design of the prefers-reduced-motion
- media feature; see http://crbug.com/722548. This is checked once, 45 seconds
+ media feature; see http://crbug.com/722548. This is logged once, 45 seconds
after startup.
</summary>
</histogram>
@@ -468,7 +472,7 @@
<owner>[email protected]</owner>
<summary>
Whether the "reduce transparency" Mac system setting is enabled.
- This is checked once, 45 seconds after startup.
+ This is logged once, 45 seconds after startup.
</summary>
</histogram>
@@ -479,7 +483,9 @@
<owner>[email protected]</owner>
<summary>
Tracks whether a screen reader is enabled on Mac (e.g. VoiceOver). This is
- checked once, 45 seconds after startup.
+ logged once, 45 seconds after startup. Note: prefer
+ Accessibility.Mac.ScreenReader.EveryReport when querying for unique users,
+ as it is logged more frequently.
</summary>
</histogram>
@@ -489,8 +495,8 @@
<owner>[email protected]</owner>
<summary>
Whether Chrome has enabled accessibility support because the user passed the
- --force-renderer-accessibility flag on the command-line (checked once 45
- secs after startup).
+ --force-renderer-accessibility flag on the command-line (logged once 45 secs
+ after startup).
</summary>
</histogram>
@@ -559,7 +565,7 @@
<summary>
Whether Chrome has enabled accessibility support because it detects
supported assistive technology running, or due to being manually enabled via
- a command-line flag (checked once 45 secs after startup).
+ a command-line flag (logged once 45 secs after startup).
</summary>
</histogram>
@@ -570,7 +576,7 @@
<summary>
Tracks whether the SPI_GETCLIENTAREAANIMATION system property is enabled.
The purpose is to inform the design of the prefers-reduced-motion media
- feature; see http://crbug.com/722548. This is checked once, 45 seconds after
+ feature; see http://crbug.com/722548. This is logged once, 45 seconds after
startup.
</summary>
</histogram>
@@ -597,7 +603,7 @@
<owner>[email protected]</owner>
<summary>
Whether Windows system settings show that audio descriptions are enabled
- (checked once 45 secs after startup).
+ (logged once 45 secs after startup).
</summary>
</histogram>
@@ -609,8 +615,9 @@
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
- Whether the third-party JAWS screen reader is running (checked once 45 secs
- after startup).
+ Whether the third-party JAWS screen reader is running (logged once 45 secs
+ after startup). Note: prefer Accessibility.WinJAWS.EveryReport when querying
+ for unique users, as it is logged more frequently.
</summary>
</histogram>
@@ -622,8 +629,9 @@
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
- Whether the third-party NVDA screen reader is running (checked once 45 secs
- after startup).
+ Whether the third-party NVDA screen reader is running (logged once 45 secs
+ after startup). Note: prefer Accessibility.WinNVDA.EveryReport when querying
+ for unique users, as it is logged more frequently.
</summary>
</histogram>
@@ -632,8 +640,8 @@
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
- Whether the third-party System Access To Go screen reader is running
- (checked once 45 secs after startup).
+ Whether the third-party System Access To Go screen reader is running (logged
+ once 45 secs after startup).
</summary>
</histogram>
@@ -642,9 +650,9 @@
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
- Whether Windows system settings show that a screen reader is running
- (checked once 45 secs after startup). Note that this does not necessarily
- mean that Chrome has detected a supported screen reader and has enabled its
+ Whether Windows system settings show that a screen reader is running (logged
+ once 45 secs after startup). Note that this does not necessarily mean that
+ Chrome has detected a supported screen reader and has enabled its
accessibility mode.
</summary>
</histogram>
@@ -655,9 +663,11 @@
<owner>[email protected]</owner>
<summary>
Whether the accessibility mode flag shows that a screen reader is running
- (checked once 45 secs after startup). In this case, Chrome has detected
+ (logged once 45 secs after startup). In this case, Chrome has detected
accessibility calls that would normally only occur from a screen reader. See
- also the more specific metrics such as Accessibility.WinJAWS/WinNVDA.
+ also the more specific metrics such as Accessibility.WinJAWS/WinNVDA. Note:
+ prefer Accessibility.WinScreenReader2.EveryReport when querying for unique
+ users, as it is logged more frequently.
</summary>
</histogram>
@@ -681,7 +691,9 @@
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
- Whether the third-party ZoomText screen magnifier is running.
+ Whether the third-party ZoomText screen magnifier is running. Note: prefer
+ Accessibility.WinZoomText.EveryReport when querying for unique users, as it
+ is logged more frequently.
</summary>
</histogram>
@@ -154744,6 +154756,19 @@
<histogram_suffixes_list>
+<histogram_suffixes name="AccessibilityEveryReport" separator=".">
+ <suffix name="EveryReport"
+ label="sent with every metrics report, and preferred for computing
+ uniques"/>
+ <affected-histogram name="Accessibility.Android.ScreenReader"/>
+ <affected-histogram name="Accessibility.CrosSpokenFeedback"/>
+ <affected-histogram name="Accessibility.Mac.ScreenReader"/>
+ <affected-histogram name="Accessibility.WinJAWS"/>
+ <affected-histogram name="Accessibility.WinNVDA"/>
+ <affected-histogram name="Accessibility.WinScreenReader2"/>
+ <affected-histogram name="Accessibility.WinZoomText"/>
+</histogram_suffixes>
+
<histogram_suffixes name="AccessibilityScreenReaderImage" separator=".">
<suffix name="ExplicitlyUnlabeled" label="explicitly unlabeled image"/>
<suffix name="Labeled" label="labeled image"/>