Closed Bug 1744315 Opened 2 years ago Closed 2 years ago

Support explore by touch in fission frames

Categories

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

All
Android
defect

Tracking

()

RESOLVED FIXED
97 Branch
Tracking Status
firefox-esr91 --- disabled
firefox95 --- wontfix
firefox96 --- wontfix
firefox97 --- fixed

People

(Reporter: eeejay, Assigned: eeejay)

References

Details

(Whiteboard: [fission])

Attachments

(3 files)

Our current explore by touch code sends an IPC message to the document of the currently focused accessible (or top level doc). If the doc has OOP iframes in it, it won't be able to drill down further because it doesn't have access to that tree.

The long term solution is to have hittesting happen in the parent process. Since that won't be ready in a while, a medium term solution is to dispatch special mouse events that will use widget/apz paths to get to the right content doc. Then listen for those events in content docs and perform explore by touch.

The goal of this event is for doing hit testing in content and emit an
accessibility event with the result for Android's explore by touch.

This event allows us to use APZ's ability to target the correct content
doc.

Our default traversal rule will eventually work with remote trees, but
explore by touch will be local-only until we do hittesting in the parent
process. This change prevents the parent process from drilling down past
outer docs into frames.

Depends on D132840

(In reply to Eitan Isaacson [:eeejay] from comment #0)

The long term solution is to have hittesting happen in the parent process. Since that won't be ready in a while, a medium term solution is to dispatch special mouse events that will use widget/apz paths to get to the right content doc. Then listen for those events in content docs and perform explore by touch.

Out of curiosity:

  • What is the downside of the medium-term approach?
  • Do you have an idea of how the parent process hit test will work?

(In reply to Botond Ballo [:botond] from comment #4)

(In reply to Eitan Isaacson [:eeejay] from comment #0)

The long term solution is to have hittesting happen in the parent process. Since that won't be ready in a while, a medium term solution is to dispatch special mouse events that will use widget/apz paths to get to the right content doc. Then listen for those events in content docs and perform explore by touch.

Out of curiosity:

  • What is the downside of the medium-term approach?

No immediate downside, we will need parent side hit testing for other platforms because they are sync APIs. So at that point we should use a single implementation to simplify things.

  • Do you have an idea of how the parent process hit test will work?

Yeah, Morgan is working on caching accessible bounds in the parent process. So we will be reinventing the wheel and implement hit testing on top of that.

Severity: -- → S3
Priority: -- → P2
Pushed by eisaacson@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/5b8b5608f4a8
P1: Introduce chrome-only MozMouseExploreByTouch event. r=botond
https://hg.mozilla.org/integration/autoland/rev/51a98c438c34
P2: Don't traverse into remote accessibles in explore by touch. r=Jamie
https://hg.mozilla.org/integration/autoland/rev/dc22e26fdf2c
P3: Do explore by touch via DOM event. r=Jamie,botond

The patch landed in nightly and beta is affected.
:eeejay, 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?(eitan)
Blocks: a11y-fission
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: