diff options
author | dmazzoni <dmazzoni@chromium.org> | 2016-03-15 16:55:16 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-03-15 23:56:13 +0000 |
commit | 756089a218696542cadcf96a1a7ed00025c1f255 (patch) | |
tree | f2cbdaacb31a552b9ced15bbf758ef541c868161 /ash | |
parent | a120428fc3730dac6df8042c7e324cd797619c72 (diff) | |
download | chromium_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.h | 30 | ||||
-rw-r--r-- | ash/default_accessibility_delegate.cc | 51 | ||||
-rw-r--r-- | ash/default_accessibility_delegate.h | 31 |
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); }; |