summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-30 23:59:23 +0000
committerdmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-30 23:59:23 +0000
commit146077995dccdbc082d8a122e6dc1ad949d692c9 (patch)
tree74cce48ec3ffa3268be2423402b9ac130675e17c
parent68ba21bb68b1effcaa88bf019ed8995e9036c25b (diff)
downloadchromium_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.mm3
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;
}