Repository navigation
fix(keyboard): accept one roving tab stop shared by repeated sibling widgets (0.15.5) - #24
Merged
Merged
Conversation
… widgets (0.15.5) A board with a listbox per column and one tab stop for the whole board had every card in the other columns reported unreachable. An item is also reachable when a tabbable item of the same role, in a widget of the same role, is inside the same component (bounded at the nearest component host; key handling still required). Specs incl. three negatives; sabotage-checked. Docs dogfood (154 routes): board 13 → 0, nothing new. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… cache per widget Review follow-up: a working listbox could vouch for an unrelated broken one in the same component. Now the two widgets must be repeated siblings (their branches are the same element and share a class, as a @for renders — modifier classes may differ). Result cached per widget (was O(n^2)). CHANGELOG: dev builds only. Docs dogfood unchanged: 61 → 39 (board 13 → 0), nothing new. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…d --modifiers) Re-review: "share one class" let unrelated wrappers match (ng-star-inserted from legacy animations on every @if/@for element; utility classes). Now the same non-empty class set, ignoring ng-* and BEM modifiers; unclassed wrappers never match. Cache keyed by widget and item role. Specs: ng-* and partial overlap don't vouch; columns with differing ng-tns classes still match. Docs dogfood unchanged: 61 → 39, nothing new. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
ngbr/unreachable-controlreported every card in a board's other columns (arole=listboxper column, one tab stop for the whole board) as serious. An item is now also reachable when another widget of the same role, inside the same component and repeated alongside it (same element + same classes, ignoringng-*and--modifiers), has a tabbable item of the same role. Key handling still required; dev builds only (needs the debug API).Specs incl. negatives (no host, other role, outside the component, unrelated wrapper, ng-star-inserted/utility overlap); sabotage-checked. 303 tests. Docs dogfood (154 routes): 61 → 39 (board 13 → 0 with data-table 1.1.1's 9 → 0), nothing new. Three review rounds, clean.
🤖 Generated with Claude Code