Skip to content

[focusgroup] Exclude top-layer elements from ancestor navigation.#59564

Merged
chromium-wpt-export-bot merged 1 commit intomasterfrom
chromium-export-cl-7792136
Apr 30, 2026
Merged

[focusgroup] Exclude top-layer elements from ancestor navigation.#59564
chromium-wpt-export-bot merged 1 commit intomasterfrom
chromium-export-cl-7792136

Conversation

@chromium-wpt-export-bot
Copy link
Copy Markdown
Collaborator

@chromium-wpt-export-bot chromium-wpt-export-bot commented Apr 30, 2026

Elements in the top layer (popovers, modal dialogs, fullscreen) were
participating in ancestor focusgroup navigation. Per the scoped
focusgroup explainer's "Top layer elements" section, they should be
excluded while they remain in the top layer, matching focusgroup="none"
semantics for arrow keys, segment boundaries, and memory eligibility.
See:
https://open-ui.org/components/scoped-focusgroup.explainer/#top-layer-elements)

A top-layer element's own focusgroup still works normally; only ancestor
participation is affected.

Also fix the AX item role inference path in ax_object.cc, which called
FindFocusgroupOwner directly and could infer roles from an ancestor
focusgroup across a top-layer boundary. Remove the now-unused
IsInExplicitlyOptedOutSubtree.

Bug: 4021071
Change-Id: Ib1e051648e0e3555026f1692753c3e731ab694b6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7792136
Reviewed-by: Mason Freed <masonf@chromium.org>
Commit-Queue: Jacques Newman <janewman@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#1622904}

Elements in the top layer (popovers, modal dialogs, fullscreen) were
participating in ancestor focusgroup navigation. Per the scoped
focusgroup explainer's "Top layer elements" section, they should be
excluded while they remain in the top layer, matching focusgroup="none"
semantics for arrow keys, segment boundaries, and memory eligibility.
See:
https://open-ui.org/components/scoped-focusgroup.explainer/#top-layer-elements)

A top-layer element's own focusgroup still works normally; only ancestor
participation is affected.

Also fix the AX item role inference path in ax_object.cc, which called
FindFocusgroupOwner directly and could infer roles from an ancestor
focusgroup across a top-layer boundary. Remove the now-unused
IsInExplicitlyOptedOutSubtree.

Bug: 4021071
Change-Id: Ib1e051648e0e3555026f1692753c3e731ab694b6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7792136
Reviewed-by: Mason Freed <masonf@chromium.org>
Commit-Queue: Jacques Newman <janewman@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#1622904}
Copy link
Copy Markdown
Collaborator

@wpt-pr-bot wpt-pr-bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The review process for this patch is being conducted in the Chromium project.

@chromium-wpt-export-bot chromium-wpt-export-bot merged commit 4fea6ec into master Apr 30, 2026
28 checks passed
@chromium-wpt-export-bot chromium-wpt-export-bot deleted the chromium-export-cl-7792136 branch April 30, 2026 05:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants