Closed Bug 1733263 Opened 3 years ago Closed 3 years ago

Fire ACTIVE state change events

Categories

(Core :: Disability Access APIs, task, P3)

task

Tracking

()

RESOLVED FIXED
96 Branch
Tracking Status
firefox96 --- fixed

People

(Reporter: eeejay, Assigned: eeejay)

References

(Regressed 1 open bug)

Details

Attachments

(5 files)

I don't think we care about the root accessible case since that shouldn't happen in remote content.

We do care about aria-activedescendant though..

Changing severity to S3 because this is ongoing cache the world work that does not affect current users.

Severity: -- → S3
Type: defect → task
Priority: -- → P3

We do this in a bunch of places, so I moved it into promisified-events.

Assignee: nobody → eitan
Status: NEW → ASSIGNED

By allowing async DOM events to be dispatched, and advancing the refresh
driver we can force some calls to NotificationController::WillRefresh
and flush out any pending notifications or events.

This lets us more reliably catch unexpected events without the need for
a sentinel event at the end.

Depends on D130294

Have ARIAActiveDescendantIDMaybeMoved call ARIAActiveDescendantChanged regardless of
widget focus state. The latter already checks if the widget is focused. This gives us
a chance to fire and ACTIVE state change regardless of focus state.

If an id or aria-activedescendant attribute is about to change, fire an
ACTIVE state change on the previously active accessible.

Depends on D130295

This will make it easier to work with in a later change.

Depends on D130296

  1. Use dom events in RootAccessible to fire ACTIVE state changes.
  2. Add DOMMenuItemInactive events to nsListControlFrame and fire it on
    the previously active option.
  3. Don't fire those DOM events on collapsed combo boxes.
  4. Add ACTIVE state change events for collapsed combo box options.

Depends on D130297

Pushed by eisaacson@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/439e821c9640 P1: Refactor state change event promises. r=Jamie https://hg.mozilla.org/integration/autoland/rev/0b3d68cb6e68 P2: Flush events and notifications when waiting for unexpected events. r=Jamie https://hg.mozilla.org/integration/autoland/rev/2b1755721a8e P3: Fire ACTIVE state change when aria-activedescendant changes. r=Jamie https://hg.mozilla.org/integration/autoland/rev/c8f226476a30 P4: Promisify the select focus change test. r=Jamie https://hg.mozilla.org/integration/autoland/rev/06263018f1f7 P5: Rely on DOMMenuItem events for ACTIVE state changes in select elements. r=Jamie
Backout by abutkovits@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/fb93690f7303 Backed out 5 changesets for causing leakes. CLOSED TREE

I just rebased on central, tried to reproduce this locally and in try, and that specific task passes with no problem:
https://treeherder.mozilla.org/jobs?repo=try&revision=847c983bc6d4a93cb7257ef4c82f22b59b06a67c&selectedTaskRun=cRKD2kBaTKSnRtVwbiu-5A.0

I can't think of anything in the patch that would cause a JSRuntime leak.

Flags: needinfo?(eitan)
Pushed by eisaacson@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/f6ea433343d6 P1: Refactor state change event promises. r=Jamie https://hg.mozilla.org/integration/autoland/rev/d501ebf13af2 P2: Flush events and notifications when waiting for unexpected events. r=Jamie https://hg.mozilla.org/integration/autoland/rev/d6b82d560ad6 P3: Fire ACTIVE state change when aria-activedescendant changes. r=Jamie https://hg.mozilla.org/integration/autoland/rev/edcc0183f30d P4: Promisify the select focus change test. r=Jamie https://hg.mozilla.org/integration/autoland/rev/1685016c0c79 P5: Rely on DOMMenuItem events for ACTIVE state changes in select elements. r=Jamie
Depends on: 1741014
Regressions: 1741014
Regressions: 1744053
Regressions: 1768269
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: