Closed Bug 1808646 Opened 3 years ago Closed 3 years ago

[wpt-sync] Sync PR 37766 - Fix focus traversal for self-referential invoker

Categories

(Core :: DOM: Core & HTML, task, P4)

task

Tracking

()

RESOLVED FIXED
110 Branch
Tracking Status
firefox110 --- fixed

People

(Reporter: wpt-sync, Unassigned)

References

()

Details

(Whiteboard: [wptsync downstream])

Sync web-platform-tests PR 37766 into mozilla-central (this bug is closed when the sync is complete).

PR: https://github.com/web-platform-tests/wpt/pull/37766
Details from upstream follow.

Mason Freed <masonf@chromium.org> wrote:

Fix focus traversal for self-referential invoker

In the case that a popover contains an invoker that points back to that
invoker, the tab navigation code used to get confused. E.g.:

\<div id="menu" popover>
  \<button autofocus popoverhidetarget="menu">Button #1\</button>
  \<button popoverhidetarget="menu">Button #2\</button>
\</div>

In this case, trying to tab between the first and second button would
break because the second button appeared to be an invoker for a new
popover, when in reality it was an invoker for the same popover.

Fixed: 1399601
Bug: 1307772
Change-Id: I276370d7c8eee0dd32f0c89da202a0d3777bf911
Reviewed-on: https://chromium-review.googlesource.com/4133482
WPT-Export-Revision: a1a5acb28b3b44055b5285c42e4109e06ebcff8f

Component: web-platform-tests → DOM: Core & HTML
Product: Testing → Core

CI Results

Ran 10 Firefox configurations based on mozilla-central, and Firefox, and Chrome on GitHub CI

Total 2 tests and 24 subtests

Status Summary

Firefox

OK : 1
FAIL : 25
ERROR: 1

Chrome

OK : 2
PASS : 14
FAIL : 13

Links

Gecko CI (Treeherder)
GitHub PR Head
GitHub PR Base

Details

New Tests That Don't Pass

  • /html/semantics/popovers/popover-focus-2.tentative.html [wpt.fyi]
    • Popover focus navigation: FAIL (Chrome: FAIL)
    • Circular reference tab navigation: FAIL (Chrome: FAIL)
    • Popover focus returns when popover is hidden by invoker: FAIL (Chrome: FAIL)
  • /html/semantics/popovers/popover-light-dismiss.tentative.html [wpt.fyi]: ERROR (Chrome: OK)
    • Clicking outside a popover will dismiss the popover: FAIL (Chrome: PASS)
    • Canceling pointer events should not keep clicks from light dismissing popovers: FAIL (Chrome: PASS)
    • Clicking inside a popover does not close that popover: FAIL (Chrome: PASS)
    • Popovers close on pointerup, not pointerdown: FAIL (Chrome: FAIL)
    • Synthetic events can't close popovers: FAIL (Chrome: FAIL)
    • Moving focus outside the popover should not dismiss the popover: FAIL (Chrome: FAIL)
    • Clicking inside a child popover shouldn't close either popover: FAIL (Chrome: FAIL)
    • Clicking inside a parent popover should close child popover: FAIL (Chrome: FAIL)
    • Clicking on invoking element, after using it for activation, shouldn't close its popover: FAIL (Chrome: PASS)
    • Clicking on invoking element, after using it for activation, shouldn't close its popover (nested case): FAIL (Chrome: PASS)
    • Clicking on invoking element, after using it for activation, shouldn't close its popover (nested case, not used for invocation): FAIL (Chrome: PASS)
    • Clicking on invoking element, even if it wasn't used for activation, shouldn't close its popover: FAIL (Chrome: PASS)
    • Clicking on popovertoggletarget element, even if it wasn't used for activation, should hide it exactly once: FAIL (Chrome: PASS)
    • Clicking on anchor element (that isn't an invoking element) shouldn't prevent its popover from being closed: FAIL (Chrome: FAIL)
    • Dragging from an open popover outside an open popover should leave the popover open: FAIL (Chrome: FAIL)
    • A popover inside an invoking element doesn't participate in that invoker's ancestor chain: FAIL (Chrome: FAIL)
    • An invoking element that was not used to invoke the popover can still be part of the ancestor chain: FAIL (Chrome: FAIL)
    • Scrolling within a popover should not close the popover: FAIL (Chrome: FAIL)
    • Moving focus back to the anchor element should not dismiss the popover: FAIL (Chrome: PASS)
    • Ensure circular/convoluted ancestral relationships are functional: FAIL (Chrome: PASS)
    • Ensure circular/convoluted ancestral relationships are functional, with a direct showPopover(): FAIL (Chrome: PASS)
    • Hide the target popover during "hide all popovers until": FAIL (Chrome: PASS)
Pushed by wptsync@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/a31c361a5d0e [wpt PR 37766] - Fix focus traversal for self-referential invoker, a=testonly https://hg.mozilla.org/integration/autoland/rev/148c1d9eae32 [wpt PR 37766] - Update wpt metadata, a=testonly
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 110 Branch
You need to log in before you can comment on or make changes to this bug.