diff options
author | dmazzoni <dmazzoni@chromium.org> | 2015-01-15 16:33:37 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-01-16 00:35:09 +0000 |
commit | e8091802505a507bb6c11683fe77cf7b1d455e6d (patch) | |
tree | a42a7a52dec35bdf9e49c790dd98ef9aa8170391 /content/browser/accessibility/browser_accessibility.h | |
parent | afd6d92c4bd52b46fa70bab5b962b5d75f8cef55 (diff) | |
download | chromium_src-e8091802505a507bb6c11683fe77cf7b1d455e6d.zip chromium_src-e8091802505a507bb6c11683fe77cf7b1d455e6d.tar.gz chromium_src-e8091802505a507bb6c11683fe77cf7b1d455e6d.tar.bz2 |
Fix focus and bounds calculations for guest frames.
Two fixes for accessibility of out-of-process iframes and guest frames
(e.g. <webview>):
1. BrowserAccessibilityManager::GetFocus should return the focused node
from a child frame.
2. BrowserAccessibilityManager::GetLocalBoundsRect and
BrowserAccessibilityCocoa::pointInScreen need to correctly take
child frames into account.
This is sufficient for correct spoken feedback and UI element bounding
rects in VoiceOver when tabbing into and out of an out-of-process iframe
or <webview> guest frame. There may be other bugs, but simple examples
work in VoiceOver now.
BUG=330307,368298
Review URL: https://codereview.chromium.org/849143003
Cr-Commit-Position: refs/heads/master@{#311777}
Diffstat (limited to 'content/browser/accessibility/browser_accessibility.h')
-rw-r--r-- | content/browser/accessibility/browser_accessibility.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/content/browser/accessibility/browser_accessibility.h b/content/browser/accessibility/browser_accessibility.h index e399b86..37f2fe0 100644 --- a/content/browser/accessibility/browser_accessibility.h +++ b/content/browser/accessibility/browser_accessibility.h @@ -267,6 +267,11 @@ class CONTENT_EXPORT BrowserAccessibility { // including this object if it's static text. int GetStaticTextLenRecursive() const; + // Similar to GetParent(), but includes nodes that are the host of a + // subtree rather than skipping over them - because they contain important + // bounds offsets. + BrowserAccessibility* GetParentForBoundsCalculation() const; + std::string name_; std::string value_; |