Closed Bug 1553706 Opened 5 years ago Closed 5 years ago

Fission a11y: Fix IAccessible::accChild for OOP iframes

Categories

(Core :: Disability Access APIs, defect, P2)

All
Windows
defect

Tracking

()

RESOLVED FIXED
mozilla69
Fission Milestone M3
Tracking Status
firefox69 --- fixed

People

(Reporter: Jamie, Assigned: Jamie)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

After the patches for bug 1543307 and bug 1543313 land, a11y clients will be able to traverse to and from OOP iframe documents, just as they can with iframes in the same content process. However, any win events fired from these documents (including descendants) are broken. This is because IAccessible::accChild fails for these ids.

This occurs because AccessibleWrap::GetRemoteIAccessibleFor only tries top level DocAccessibleParents; i.e. those at the top of the document hierarchy. It also needs to search documents at the top level of their content process; i.e. those for which DocAccessibleParent::IsTopLevelInContentProcess returns true.

It must be possible to retrieve any accessible by calling IAccessible::accChild on the RootAccessible (in the parent process) with the unique id of the desired accessible.
Among other things, this is the way accessibility events are targeted on Windows.
Previously, this code only searched remote documents at the top level of the tree.
In order to support out-of-process iframes, it must now also search embedded documents at the top level of their content process.

As part of this, the MSAA id must be set for out-of-process iframe documents, just as it is for top level documents.
This was already being sent from the content process, but previously, we didn't store this in the parent process.

Blocks: 1555228
Pushed by jteh@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/1a8bea02205d Fix IAccessible::accChild in the parent process for out-of-process iframes. r=eeejay
Pushed by jteh@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/38c2478a4825 Fix IAccessible::accChild in the parent process for out-of-process iframes. r=eeejay
Flags: needinfo?(jteh)
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla69
Blocks: a11y-fission
Fission Milestone: --- → M3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: