~/talk

Stop Guessing A11y: Auto-Generate Playwright Tests from Your GraphQL Schema

Talkat TestMu Conference 2026 · 2026-08-19..08-21· [accessibility, testing]
links:none on file
slides:none on file

Claim: add lightweight @a11y hints (directives: label, role, template, token) to a GraphQL schema, run a single-file Node generator that emits a JSON spec and Playwright tests, and let the browser prove semantics. Demo annotates a small schema, generates tests from a three‑movie sample, shows a failing assertion, fixes the template and reruns to green, then runs Playwright + axe-core audits. Targets five to ten screens, enforces CI failures, and cites 1.3 billion people and 71% leaving inaccessible sites.

AI-written summary · about

  1. 0:00Auto-Generating Accessibility Tests From a GraphQL Schema
  2. 1:09Speaker Intro - Vanessa Johnson, Android Engineer, The New York Times
  3. 1:42The Core Idea: Declare Semantics Once, Generate Tests, Let the Browser Prove It
  4. 2:42Why Accessibility Matters: 1.3 Billion People, 71% Leave Immediately
  5. 3:44Common WCAG Failures and Why They Happen Late
  6. 5:16Accessibility as a Coat of Paint - The Architect Analogy
  7. 5:47Pain Points: No Single Source of Truth, Brittle Client-Side Stitching
  8. 6:47Building the Accessibility String on the Client, and Why It Breaks
  9. 8:18Three Chefs, No Recipe: Why This Becomes Unmaintainable
  10. 8:49The Claim: The Server Should Ship Semantics Too
  11. 9:20Schema as a Contract - Client Agnostic, CI Enforced
  12. 9:50Design Constraints: Additive, Optional, Meaning Not Presentation
  13. 10:23The Directive Catalogue: Label, Role, Template, Token
  14. 11:24Accessibility Label as the Primary Screen Reader Identifier
  15. 11:54Accessibility Token: Type, Priority, Unit Prefix and Suffix
  16. 12:24Accessibility Template: Turning Fields Into Natural Sentences
  17. 13:56Annotating a Movie Type With All Three Directives
  18. 15:29Querying the Schema and Getting the Summary Back
  19. 16:31The Summary Only Includes What You Query For
  20. 17:03Why the Browser Is the Thing Under Test, Not GraphQL
  21. 18:04Translating Schema Intent Into Browser Assertions
  22. 19:04The Generated JSON Spec as a Contract
  23. 19:36The Generated Playwright Test Plus an Axe Core Audit
  24. 21:08Why These Tests Are Less Flaky - Anchored to Semantics
  25. 22:09Live Demo: Generating the Spec and Test File
  26. 22:41A Test That Fails Over a Period - Precision vs Noise
  27. 23:42Fixing the Template and Re-Running to Green
  28. 24:13Screen Reader Demo: The Row Announced as One Coherent Sentence
  29. 25:15The Fragmented Version and Why That Failure Is the Point
  30. 26:52Adopting This: Start With Five to Ten Screens, Prioritise Repeated Patterns
  31. 28:23Establishing a Glossary and Assigning Ownership
  32. 28:55Final Thoughts: Declare Once, Generate, Let CI Catch Drift
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.