Add an accessibility mode for editable text fields only.
This refactors the triggering of accessibility mode from a boolean state and
command-line flag to an AccessibilityMode enum that's passed directly
when a new RenderView is created, which is also more readable and avoids the
extra command-line flag.
Adds a new mode that only syncs editable text nodes, and enables this on
Windows 8 so that we can support showing the virtual keyboard when an
editable text field gets focus.
BUG=122061,118641
TEST=Adds new test
Review URL: http://codereview.chromium.org/9939011
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@132267 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/content/browser/accessibility/browser_accessibility_state_impl.cc b/content/browser/accessibility/browser_accessibility_state_impl.cc
index f3b8aaf7..b878cdb 100644
--- a/content/browser/accessibility/browser_accessibility_state_impl.cc
+++ b/content/browser/accessibility/browser_accessibility_state_impl.cc
@@ -4,9 +4,11 @@
#include "content/browser/accessibility/browser_accessibility_state_impl.h"
+#include "base/command_line.h"
#include "base/memory/singleton.h"
#include "base/metrics/histogram.h"
#include "base/timer.h"
+#include "content/public/common/content_switches.h"
#include "ui/gfx/sys_color_change_listener.h"
// Update the accessibility histogram 45 seconds after initialization.
@@ -26,6 +28,10 @@
BrowserAccessibilityStateImpl::BrowserAccessibilityStateImpl()
: BrowserAccessibilityState(),
accessibility_enabled_(false) {
+ if (CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kForceRendererAccessibility)) {
+ OnAccessibilityEnabledManually();
+ }
update_histogram_timer_.Start(
FROM_HERE,
base::TimeDelta::FromSeconds(kAccessibilityHistogramDelaySecs),
@@ -37,6 +43,10 @@
}
void BrowserAccessibilityStateImpl::OnScreenReaderDetected() {
+ if (CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kDisableRendererAccessibility)) {
+ return;
+ }
accessibility_enabled_ = true;
}