fix(nav): the admin overflow sheet was the one surface that stayed silent - #84
Merged
Merged
Conversation
…lent The sidebar and the bottom bar both set aria-current. The "More" sheet did not — so the destinations that happened to land behind the overflow were precisely the ones a screen-reader user could not locate themselves in. `isActive` and `pathname` were already in scope; the call was simply missing. Two more defects on the same surface, both of which the rest of the app already gets right: - `.moreSheetItem` came out near 41px tall — 0.65rem of padding around 0.85rem text at this root size. `.bottomNavItem` states `min-height: 44px` explicitly; the overflow sheet is the same kind of touch surface, so it now says the minimum instead of arriving near it by arithmetic. - Hover and focus were one rule ending in `outline: none`, so keyboard focus was indicated by a 7%-white wash and nothing else: the weakest possible signal, on the surface where a keyboard user most needs to know where they are. Focus now gets a real ring; hover keeps the wash. Found by a fleet-wide navigation audit across 20 repos, which found the same one-straggler shape in aoz-housing, fleetcrown and evig — four teams applying a rule correctly on every surface but one. Typecheck clean; 1306 tests pass. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XeELB8b3N4JrT2asYL9WvE
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.
The sidebar and the bottom bar both set
aria-current. The "More" sheet did not — so the destinations that happened to land behind the overflow were precisely the ones a screen-reader user could not locate themselves in.isActiveandpathnamewere already in scope; the call was simply missing.Two more defects on the same surface, both of which the rest of the app already gets right:
Target size.
.moreSheetItemcame out near 41px tall —0.65remof padding around0.85remtext at this root size..bottomNavItemstatesmin-height: 44pxexplicitly. The overflow sheet is the same kind of touch surface, so it now says the minimum rather than arriving near it by arithmetic.Focus indication. Hover and focus were one rule ending in
outline: none, so keyboard focus was signalled by a 7%-white wash and nothing else — the weakest possible indicator, on the surface where a keyboard user most needs to know where they are. Focus now gets a real ring; hover keeps the wash.Verification
Typecheck clean. All 1306 tests pass (87 files).
Found by a fleet-wide navigation audit across 20 repos, which found the same one-straggler shape in aoz-housing, fleetcrown and evig — four teams applying a rule correctly on every surface but one. That pattern is why the fix belongs in a gate rather than in four people's memory.
🤖 Generated with Claude Code
https://claude.ai/code/session_01XeELB8b3N4JrT2asYL9WvE