| name | a11y-ing-checklist |
| description | Accessibility review for digitaltableteur using Sanna's a11y.ing demo checklist and testing philosophy. Use before shipping UI, when adding pages to the a11y registry, or when axe passes but voice control or screen reader UX may still fail. |
a11y.ing-inspired accessibility checklist
Philosophy (from a11y.ing)
- Accessibility is shared work: design, development, and content must align.
- Automated tools catch a fraction of real failures; plan manual keyboard and screen reader time.
- "I would if I could" — if users cannot complete a task, the service failed, not the user.
When to invoke
- New public route, pricing/PSEO/blog template change, or custom component with ARIA
- Before removing WIP badge from Storybook components
- After adding
aria-label, list-style: none, or CSS content: on pseudo-elements
- When expanding
tests/a11y/page-verification/helpers/page-registry.ts
Automated pass
npm run test:a11y:pages
npx playwright test tests/a11y/operable/label-in-name.spec.ts
npx playwright test tests/a11y/robust/list-semantics.spec.ts
npx playwright test tests/a11y/operable/reduced-motion.spec.ts
npx playwright test tests/a11y/perceivable/table-structure.spec.ts
npx playwright test tests/a11y/understandable/language-of-parts.spec.ts
Manual pass (required for ship)
- Keyboard — Tab header → main → footer; Esc closes mobile menu and modals.
- Screen reader (Safari + VoiceOver minimum) — Nav lists, pricing cards, blog content.
- Voice control — Say visible button/link label; control must activate (2.5.3).
- Zoom — 200% reflow (
reflow-zoom.spec.ts); Safari text-only zoom on a blog post.
- Reduced motion — OS setting on; no essential information only in motion.
- Dark mode contrast — Spot-check if axe/Tailwind disagree (a11y.ing note).
Page registry
Add new public URLs to tests/a11y/page-verification/helpers/page-registry.ts before claiming Phase 7 coverage. Categories: core, work, blog, legal, utility, pseo.
Component red flags in this codebase
list-style: none on ul/ol without list-style-type: " " (Safari VO fix)
content: "…" in CSS pseudo-elements (Pricing quotes, ProcessBlock, Illustrations)
- GSAP/CSS animations without
prefers-reduced-motion path
aria-label that omits full visible text (voice control failure)
- HTML tables without
<th scope="col|row">
References