Closed Bug 1636002 Opened 4 years ago Closed 4 years ago

IAccessible::accParent broken for in-process iframes

Categories

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

Desktop
Windows
defect

Tracking

()

RESOLVED FIXED
mozilla78
Tracking Status
firefox-esr68 --- wontfix
firefox75 --- wontfix
firefox76 --- wontfix
firefox77 --- wontfix
firefox78 --- fixed

People

(Reporter: Jamie, Assigned: Jamie)

Details

(Keywords: regression)

Attachments

(1 file)

While cleaning up NVDA's Mozilla specific code to remove support for ancient versions of Gecko, we discovered that clients must still depend on NODE_CHILD_OF to get the parent of in-process (non-Fission) iframe documents. It turns out that accParent returns null in this case, which is 100% wrong.

I think this is because DocAccessibleWrap::get_accParent doesn't check whether the DocAccessibleChild is top level. (Can we even check this?) On a non-top level DocAccessibleChild, the parent IAccessible will be null. We should resort to the base implementation of get_accParent for non-top level docs.

This is a regression introduced by e10s a11y (Firefox 57).

In-process iframes get a DocAccessibleChild, even though they're not top level in their process.
However, the parent IAccessible on DocAccessibleChild (sent from the parent process) is only relevant for the top level.
Previously, we used the parent IAccessible on the DocAccessibleChild for all documents, resulting in accParent returning null for in-process iframe documents.
Instead, we need to use the base implementation in this case.

Pushed by mzehe@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/7b111c19dd9f
Don't use the parent IAccessible from DocAccessibleChild unless it is a top level document. r=MarcoZ
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla78

The patch landed in nightly and beta is affected.
:Jamie, is this bug important enough to require an uplift?
If not please set status_beta to wontfix.

For more information, please visit auto_nag documentation.

Flags: needinfo?(jteh)

A11y clients are already working around this and there's a very slight risk some a11y clients might get confused by the change, even though it's far more correct. I think this can bake for a bit longer.

Flags: needinfo?(jteh)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: