Closed Bug 444067 Opened 16 years ago Closed 14 years ago

MSAA: AccessibleObjectFromEvent returning the wrong object when used out-of-process for focus after Bookmarks/History sidebar is enabled

Categories

(Core :: Disability Access APIs, defect)

x86
Windows XP
defect
Not set
normal

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: Jamie, Unassigned)

References

Details

(Keywords: access)

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1a1pre) Gecko/2008070703 Minefield/3.1a1pre
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1a1pre) Gecko/2008070703 Minefield/3.1a1pre ID:2008070703

When the Bookmarks or History sidebar is enabled, either from the View->Sidebars menu or by pressing the appropriate shortcut key, focus is set to the search field in the sidebar. The correct MSAA focus event is sent; the child ID is definitely the unique ID of the search field. However, if done out-of-process, calling AccessibleObjectFromEvent with the event parameters returns the parent of the focus (i.e. the Bookmarks/History grouping), rather than the focus object itself. Strangely, doing this in-process seems to work correctly. Note that when focus is moved away from and then returned to the field, either by tabbing or switching applications, everything works correctly. Also, the child variant returned by AccessibleObjectFromEvent is the unique ID of the correct object, but this should be 0 in most (all?) cases in Gecko.

Reproducible: Always

Steps to Reproduce:
1. Open Firefox.
2. Open Accessibility Probe.
3. Using the Explorer view, select the Firefox top level window.
4. Switch to the Event Monitor view.
5. Access the event monitor menu and select "Choose events to watch". Select only EVENT_OBJECT_FOCUS.
6. Access the event monitor menu and check "Get in-context events".
7. Press the "Start capture of events" button.
8. Switch to the Firefox window.
9. IF the Bookmarks sidebar is visible, press ctrl+b to hide it.
10. Press ctrl+b to show the Bookmarks sidebar.
11. Return to Accessibility Probe.
12. Press the "Stop capture of events" button.
13. Examine the last event (the first event in the list). Observe that it correctly identifies the "Search" editable text object.
14. Press the "Clear the events list" button.
15. Access the event monitor menu and check "Get out-of-context events".
16. Repeat steps 7 to 12.
17. Examine the last event (the first event in the list).
Actual Results:  
In step 17, the last event identifies the "Bookmarks" grouping object.

Expected Results:  
In step 17, the last event should identify the "Search" editable text field as seen in step 13.

Although I discuss accProbe here, the reason for this report is that this causes problems in NVDA. NVDA ignores this focus event completely because it has no focused state. However, if I disable this code, the "grouping" gets focus. I used NVDA to check the event parameters and unique IDs of the objects.

On my system (Windows XP), this issue can also be seen in Narrator. Showing the Bookmarks sidebar does not speak the focus. HOwever, another tester reports that this works fine in Narrator for him, which is puzzling.
Keywords: access
Version: unspecified → Trunk
Blocks: 191a11y
Jamie, thanks for this report; it is very puzzling behavior.

I'm pretty sure when out of process we hit bug 506206.
Status: UNCONFIRMED → NEW
Depends on: 506206
Ever confirmed: true
I can no longer reproduce this in Mozilla/5.0 (Windows; Windows NT 6.1; WOW64; en-US; rv:2.0b2pre) Gecko/20100712 Minefield/4.0b2pre. Unfortunately, I don't know when this was fixed.
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.