LC-565: a11y regression pass - composer focus ring + phantom danger token (redesign P5) #533
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/LC-565-a11y-regression-pass"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Visual / accessibility regression pass over the redesign (LC-UI-12). Two concrete fixes, plus the audit that the pass exists to produce.
Fixes in this PR
1. Composer keyboard focus ring. The composer icon buttons (
.lc-fmt-btn/.lc-composer-btn/.lc-composer-send) had no:focus-visiblerule, so keyboard focus fell back to the UA default outline, inconsistent with the app-wide idiom (.lc-set-tab/.lc-cbtn/.lc-switchall drawbox-shadow: 0 0 0 2px var(--ring)). Added the matching ring.--ringis defined in all four themes.2. Phantom
text-danger-surface-contenttoken (latent bug, 12 files). The danger family has no-surface-contenttoken (LC-215: danger copy uses--danger), yet 12 hand-rolled danger boxes across admin / settings / enclave referencedtext-danger-surface-content, so their error copy rendered with no explicit color (inherited--contentinstead of danger red). Swapped every occurrence totext-danger- the correct foreground onbg-danger-surface, already the pattern insettings/page.html's DND badge. Uniform token swap, no shape change, zero layout risk.Audit results
#000/#fff), accent nudged to blue-800 (hc-light) / blue-300 (hc-dark), sidebar pure black/white, status chips reuse the AAA-tuned.alert-*token pairsdata-lc-density-tightstill governs padding.lc-sidebartoken-scoping (LC-560) rides the same#sidebarcontainer the drawer togglesprefers-reduced-motionblocks; the redesign added no new animationDeferred (needs responsive visual iteration)
Interactive icon buttons sit below the 44px touch target (
.lc-fmt-btn28px,.lc-composer-btn/.lc-composer-send36px) and there is no@media (pointer: coarse)bump. The composer bottom row is densely packed (~10 controls + textarea on one line), so widening each to 44px risks horizontal overflow on narrow screens - it needs a real device/emulator check, out of scope for a headless pass. Recommendation: apointer: coarserule raising min tap size, likely paired with allowing the composer toolbar to wrap.Also out of scope (separate Priority-3 admin migration): fully replacing the 12 hand-rolled danger boxes with the
.alert alert-dangercomponent.Verify
just build-css-> clean.dev/cargo test --test routes_admin_bridges-> 10/10 (renders the bridges error banner + status chips).dev/cargo test --test routes_enclave-> 19/19 (renders enclave settings / branding error surfaces).🤖 Generated with Claude Code
https://claude.ai/code/session_011jXpZXXwpB36MvTr6JrGXN