summaryrefslogtreecommitdiffstats
path: root/ash
diff options
context:
space:
mode:
authordmazzoni <dmazzoni@chromium.org>2016-03-15 16:55:16 -0700
committerCommit bot <commit-bot@chromium.org>2016-03-15 23:56:13 +0000
commit756089a218696542cadcf96a1a7ed00025c1f255 (patch)
treef2cbdaacb31a552b9ced15bbf758ef541c868161 /ash
parenta120428fc3730dac6df8042c7e324cd797619c72 (diff)
downloadchromium_src-756089a218696542cadcf96a1a7ed00025c1f255.zip
chromium_src-756089a218696542cadcf96a1a7ed00025c1f255.tar.gz
chromium_src-756089a218696542cadcf96a1a7ed00025c1f255.tar.bz2
Add 5 experimental accessibility features on Chrome OS.
This just adds the boilerplate for five new accessibility features and hides them behind a flag. All five have been prototyped and are ready for implementation. The first three are related, they just provide visual highlighting to help low-vision users keep track of things on the screen: * Caret highlight * Cursor highlight * Focus highlight Hold down a key and click or drag to speak any visible text on screen * Select to speak Control the whole computer with a single switch (for motor impaired users) * Switch access For now, there's no need to put these in the tray. They can graduate to the tray when they launch. BUG=314889,593887,593885 Review URL: https://codereview.chromium.org/1785833002 Cr-Commit-Position: refs/heads/master@{#381353}
Diffstat (limited to 'ash')
-rw-r--r--ash/accessibility_delegate.h30
-rw-r--r--ash/default_accessibility_delegate.cc51
-rw-r--r--ash/default_accessibility_delegate.h31
3 files changed, 94 insertions, 18 deletions
diff --git a/ash/accessibility_delegate.h b/ash/accessibility_delegate.h
index cb821c8..f702c2a 100644
--- a/ash/accessibility_delegate.h
+++ b/ash/accessibility_delegate.h
@@ -59,6 +59,36 @@ class ASH_EXPORT AccessibilityDelegate {
// Returns if the a11y virtual keyboard is enabled.
virtual bool IsVirtualKeyboardEnabled() const = 0;
+ // Invoked to enable or disable caret highlighting.
+ virtual void SetCaretHighlightEnabled(bool enabled) = 0;
+
+ // Returns if caret highlighting is enabled.
+ virtual bool IsCaretHighlightEnabled() const = 0;
+
+ // Invoked to enable or disable cursor highlighting.
+ virtual void SetCursorHighlightEnabled(bool enabled) = 0;
+
+ // Returns if cursor highlighting is enabled.
+ virtual bool IsCursorHighlightEnabled() const = 0;
+
+ // Invoked to enable or disable focus highlighting.
+ virtual void SetFocusHighlightEnabled(bool enabled) = 0;
+
+ // Returns if focus highlighting is enabled.
+ virtual bool IsFocusHighlightEnabled() const = 0;
+
+ // Invoked to enable or disable select-to-speak.
+ virtual void SetSelectToSpeakEnabled(bool enabled) = 0;
+
+ // Returns if select-to-speak is enabled.
+ virtual bool IsSelectToSpeakEnabled() const = 0;
+
+ // Invoked to enable or disable switch access.
+ virtual void SetSwitchAccessEnabled(bool enabled) = 0;
+
+ // Returns if switch access is enabled.
+ virtual bool IsSwitchAccessEnabled() const = 0;
+
// Returns true when the accessibility menu should be shown.
virtual bool ShouldShowAccessibilityMenu() const = 0;
diff --git a/ash/default_accessibility_delegate.cc b/ash/default_accessibility_delegate.cc
index f337a2e..402e5b5 100644
--- a/ash/default_accessibility_delegate.cc
+++ b/ash/default_accessibility_delegate.cc
@@ -8,16 +8,7 @@
namespace ash {
-DefaultAccessibilityDelegate::DefaultAccessibilityDelegate()
- : spoken_feedback_enabled_(false),
- high_contrast_enabled_(false),
- screen_magnifier_enabled_(false),
- screen_magnifier_type_(ui::kDefaultMagnifierType),
- large_cursor_enabled_(false),
- autoclick_enabled_(false),
- virtual_keyboard_enabled_(false),
- accessibility_alert_(ui::A11Y_ALERT_NONE) {
-}
+DefaultAccessibilityDelegate::DefaultAccessibilityDelegate() {}
DefaultAccessibilityDelegate::~DefaultAccessibilityDelegate() {}
@@ -73,6 +64,46 @@ bool DefaultAccessibilityDelegate::IsVirtualKeyboardEnabled() const {
return virtual_keyboard_enabled_;
}
+void DefaultAccessibilityDelegate::SetCaretHighlightEnabled(bool enabled) {
+ caret_highlight_enabled_ = enabled;
+}
+
+bool DefaultAccessibilityDelegate::IsCaretHighlightEnabled() const {
+ return caret_highlight_enabled_;
+}
+
+void DefaultAccessibilityDelegate::SetCursorHighlightEnabled(bool enabled) {
+ cursor_highlight_enabled_ = enabled;
+}
+
+bool DefaultAccessibilityDelegate::IsCursorHighlightEnabled() const {
+ return cursor_highlight_enabled_;
+}
+
+void DefaultAccessibilityDelegate::SetFocusHighlightEnabled(bool enabled) {
+ focus_highligh_enabled_ = enabled;
+}
+
+bool DefaultAccessibilityDelegate::IsFocusHighlightEnabled() const {
+ return focus_highligh_enabled_;
+}
+
+void DefaultAccessibilityDelegate::SetSelectToSpeakEnabled(bool enabled) {
+ select_to_speak_enabled_ = enabled;
+}
+
+bool DefaultAccessibilityDelegate::IsSelectToSpeakEnabled() const {
+ return select_to_speak_enabled_;
+}
+
+void DefaultAccessibilityDelegate::SetSwitchAccessEnabled(bool enabled) {
+ switch_access_enabled_ = enabled;
+}
+
+bool DefaultAccessibilityDelegate::IsSwitchAccessEnabled() const {
+ return switch_access_enabled_;
+}
+
bool DefaultAccessibilityDelegate::ShouldShowAccessibilityMenu() const {
return spoken_feedback_enabled_ ||
high_contrast_enabled_ ||
diff --git a/ash/default_accessibility_delegate.h b/ash/default_accessibility_delegate.h
index e973f56..986b13bb 100644
--- a/ash/default_accessibility_delegate.h
+++ b/ash/default_accessibility_delegate.h
@@ -30,6 +30,16 @@ class ASH_EXPORT DefaultAccessibilityDelegate : public AccessibilityDelegate {
bool IsAutoclickEnabled() const override;
void SetVirtualKeyboardEnabled(bool enabled) override;
bool IsVirtualKeyboardEnabled() const override;
+ void SetCaretHighlightEnabled(bool enabled) override;
+ bool IsCaretHighlightEnabled() const override;
+ void SetCursorHighlightEnabled(bool enabled) override;
+ bool IsCursorHighlightEnabled() const override;
+ void SetFocusHighlightEnabled(bool enabled) override;
+ bool IsFocusHighlightEnabled() const override;
+ void SetSelectToSpeakEnabled(bool enabled) override;
+ bool IsSelectToSpeakEnabled() const override;
+ void SetSwitchAccessEnabled(bool enabled) override;
+ bool IsSwitchAccessEnabled() const override;
bool ShouldShowAccessibilityMenu() const override;
bool IsBrailleDisplayConnected() const override;
void SilenceSpokenFeedback() const override;
@@ -43,14 +53,19 @@ class ASH_EXPORT DefaultAccessibilityDelegate : public AccessibilityDelegate {
base::TimeDelta PlayShutdownSound() const override;
private:
- bool spoken_feedback_enabled_;
- bool high_contrast_enabled_;
- bool screen_magnifier_enabled_;
- ui::MagnifierType screen_magnifier_type_;
- bool large_cursor_enabled_;
- bool autoclick_enabled_;
- bool virtual_keyboard_enabled_;
- ui::AccessibilityAlert accessibility_alert_;
+ bool spoken_feedback_enabled_ = false;
+ bool high_contrast_enabled_ = false;
+ bool screen_magnifier_enabled_ = false;
+ ui::MagnifierType screen_magnifier_type_ = ui::kDefaultMagnifierType;
+ bool large_cursor_enabled_ = false;
+ bool autoclick_enabled_ = false;
+ bool virtual_keyboard_enabled_ = false;
+ bool caret_highlight_enabled_ = false;
+ bool cursor_highlight_enabled_ = false;
+ bool focus_highligh_enabled_ = false;
+ bool select_to_speak_enabled_ = false;
+ bool switch_access_enabled_ = false;
+ ui::AccessibilityAlert accessibility_alert_ = ui::A11Y_ALERT_NONE;
DISALLOW_COPY_AND_ASSIGN(DefaultAccessibilityDelegate);
};