Closed
Bug 512561
Opened 15 years ago
Closed 15 years ago
Can't set focus to document via accessibility APIs while Adobe Flash plugin has focus
Categories
(Core :: Disability Access APIs, defect, P2)
Tracking
()
VERIFIED
FIXED
Tracking | Status | |
---|---|---|
status1.9.2 | --- | beta1-fixed |
People
(Reporter: Jamie, Assigned: davidb)
References
()
Details
(Keywords: access, regression, verified1.9.2)
Attachments
(1 file)
1.01 KB,
patch
|
MarcoZ
:
review+
|
Details | Diff | Splinter Review |
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.3a1pre) Gecko/20090821 Minefield/3.7a1pre
Build Identifier:
Once focus moves inside the Adobe Flash plugin, focus cannot be set to the parent Gecko document using accessibility APIs (for MSAA< accSelect with SELFLAG_TAKEFOCUS). This means that there is no way to programmatically return focus to the document. I suspect this applies to plugins other than Flash as well.
Reproducible: Always
Steps to Reproduce:
1. Visit the provided URL.
2. Move focus inside the Flash plugin; e.g. click the Play/Pause button.
3. Move up the ancestors of the focus accessible to the accessible for the containing document.
4. Try to set focus to this document accessible.
Actual Results:
The focus does not move.
Expected Results:
The document accessible should receive focus.
This bug is not present in Firefox 3.5.2.
Reporter | ||
Comment 1•15 years ago
|
||
Is this possibly related to bug 512058?
Keywords: access,
regression
Version: unspecified → Trunk
Assignee | ||
Comment 2•15 years ago
|
||
Not sure, might also be related to bug 330412 and bug 78414.
Assignee | ||
Comment 3•15 years ago
|
||
I wonder if we fail on !frame->IsFocusable() in nsAccessible::TakeFocus.
Assignee | ||
Comment 4•15 years ago
|
||
Ignore my comment #3.
Jamie are you doing an accSelect?
Assignee | ||
Comment 5•15 years ago
|
||
Ugh ignore comment #4. This is punishment for rick-rolling me :)
Reporter | ||
Comment 6•15 years ago
|
||
(In reply to comment #2)
> might also be related to bug 330412 and bug 78414.
It's certainly related in the sense that without those bugs fixed, this bug is even more important so at least ATs can get focus out of the plugin. :) However, those bugs also weren't fixed in Firefox 3.5.2, but at least set focus to the document used to work.
Comment 7•15 years ago
|
||
I suspect this is a regression from the big focus refactor bug 178324 as well.
Blocks: 178324
Severity: normal → major
Status: UNCONFIRMED → NEW
Ever confirmed: true
Flags: blocking1.9.2?
Assignee | ||
Comment 8•15 years ago
|
||
Josh, any ideas?
Sorry, I don't have any ideas. Comment #7 seems like the best guess to me.
Comment 10•15 years ago
|
||
I suspect that nsDocAccessible::TakeFocus needs to be changed to ensure that the right window is focused just before (or after) it calls MoveFocus.
What should nsDocAccessible::TakeFocus be doing? Just focusing a document in an existing toplevel window? Or focusing the document and bringing its window to the front?
Assignee | ||
Comment 11•15 years ago
|
||
(In reply to comment #10)
> I suspect that nsDocAccessible::TakeFocus needs to be changed to ensure that
> the right window is focused just before (or after) it calls MoveFocus.
Yes I think we need to do that.
> What should nsDocAccessible::TakeFocus be doing? Just focusing a document in an
> existing toplevel window? Or focusing the document and bringing its window to
> the front?
Given the typical use case, which is an AT user wanted to put focus somewhere for subsequent related activity, I think ensuring the window is front(most) is a Good Idea(tm).
Something like:
return fm->MoveFocus(document->GetWindow(), nsnull,
nsIFocusManager::FLAG_RAISE |
nsIFocusManager::MOVEFOCUS_ROOT, 0,
getter_AddRefs(newFocus));
Neil, what does nsIFocusManager::MOVEFOCUS_ROOT do when focus is currently in a (flash) plugin?
Comment 12•15 years ago
|
||
> Something like:
> return fm->MoveFocus(document->GetWindow(), nsnull,
> nsIFocusManager::FLAG_RAISE |
> nsIFocusManager::MOVEFOCUS_ROOT, 0,
> getter_AddRefs(newFocus));
Should work.
> Neil, what does nsIFocusManager::MOVEFOCUS_ROOT do when focus is currently in a
> (flash) plugin?
It should do the same thing, focus the root of the document.
Assignee | ||
Comment 13•15 years ago
|
||
Jamie, if you want to see if raising the window helps: https://build.mozilla.org/tryserver-builds/dbolter@mozilla.com-docroot_takefocus_raisewindow/docroot_takefocus_raisewindow-win32.zip
Assignee | ||
Updated•15 years ago
|
Assignee: nobody → bolterbugz
Status: NEW → ASSIGNED
Updated•15 years ago
|
Flags: blocking1.9.2? → blocking1.9.2+
Priority: -- → P2
Assignee | ||
Comment 14•15 years ago
|
||
That was a red herring.
Debugging... looks like mDOMNode->GetOwnerDocument(getter_AddRefs(domDocument)) fails (domDocument is null).
Assignee | ||
Comment 15•15 years ago
|
||
Got it! Patch coming after lunch :)
Assignee | ||
Comment 16•15 years ago
|
||
Get the nsIDOMDocument directly from the nsDocAccessible's dom node since this will succeed in more cases. GetOwnerDocument returns null if the caller node is in fact a document (this is probably new behaviour).
Jamie, nice catch.
Attachment #402856 -
Flags: review?(marco.zehe)
Assignee | ||
Comment 17•15 years ago
|
||
Forgot to mention I confirmed this fixes the bug as described.
Comment 18•15 years ago
|
||
Comment on attachment 402856 [details] [diff] [review]
patch 1
Great! r=me
Attachment #402856 -
Flags: review?(marco.zehe) → review+
Assignee | ||
Comment 19•15 years ago
|
||
Push to mozilla-central: http://hg.mozilla.org/mozilla-central/rev/88f7fdddc4ac
Status: ASSIGNED → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
Assignee | ||
Comment 20•15 years ago
|
||
Let's bake it a bit before considering landing on 1.9.2
Comment 21•15 years ago
|
||
Verified fixed in Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.3a1pre) Gecko/20090929 Minefield/3.7a1pre (.NET CLR 3.5.30729)
Status: RESOLVED → VERIFIED
Assignee | ||
Comment 22•15 years ago
|
||
Assignee | ||
Updated•15 years ago
|
status1.9.2:
--- → beta1-fixed
Comment 23•15 years ago
|
||
Verified in Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2b1pre) Gecko/20090930 Namoroka/3.6b1pre (.NET CLR 3.5.30729)
Keywords: verified1.9.2
You need to log in
before you can comment on or make changes to this bug.
Description
•