← Back to Documentation Index

WCAG Accessibility Plan

Sponsor

Status: planned / incremental. Not the current main focus — but tracked, so we capture, measure, and improve deliberately over time rather than bolting it on at the end. Target standard: WCAG 2.2 Level AA (with select AAA where cheap).

This plan is Nova64-specific: our hard problem is that carts render to a <canvas> (opaque to assistive tech) with on-canvas "buttons" that aren't real DOM, plus an aesthetic (neon, bloom, glitch, strobe, auto-advance) that trends away from accessible defaults. See the per-cart guidance in CINEMATIC_3D_CART_GUIDE.md.


Guiding principles

  1. Default stays bold; one toggle makes it inclusive. Ship the full vaporwave assault, but a reduced-motion/high-contrast path must make it safe and usable. Inclusive ≠ watered-down.
  2. Canvas needs a DOM twin. Anything interactive drawn on the canvas needs a real, focusable, labeled DOM control that does the same thing.
  3. Measure before/while improving. Every phase has a baseline and a metric so we can see progress, not vibes.
  4. Bake it into the platform, not each cart. Solve it once in the host/runtime and cart-helper APIs so every future cart inherits it.

Phase 0 — Foundations & quick wins (cheap, do first)

Low-risk changes that move the needle immediately:

Phase 1 — Capture (audit & instrument)

Establish what's actually broken and stand up the tooling:

Exit metric: baseline axe/Lighthouse scores recorded; a written gap list with each item mapped to a WCAG 2.2 success criterion.

Phase 2 — Measure (targets & gates)

Phase 3 — Improve (build it into the platform)

Prioritized by impact × reuse:


Pattern spec — the "accessible canvas cart"

The reusable recipe Phase 3 will productize:


Ownership & cadence

North star: a photosensitive, keyboard-only, or screen-reader player can get through the whole story — boot → room → city → invite — and act on the CTAs, with the reduced-motion toggle on. We're not there yet; this is how we get there, one measured step at a time.