summaryrefslogtreecommitdiffstats
path: root/content/browser/accessibility/browser_accessibility_manager_win.cc
diff options
context:
space:
mode:
authordmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-03 19:00:28 +0000
committerdmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-03 19:00:28 +0000
commitdf978442ba4e0629dc7f406729b25cae54fc9461 (patch)
treeeff9f694230288a019ba0739d262431c87a3a4b9 /content/browser/accessibility/browser_accessibility_manager_win.cc
parenta61ce5a964aa37082d09623f8b4976016a0e44f5 (diff)
downloadchromium_src-df978442ba4e0629dc7f406729b25cae54fc9461.zip
chromium_src-df978442ba4e0629dc7f406729b25cae54fc9461.tar.gz
chromium_src-df978442ba4e0629dc7f406729b25cae54fc9461.tar.bz2
Fire accessibility focus/blur events on root web document.
When the aura Window containing the RWHVA gets or loses focus, we must fire the corresponding accessibility event on that object, which corresponds to the root "document" in the web hierarchy. This worked before the Aura switch because native HWNDs fired these events automatically. BUG=347448 Review URL: https://codereview.chromium.org/214243005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261495 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/accessibility/browser_accessibility_manager_win.cc')
-rw-r--r--content/browser/accessibility/browser_accessibility_manager_win.cc14
1 files changed, 14 insertions, 0 deletions
diff --git a/content/browser/accessibility/browser_accessibility_manager_win.cc b/content/browser/accessibility/browser_accessibility_manager_win.cc
index 9835045..e8055fa 100644
--- a/content/browser/accessibility/browser_accessibility_manager_win.cc
+++ b/content/browser/accessibility/browser_accessibility_manager_win.cc
@@ -97,6 +97,20 @@ void BrowserAccessibilityManagerWin::RemoveNode(BrowserAccessibility* node) {
}
}
+void BrowserAccessibilityManagerWin::OnWindowFocused() {
+ // Fire a focus event on the root first and then the focused node.
+ if (focus_ != root_)
+ NotifyAccessibilityEvent(ui::AX_EVENT_FOCUS, root_);
+ BrowserAccessibilityManager::OnWindowFocused();
+}
+
+void BrowserAccessibilityManagerWin::OnWindowBlurred() {
+ // Fire a blur event on the focused node first and then the root.
+ BrowserAccessibilityManager::OnWindowBlurred();
+ if (focus_ != root_)
+ NotifyAccessibilityEvent(ui::AX_EVENT_BLUR, root_);
+}
+
void BrowserAccessibilityManagerWin::NotifyAccessibilityEvent(
ui::AXEvent event_type,
BrowserAccessibility* node) {