diff options
author | dmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-30 23:59:23 +0000 |
---|---|---|
committer | dmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-30 23:59:23 +0000 |
commit | 146077995dccdbc082d8a122e6dc1ad949d692c9 (patch) | |
tree | 74cce48ec3ffa3268be2423402b9ac130675e17c | |
parent | 68ba21bb68b1effcaa88bf019ed8995e9036c25b (diff) | |
download | chromium_src-146077995dccdbc082d8a122e6dc1ad949d692c9.zip chromium_src-146077995dccdbc082d8a122e6dc1ad949d692c9.tar.gz chromium_src-146077995dccdbc082d8a122e6dc1ad949d692c9.tar.bz2 |
The Mac accessibility impl should defer to BrowserAccessibilityManager
to determine if a node has focus, not the element's state (which goes
stale too quickly - that's how we enforce that only one element is focused
at once). That was preventing VoiceOver from notifying us when it wanted to
set focus, because it thought a node already had focus when it didn't.
BUG=105923
TEST=Use Chrome with VoiceOver, use VoiceOver navigation keys to browse focusable elements repeatedly.
Review URL: http://codereview.chromium.org/8749014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@112343 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | content/browser/accessibility/browser_accessibility_cocoa.mm | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/content/browser/accessibility/browser_accessibility_cocoa.mm b/content/browser/accessibility/browser_accessibility_cocoa.mm index 685e90f..831dcba 100644 --- a/content/browser/accessibility/browser_accessibility_cocoa.mm +++ b/content/browser/accessibility/browser_accessibility_cocoa.mm @@ -427,8 +427,9 @@ NSDictionary* attributeToMethodNameMap = nil; } - (NSNumber*)focused { + BrowserAccessibilityManager* manager = browserAccessibility_->manager(); NSNumber* ret = [NSNumber numberWithBool: - GetState(browserAccessibility_, WebAccessibility::STATE_FOCUSED)]; + manager->GetFocus(NULL) == browserAccessibility_]; return ret; } |