Skip to content

fix(nav): the admin overflow sheet was the one surface that stayed silent - #84

Merged
github-actions[bot] merged 1 commit into
mainfrom
fix/admin-more-aria-current
Aug 31, 2026
Merged

fix(nav): the admin overflow sheet was the one surface that stayed silent#84
github-actions[bot] merged 1 commit into
mainfrom
fix/admin-more-aria-current

Conversation

@catomean

Copy link
Copy Markdown
Collaborator

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:

Target size. .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 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

…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
@github-actions
github-actions Bot merged commit d538a77 into main Aug 31, 2026
1 check passed
@github-actions
github-actions Bot deleted the fix/admin-more-aria-current branch August 31, 2026 07:29
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