feat: accessibility floor and a styled 404 #83

Merged
manlycucumber merged 1 commit from feat/a11y-error into develop 2026-07-06 21:39:12 +00:00
manlycucumber commented 2026-07-06 21:38:18 +00:00 (Migrated from github.com)

Completes the v0.2.0 interface with the accessibility floor and an in-world error page.

What lands

  • Styled error page (+error.svelte) — a retro platinum dialog on the liturgical wallpaper with a friendly 404 message and a way back to the desktop. adapter-static now emits a client-rendered 404.html fallback so static hosts serve it for any unknown path (all real routes still prerender under strict).
  • Skip link ("Skip to the apps") that appears on focus and jumps to the dock; the desktop is now a <main> landmark and the dock is a focusable skip target.
  • axe e2e suite (a11y.spec.ts, @axe-core/playwright) — the desktop (first-run + Home open) and the error page all pass with zero serious/critical WCAG 2.1 A/AA violations. Local/pre-release, like the offline e2e (not the required ci gate).

Verification (all green locally)

pnpm check (0/0) · pnpm lint · pnpm guard:colour · pnpm build (emits build/404.html) · guard:external · guard:content · guard:offline · pnpm test:unit (44) · pnpm test:e2e a11y (3 passed).

Advances #79 (accessibility floor) and #80 (styled error surfaces). With this, the v0.2.0 interface epics are complete.

Completes the **v0.2.0 interface** with the accessibility floor and an in-world error page. ## What lands - **Styled error page** ([`+error.svelte`](../blob/feat/a11y-error/src/routes/+error.svelte)) — a retro platinum dialog on the liturgical wallpaper with a friendly 404 message and a way back to the desktop. `adapter-static` now emits a client-rendered **`404.html`** fallback so static hosts serve it for any unknown path (all real routes still prerender under `strict`). - **Skip link** ("Skip to the apps") that appears on focus and jumps to the dock; the desktop is now a `<main>` landmark and the dock is a focusable skip target. - **axe e2e suite** ([`a11y.spec.ts`](../blob/feat/a11y-error/tests/e2e/a11y.spec.ts), `@axe-core/playwright`) — the desktop (first-run + Home open) and the error page all pass with **zero serious/critical WCAG 2.1 A/AA violations**. Local/pre-release, like the offline e2e (not the required `ci` gate). ## Verification (all green locally) `pnpm check` (0/0) · `pnpm lint` · `pnpm guard:colour` · `pnpm build` (emits `build/404.html`) · `guard:external` · `guard:content` · `guard:offline` · `pnpm test:unit` (44) · `pnpm test:e2e a11y` (3 passed). Advances **#79** (accessibility floor) and **#80** (styled error surfaces). With this, the v0.2.0 interface epics are complete.
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Bosco/bosco!83
No description provided.