642c5b7322
Add the a11y foundation and bring login, lobby, and the in-game shell to WCAG 2.2 AA: - Primitives: .sr-only + .skip-link (base.css), trapFocus (modal focus trap + restore) and restoreFocus (menu focus restore) actions, the --color-focus visible ring. - In-game shell: skip link + focusable main landmark; WAI-ARIA sidebar tabs (roving tabindex, arrow/Home/End, tabpanel wiring); menu Escape + focus restore (account / view / turn-navigator / map-toggles / bottom-tabs); mail compose as a role=dialog modal with a focus trap. - login / lobby / lobby-create: skip link + main landmark, field labels, role=alert / role=status live regions. - Map canvas: aria-label naming it a visual overview, with its data reachable by keyboard via the sidebar inspector and tables (accessible alternative; in-canvas keyboard nav deferred). Gates (chromium-desktop): tests/e2e/a11y-axe.spec.ts scans every top-level view for WCAG 2.2 AA violations (zero); a11y-keyboard.spec.ts covers the skip link, menu Escape+restore, and tab roving. Adds @axe-core/playwright. Docs: ui/docs/a11y.md (+ index). Marks F1 and F2 done in ui/PLAN-finalize.md. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2.7 KiB
2.7 KiB
UI client — topic docs
Deeper, topic-based documentation for the Galaxy web/cross-platform UI
client, beyond what fits in ../README.md. Each file
describes how one area works (current state); the staged build history
lives in ../PLAN.md, the active web finalization in
../PLAN-finalize.md, and deferred work in
../ROADMAP.md.
Foundation & platform
- design-system.md — the design tokens (colour / spacing / typography), the light/dark theming mechanism, and the component migration conventions.
- a11y.md — the WCAG 2.2 AA approach: axe + keyboard test gates, the shared a11y primitives, coverage by area, and the map-canvas alternative.
- navigation.md — routes, the sidebar tabs, and the state-preservation rules across view/tab switches.
- storage.md — the
KeyStoreandCacheabstractions and their web (IndexedDB) implementations. - game-state.md — decoding the FlatBuffers report into
GameReportand theGameState/ rendered-report stores. - sync-protocol.md — order-draft sync, turn cutoff, conflict handling, and auto-pause.
- events.md — the signed push channel and event handling.
- calc-bridge.md — the
pkg/calc→ WASM → TypeScript bridge, with the live function surface and parity rules. - wasm-toolchain.md — building
ui/coretocore.wasmwith TinyGo. - testing.md — the UI test layers (Vitest + Playwright).
Auth & lobby
- auth-flow.md — device keypair, email-code login, and request signing on the client.
- lobby.md — the lobby/game-list UI and membership flows.
Map & active views
- renderer.md — the PixiJS map renderer contract (world model, hit-test, torus / no-wrap).
- order-composer.md — the order tab and the optimistic order overlay.
- report-view.md — the Reports view.
Tools & inspectors
- calculator-ux.md — the ship-class calculator (design + goal-seek + planet build + reach circles + modernization).
- science-designer-ux.md — the science designer.
- ship-group-actions.md — ship-group inspector actions (move, send, upgrade, …).
- cargo-routes-ux.md — cargo-route composition and reach filtering.
Combat & comms
- battle-viewer-ux.md — the battle viewer.
- diplomail-ui.md — the diplomatic-mail view.
Localisation
- i18n.md — the localisation mechanism and translation bundles.