Sitelet https://github.com/ngbracket/a11y-devtools/pull/20
Skip to content

fix(keyboard): nested closed <details> and hidden controls (0.15.1) - #20

Merged
DuncanFaulkner merged 1 commit into
mainfrom
fix/nested-details-tab-order
Sep 27, 2026
Merged

DuncanFaulkner merged 1 commit into
mainfrom
fix/nested-details-tab-order

Conversation

@DuncanFaulkner

Copy link
Copy Markdown
Contributor

tab-order-mismatch false positive on collapsed sidebars. isStructurallyHidden checked only the nearest closed <details>, so the <summary> of a <details> nested inside a closed one counted as a tab stop, although it's hidden and Tab can't reach it. The next section's summary then looked like a jump back up the page: 10 findings on docs.ngbracket.com/components/rich-text. Every closed <details> up the tree now counts (also fixes the overlay's tab-order badges).

unreachable-control skips hidden controls. A custom control inside a closed <details>, [hidden]/inert, or display: none was reported as unreachable. New isHidden helper; it's checked once shown.

Tests: unit tests for flat + nested <details> and hidden controls, plus a real-Chromium E2E page (/sidebar). Both fail on the old code. 263 pass. Live docs rescan (3 routes, light + dark): 0 findings.

Logged separately (not in this PR): roving-tabindex items (role="tab" tabindex="-1") are flagged as unreachable.

🤖 Generated with Claude Code

isStructurallyHidden checked only the nearest closed <details>, so the
summary of a <details> nested in a closed one counted as a tab stop and
tab-order-mismatch fired on collapsed docs sidebars (10x on
docs.ngbracket.com/components/rich-text). Every closed <details> up the
tree now counts. unreachable-control also skips hidden/inert controls
(new isHidden helper). Unit + real-Chromium E2E tests, both fail on the
old code. Live docs rescan: 0 findings, light and dark.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@DuncanFaulkner
DuncanFaulkner merged commit 67f34fa into main Sep 27, 2026
1 check passed
@DuncanFaulkner
DuncanFaulkner deleted the fix/nested-details-tab-order branch September 27, 2026 19:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant