Accessibility audit

Audit results for every page on a11yequitas.org. Playwright + axe-core tests run on every build against WCAG 2.2 AAA across 6 theme/font combinations. Accessibility Insights for Web assessments are run manually each release.

Last run · 2026-07-19587 checks · 0 failures · 440.6s · WCAG 2.2 AAA × 6 theme/font combos · axe-core (Playwright, Chromium)

Methodology

Two engines, one bar — why both matteraxe-core (Deque) implements ~95 rules covering most of WCAG 2.2 A/AA/AAA — strong on color contrast, ARIA roles, and form labels. Alfa (Siteimprove) implements the W3C ACT Rules standard — strong on semantic structure, focus order, and edge cases (e.g., aria-hidden inside focusable elements, redundant landmarks) that axe-core does not check. The two engines overlap by ~30% — running both catches roughly 1.5× the violations of either alone. CI fails if either reports any issue.
  • Playwright + axe-core (@axe-core/playwright) — headless Chromium, WCAG 2.2 A/AA/AAA rule set across 6 theme/font combos. Catches most contrast, ARIA, and form-label issues.
  • Playwright + Alfa (@siteimprove/alfa-playwright) — W3C ACT-Rules engine, one audit per route. Catches semantic-structure and focus issues axe-core misses.
  • Accessibility Insights for Web — structured guided assessment (Fast Pass + Assessment) run manually each release.
  • Screen reader testing — manual pass against WCAG 2.2 AAA. VoiceOver + Safari (macOS) complete. NVDA + Firefox (Windows) and TalkBack + Chrome (Android) planned.

Results by page

Manual assessment planEvery page below will be manually checked against WCAG 2.2 AAA using Accessibility Insights for Web. Rows still showing "—" in the AI manual column are queued for the next assessment cycle.
Accessibility audit results. axe = automated axe-core violations. alfa = Siteimprove Alfa ACT-rules violations. Playwright = link to full Playwright report (both engines). AI = link to Accessibility Insights assessment. All tests target WCAG 2.2 AAA.
PageDateaxealfaPlaywrightAI manualStatus
Home2026-07-1900View reportView reportPass
About2026-07-1900View reportPass
Schools2026-07-1900View reportPass
Site workflow2026-07-1900View reportPass
More components2026-07-1900View reportPass
A11y audit tools2026-07-1900View reportPass
VoiceOver audit2026-07-1900View reportPass
NVDA audit2026-07-1900View reportPass
TalkBack audit2026-07-1900View reportPass
Model card2026-07-1900View reportView reportPass
Models2026-07-1900View reportView reportPass
Who this helps2026-07-1900View reportView reportPass
Default fonts2026-07-1900View reportView reportPass
Default styles2026-07-1900View reportView reportPass
Accessibility statement2026-07-1900View reportView reportPass
AI transparency2026-07-1900View reportPass
Accessibility audit2026-07-1900View reportPass
Security audit2026-07-1900View reportPass
Privacy policy2026-07-1900View reportPass
Accessible PDFs2026-07-1900View reportPass
Accessible tables2026-07-1900View reportPass
Accessible charts2026-07-1900View reportView reportPass
Accessible images2026-07-1900View reportPass
Accessible videos2026-07-1900View reportPass
Accessible tech stack2026-07-1900View reportPass
Tailwind for accessibility2026-07-1900View reportPass
ND accommodations2026-07-1900View reportPass
Accessible accordion2026-07-1900View reportPass
Accessible tabs2026-07-1900View reportPass
Accessible dropdown2026-07-1900View reportPass

Playwright worker results

PlaywrightAll pass
Tests
587
axe-core
312/312 · 371.2s
Alfa
52/52 · 47.8s
Workers
4
Duration
442.5s
Test list (587)
  • / [light/lexend]
  • / [light/atkinson]
  • / [light/opendyslexic]
  • / [dark/lexend]
  • / [dark/atkinson]
  • / [dark/opendyslexic]
  • /about/ [light/lexend]
  • /about/ [light/atkinson]
  • /about/ [light/opendyslexic]
  • /about/ [dark/lexend]
  • /about/ [dark/atkinson]
  • /about/ [dark/opendyslexic]
  • /schools/ [light/lexend]
  • /schools/ [light/atkinson]
  • /schools/ [light/opendyslexic]
  • /schools/ [dark/lexend]
  • /schools/ [dark/atkinson]
  • /schools/ [dark/opendyslexic]
  • /site-workflow/ [light/lexend]
  • /site-workflow/ [light/atkinson]
  • /site-workflow/ [light/opendyslexic]
  • /site-workflow/ [dark/lexend]
  • /site-workflow/ [dark/atkinson]
  • /site-workflow/ [dark/opendyslexic]
  • /more-components/ [light/lexend]
  • /more-components/ [light/atkinson]
  • /more-components/ [light/opendyslexic]
  • /more-components/ [dark/lexend]
  • /more-components/ [dark/atkinson]
  • /more-components/ [dark/opendyslexic]
  • /audit-tools/ [light/lexend]
  • /audit-tools/ [light/atkinson]
  • /audit-tools/ [light/opendyslexic]
  • /audit-tools/ [dark/lexend]
  • /audit-tools/ [dark/atkinson]
  • /audit-tools/ [dark/opendyslexic]
  • /audit-voiceover/ [light/lexend]
  • /audit-voiceover/ [light/atkinson]
  • /audit-voiceover/ [light/opendyslexic]
  • /audit-voiceover/ [dark/lexend]
  • /audit-voiceover/ [dark/atkinson]
  • /audit-voiceover/ [dark/opendyslexic]
  • /audit-nvda/ [light/lexend]
  • /audit-nvda/ [light/atkinson]
  • /audit-nvda/ [light/opendyslexic]
  • /audit-nvda/ [dark/lexend]
  • /audit-nvda/ [dark/atkinson]
  • /audit-nvda/ [dark/opendyslexic]
  • /audit-talkback/ [light/lexend]
  • /audit-talkback/ [light/atkinson]
  • /audit-talkback/ [light/opendyslexic]
  • /audit-talkback/ [dark/lexend]
  • /audit-talkback/ [dark/atkinson]
  • /audit-talkback/ [dark/opendyslexic]
  • /model-card/ [light/lexend]
  • /model-card/ [light/atkinson]
  • /model-card/ [light/opendyslexic]
  • /model-card/ [dark/lexend]
  • /model-card/ [dark/atkinson]
  • /model-card/ [dark/opendyslexic]
  • /models/ [light/lexend]
  • /models/ [light/atkinson]
  • /models/ [light/opendyslexic]
  • /models/ [dark/lexend]
  • /models/ [dark/atkinson]
  • /models/ [dark/opendyslexic]
  • /who-this-helps/ [light/lexend]
  • /who-this-helps/ [light/atkinson]
  • /who-this-helps/ [light/opendyslexic]
  • /who-this-helps/ [dark/lexend]
  • /who-this-helps/ [dark/atkinson]
  • /who-this-helps/ [dark/opendyslexic]
  • /typography/ [light/lexend]
  • /typography/ [light/atkinson]
  • /typography/ [light/opendyslexic]
  • /typography/ [dark/lexend]
  • /typography/ [dark/atkinson]
  • /typography/ [dark/opendyslexic]
  • /design-system/ [light/lexend]
  • /design-system/ [light/atkinson]
  • /design-system/ [light/opendyslexic]
  • /design-system/ [dark/lexend]
  • /design-system/ [dark/atkinson]
  • /design-system/ [dark/opendyslexic]
  • /accessibility-statement/ [light/lexend]
  • /accessibility-statement/ [light/atkinson]
  • /accessibility-statement/ [light/opendyslexic]
  • /accessibility-statement/ [dark/lexend]
  • /accessibility-statement/ [dark/atkinson]
  • /accessibility-statement/ [dark/opendyslexic]
  • /ai-transparency/ [light/lexend]
  • /ai-transparency/ [light/atkinson]
  • /ai-transparency/ [light/opendyslexic]
  • /ai-transparency/ [dark/lexend]
  • /ai-transparency/ [dark/atkinson]
  • /ai-transparency/ [dark/opendyslexic]
  • /a11y-audit/ [light/lexend]
  • /a11y-audit/ [light/atkinson]
  • /a11y-audit/ [light/opendyslexic]
  • /a11y-audit/ [dark/lexend]
  • /a11y-audit/ [dark/atkinson]
  • /a11y-audit/ [dark/opendyslexic]
  • /security-audit/ [light/lexend]
  • /security-audit/ [light/atkinson]
  • /security-audit/ [light/opendyslexic]
  • /security-audit/ [dark/lexend]
  • /security-audit/ [dark/atkinson]
  • /security-audit/ [dark/opendyslexic]
  • /privacy/ [light/lexend]
  • /privacy/ [light/atkinson]
  • /privacy/ [light/opendyslexic]
  • /privacy/ [dark/lexend]
  • /privacy/ [dark/atkinson]
  • /privacy/ [dark/opendyslexic]
  • /accessible-pdfs/ [light/lexend]
  • /accessible-pdfs/ [light/atkinson]
  • /accessible-pdfs/ [light/opendyslexic]
  • /accessible-pdfs/ [dark/lexend]
  • /accessible-pdfs/ [dark/atkinson]
  • /accessible-pdfs/ [dark/opendyslexic]
  • /accessible-tables/ [light/lexend]
  • /accessible-tables/ [light/atkinson]
  • /accessible-tables/ [light/opendyslexic]
  • /accessible-tables/ [dark/lexend]
  • /accessible-tables/ [dark/atkinson]
  • /accessible-tables/ [dark/opendyslexic]
  • /accessible-charts/ [light/lexend]
  • /accessible-charts/ [light/atkinson]
  • /accessible-charts/ [light/opendyslexic]
  • /accessible-charts/ [dark/lexend]
  • /accessible-charts/ [dark/atkinson]
  • /accessible-charts/ [dark/opendyslexic]
  • /accessible-images/ [light/lexend]
  • /accessible-images/ [light/atkinson]
  • /accessible-images/ [light/opendyslexic]
  • /accessible-images/ [dark/lexend]
  • /accessible-images/ [dark/atkinson]
  • /accessible-images/ [dark/opendyslexic]
  • /accessible-videos/ [light/lexend]
  • /accessible-videos/ [light/atkinson]
  • /accessible-videos/ [light/opendyslexic]
  • /accessible-videos/ [dark/lexend]
  • /accessible-videos/ [dark/atkinson]
  • /accessible-videos/ [dark/opendyslexic]
  • /accessible-tech-stack/ [light/lexend]
  • /accessible-tech-stack/ [light/atkinson]
  • /accessible-tech-stack/ [light/opendyslexic]
  • /accessible-tech-stack/ [dark/lexend]
  • /accessible-tech-stack/ [dark/atkinson]
  • /accessible-tech-stack/ [dark/opendyslexic]
  • /tailwind-for-accessibility/ [light/lexend]
  • /tailwind-for-accessibility/ [light/atkinson]
  • /tailwind-for-accessibility/ [light/opendyslexic]
  • /tailwind-for-accessibility/ [dark/lexend]
  • /tailwind-for-accessibility/ [dark/atkinson]
  • /tailwind-for-accessibility/ [dark/opendyslexic]
  • /reasonable-accommodations-neurodivergence/ [light/lexend]
  • /reasonable-accommodations-neurodivergence/ [light/atkinson]
  • /reasonable-accommodations-neurodivergence/ [light/opendyslexic]
  • /reasonable-accommodations-neurodivergence/ [dark/lexend]
  • /reasonable-accommodations-neurodivergence/ [dark/atkinson]
  • /reasonable-accommodations-neurodivergence/ [dark/opendyslexic]
  • /accessible-accordion/ [light/lexend]
  • /accessible-accordion/ [light/atkinson]
  • /accessible-accordion/ [light/opendyslexic]
  • /accessible-accordion/ [dark/lexend]
  • /accessible-accordion/ [dark/atkinson]
  • /accessible-accordion/ [dark/opendyslexic]
  • /accessible-tabs/ [light/lexend]
  • /accessible-tabs/ [light/atkinson]
  • /accessible-tabs/ [light/opendyslexic]
  • /accessible-tabs/ [dark/lexend]
  • /accessible-tabs/ [dark/atkinson]
  • /accessible-tabs/ [dark/opendyslexic]
  • /accessible-dropdown/ [light/lexend]
  • /accessible-dropdown/ [light/atkinson]
  • /accessible-dropdown/ [light/opendyslexic]
  • /accessible-dropdown/ [dark/lexend]
  • /accessible-dropdown/ [dark/atkinson]
  • /accessible-dropdown/ [dark/opendyslexic]
  • /reports/home-playwright/ [light/lexend]
  • /reports/home-playwright/ [light/atkinson]
  • /reports/home-playwright/ [light/opendyslexic]
  • /reports/home-playwright/ [dark/lexend]
  • /reports/home-playwright/ [dark/atkinson]
  • /reports/home-playwright/ [dark/opendyslexic]
  • /reports/home-a11y-insights/ [light/lexend]
  • /reports/home-a11y-insights/ [light/atkinson]
  • /reports/home-a11y-insights/ [light/opendyslexic]
  • /reports/home-a11y-insights/ [dark/lexend]
  • /reports/home-a11y-insights/ [dark/atkinson]
  • /reports/home-a11y-insights/ [dark/opendyslexic]
  • /es/ [light/lexend]
  • /es/ [light/atkinson]
  • /es/ [light/opendyslexic]
  • /es/ [dark/lexend]
  • /es/ [dark/atkinson]
  • /es/ [dark/opendyslexic]
  • /es/about/ [light/lexend]
  • /es/about/ [light/atkinson]
  • /es/about/ [light/opendyslexic]
  • /es/about/ [dark/lexend]
  • /es/about/ [dark/atkinson]
  • /es/about/ [dark/opendyslexic]
  • /es/schools/ [light/lexend]
  • /es/schools/ [light/atkinson]
  • /es/schools/ [light/opendyslexic]
  • /es/schools/ [dark/lexend]
  • /es/schools/ [dark/atkinson]
  • /es/schools/ [dark/opendyslexic]
  • /es/site-workflow/ [light/lexend]
  • /es/site-workflow/ [light/atkinson]
  • /es/site-workflow/ [light/opendyslexic]
  • /es/site-workflow/ [dark/lexend]
  • /es/site-workflow/ [dark/atkinson]
  • /es/site-workflow/ [dark/opendyslexic]
  • /es/audit-tools/ [light/lexend]
  • /es/audit-tools/ [light/atkinson]
  • /es/audit-tools/ [light/opendyslexic]
  • /es/audit-tools/ [dark/lexend]
  • /es/audit-tools/ [dark/atkinson]
  • /es/audit-tools/ [dark/opendyslexic]
  • /es/audit-voiceover/ [light/lexend]
  • /es/audit-voiceover/ [light/atkinson]
  • /es/audit-voiceover/ [light/opendyslexic]
  • /es/audit-voiceover/ [dark/lexend]
  • /es/audit-voiceover/ [dark/atkinson]
  • /es/audit-voiceover/ [dark/opendyslexic]
  • /es/audit-nvda/ [light/lexend]
  • /es/audit-nvda/ [light/atkinson]
  • /es/audit-nvda/ [light/opendyslexic]
  • /es/audit-nvda/ [dark/lexend]
  • /es/audit-nvda/ [dark/atkinson]
  • /es/audit-nvda/ [dark/opendyslexic]
  • /es/audit-talkback/ [light/lexend]
  • /es/audit-talkback/ [light/atkinson]
  • /es/audit-talkback/ [light/opendyslexic]
  • /es/audit-talkback/ [dark/lexend]
  • /es/audit-talkback/ [dark/atkinson]
  • /es/audit-talkback/ [dark/opendyslexic]
  • /es/model-card/ [light/lexend]
  • /es/model-card/ [light/atkinson]
  • /es/model-card/ [light/opendyslexic]
  • /es/model-card/ [dark/lexend]
  • /es/model-card/ [dark/atkinson]
  • /es/model-card/ [dark/opendyslexic]
  • /es/who-this-helps/ [light/lexend]
  • /es/who-this-helps/ [light/atkinson]
  • /es/who-this-helps/ [light/opendyslexic]
  • /es/who-this-helps/ [dark/lexend]
  • /es/who-this-helps/ [dark/atkinson]
  • /es/who-this-helps/ [dark/opendyslexic]
  • /es/typography/ [light/lexend]
  • /es/typography/ [light/atkinson]
  • /es/typography/ [light/opendyslexic]
  • /es/typography/ [dark/lexend]
  • /es/typography/ [dark/atkinson]
  • /es/typography/ [dark/opendyslexic]
  • /es/accessibility-statement/ [light/lexend]
  • /es/accessibility-statement/ [light/atkinson]
  • /es/accessibility-statement/ [light/opendyslexic]
  • /es/accessibility-statement/ [dark/lexend]
  • /es/accessibility-statement/ [dark/atkinson]
  • /es/accessibility-statement/ [dark/opendyslexic]
  • /es/ai-transparency/ [light/lexend]
  • /es/ai-transparency/ [light/atkinson]
  • /es/ai-transparency/ [light/opendyslexic]
  • /es/ai-transparency/ [dark/lexend]
  • /es/ai-transparency/ [dark/atkinson]
  • /es/ai-transparency/ [dark/opendyslexic]
  • /es/a11y-audit/ [light/lexend]
  • /es/a11y-audit/ [light/atkinson]
  • /es/a11y-audit/ [light/opendyslexic]
  • /es/a11y-audit/ [dark/lexend]
  • /es/a11y-audit/ [dark/atkinson]
  • /es/a11y-audit/ [dark/opendyslexic]
  • /es/security-audit/ [light/lexend]
  • /es/security-audit/ [light/atkinson]
  • /es/security-audit/ [light/opendyslexic]
  • /es/security-audit/ [dark/lexend]
  • /es/security-audit/ [dark/atkinson]
  • /es/security-audit/ [dark/opendyslexic]
  • /es/privacy/ [light/lexend]
  • /es/privacy/ [light/atkinson]
  • /es/privacy/ [light/opendyslexic]
  • /es/privacy/ [dark/lexend]
  • /es/privacy/ [dark/atkinson]
  • /es/privacy/ [dark/opendyslexic]
  • /es/reasonable-accommodations-neurodivergence/ [light/lexend]
  • /es/reasonable-accommodations-neurodivergence/ [light/atkinson]
  • /es/reasonable-accommodations-neurodivergence/ [light/opendyslexic]
  • /es/reasonable-accommodations-neurodivergence/ [dark/lexend]
  • /es/reasonable-accommodations-neurodivergence/ [dark/atkinson]
  • /es/reasonable-accommodations-neurodivergence/ [dark/opendyslexic]
  • /es/audit-voiceover/report/ [light/lexend]
  • /es/audit-voiceover/report/ [light/atkinson]
  • /es/audit-voiceover/report/ [light/opendyslexic]
  • /es/audit-voiceover/report/ [dark/lexend]
  • /es/audit-voiceover/report/ [dark/atkinson]
  • /es/audit-voiceover/report/ [dark/opendyslexic]
  • /es/reports/home-playwright/ [light/lexend]
  • /es/reports/home-playwright/ [light/atkinson]
  • /es/reports/home-playwright/ [light/opendyslexic]
  • /es/reports/home-playwright/ [dark/lexend]
  • /es/reports/home-playwright/ [dark/atkinson]
  • /es/reports/home-playwright/ [dark/opendyslexic]
  • /es/reports/home-a11y-insights/ [light/lexend]
  • /es/reports/home-a11y-insights/ [light/atkinson]
  • /es/reports/home-a11y-insights/ [light/opendyslexic]
  • /es/reports/home-a11y-insights/ [dark/lexend]
  • /es/reports/home-a11y-insights/ [dark/atkinson]
  • /es/reports/home-a11y-insights/ [dark/opendyslexic]
  • [alfa] / — zero Alfa failures
  • [alfa] /about/ — zero Alfa failures
  • [alfa] /schools/ — zero Alfa failures
  • [alfa] /site-workflow/ — zero Alfa failures
  • [alfa] /more-components/ — zero Alfa failures
  • [alfa] /audit-tools/ — zero Alfa failures
  • [alfa] /audit-voiceover/ — zero Alfa failures
  • [alfa] /audit-nvda/ — zero Alfa failures
  • [alfa] /audit-talkback/ — zero Alfa failures
  • [alfa] /model-card/ — zero Alfa failures
  • [alfa] /models/ — zero Alfa failures
  • [alfa] /who-this-helps/ — zero Alfa failures
  • [alfa] /typography/ — zero Alfa failures
  • [alfa] /design-system/ — zero Alfa failures
  • [alfa] /accessibility-statement/ — zero Alfa failures
  • [alfa] /ai-transparency/ — zero Alfa failures
  • [alfa] /a11y-audit/ — zero Alfa failures
  • [alfa] /security-audit/ — zero Alfa failures
  • [alfa] /privacy/ — zero Alfa failures
  • [alfa] /accessible-pdfs/ — zero Alfa failures
  • [alfa] /accessible-tables/ — zero Alfa failures
  • [alfa] /accessible-charts/ — zero Alfa failures
  • [alfa] /accessible-images/ — zero Alfa failures
  • [alfa] /accessible-videos/ — zero Alfa failures
  • [alfa] /accessible-tech-stack/ — zero Alfa failures
  • [alfa] /tailwind-for-accessibility/ — zero Alfa failures
  • [alfa] /reasonable-accommodations-neurodivergence/ — zero Alfa failures
  • [alfa] /accessible-accordion/ — zero Alfa failures
  • [alfa] /accessible-tabs/ — zero Alfa failures
  • [alfa] /accessible-dropdown/ — zero Alfa failures
  • [alfa] /reports/home-playwright/ — zero Alfa failures
  • [alfa] /reports/home-a11y-insights/ — zero Alfa failures
  • [alfa] /es/ — zero Alfa failures
  • [alfa] /es/about/ — zero Alfa failures
  • [alfa] /es/schools/ — zero Alfa failures
  • [alfa] /es/site-workflow/ — zero Alfa failures
  • [alfa] /es/audit-tools/ — zero Alfa failures
  • [alfa] /es/audit-voiceover/ — zero Alfa failures
  • [alfa] /es/audit-nvda/ — zero Alfa failures
  • [alfa] /es/audit-talkback/ — zero Alfa failures
  • [alfa] /es/model-card/ — zero Alfa failures
  • [alfa] /es/who-this-helps/ — zero Alfa failures
  • [alfa] /es/typography/ — zero Alfa failures
  • [alfa] /es/accessibility-statement/ — zero Alfa failures
  • [alfa] /es/ai-transparency/ — zero Alfa failures
  • [alfa] /es/a11y-audit/ — zero Alfa failures
  • [alfa] /es/security-audit/ — zero Alfa failures
  • [alfa] /es/privacy/ — zero Alfa failures
  • [alfa] /es/reasonable-accommodations-neurodivergence/ — zero Alfa failures
  • [alfa] /es/audit-voiceover/report/ — zero Alfa failures
  • [alfa] /es/reports/home-playwright/ — zero Alfa failures
  • [alfa] /es/reports/home-a11y-insights/ — zero Alfa failures
  • / — lang attribute is set
  • / — exactly one h1
  • / — page title is set
  • / — skip link reaches main
  • /about/ — lang attribute is set
  • /about/ — exactly one h1
  • /about/ — page title is set
  • /about/ — skip link reaches main
  • /schools/ — lang attribute is set
  • /schools/ — exactly one h1
  • /schools/ — page title is set
  • /schools/ — skip link reaches main
  • /site-workflow/ — lang attribute is set
  • /site-workflow/ — exactly one h1
  • /site-workflow/ — page title is set
  • /site-workflow/ — skip link reaches main
  • /more-components/ — lang attribute is set
  • /more-components/ — exactly one h1
  • /more-components/ — page title is set
  • /more-components/ — skip link reaches main
  • /audit-tools/ — lang attribute is set
  • /audit-tools/ — exactly one h1
  • /audit-tools/ — page title is set
  • /audit-tools/ — skip link reaches main
  • /audit-voiceover/ — lang attribute is set
  • /audit-voiceover/ — exactly one h1
  • /audit-voiceover/ — page title is set
  • /audit-voiceover/ — skip link reaches main
  • /audit-nvda/ — lang attribute is set
  • /audit-nvda/ — exactly one h1
  • /audit-nvda/ — page title is set
  • /audit-nvda/ — skip link reaches main
  • /audit-talkback/ — lang attribute is set
  • /audit-talkback/ — exactly one h1
  • /audit-talkback/ — page title is set
  • /audit-talkback/ — skip link reaches main
  • /model-card/ — lang attribute is set
  • /model-card/ — exactly one h1
  • /model-card/ — page title is set
  • /model-card/ — skip link reaches main
  • /models/ — lang attribute is set
  • /models/ — exactly one h1
  • /models/ — page title is set
  • /models/ — skip link reaches main
  • /who-this-helps/ — lang attribute is set
  • /who-this-helps/ — exactly one h1
  • /who-this-helps/ — page title is set
  • /who-this-helps/ — skip link reaches main
  • /typography/ — lang attribute is set
  • /typography/ — exactly one h1
  • /typography/ — page title is set
  • /typography/ — skip link reaches main
  • /design-system/ — lang attribute is set
  • /design-system/ — exactly one h1
  • /design-system/ — page title is set
  • /design-system/ — skip link reaches main
  • /accessibility-statement/ — lang attribute is set
  • /accessibility-statement/ — exactly one h1
  • /accessibility-statement/ — page title is set
  • /accessibility-statement/ — skip link reaches main
  • /ai-transparency/ — lang attribute is set
  • /ai-transparency/ — exactly one h1
  • /ai-transparency/ — page title is set
  • /ai-transparency/ — skip link reaches main
  • /a11y-audit/ — lang attribute is set
  • /a11y-audit/ — exactly one h1
  • /a11y-audit/ — page title is set
  • /a11y-audit/ — skip link reaches main
  • /security-audit/ — lang attribute is set
  • /security-audit/ — exactly one h1
  • /security-audit/ — page title is set
  • /security-audit/ — skip link reaches main
  • /privacy/ — lang attribute is set
  • /privacy/ — exactly one h1
  • /privacy/ — page title is set
  • /privacy/ — skip link reaches main
  • /accessible-pdfs/ — lang attribute is set
  • /accessible-pdfs/ — exactly one h1
  • /accessible-pdfs/ — page title is set
  • /accessible-pdfs/ — skip link reaches main
  • /accessible-tables/ — lang attribute is set
  • /accessible-tables/ — exactly one h1
  • /accessible-tables/ — page title is set
  • /accessible-tables/ — skip link reaches main
  • /accessible-charts/ — lang attribute is set
  • /accessible-charts/ — exactly one h1
  • /accessible-charts/ — page title is set
  • /accessible-charts/ — skip link reaches main
  • /accessible-images/ — lang attribute is set
  • /accessible-images/ — exactly one h1
  • /accessible-images/ — page title is set
  • /accessible-images/ — skip link reaches main
  • /accessible-videos/ — lang attribute is set
  • /accessible-videos/ — exactly one h1
  • /accessible-videos/ — page title is set
  • /accessible-videos/ — skip link reaches main
  • /accessible-tech-stack/ — lang attribute is set
  • /accessible-tech-stack/ — exactly one h1
  • /accessible-tech-stack/ — page title is set
  • /accessible-tech-stack/ — skip link reaches main
  • /tailwind-for-accessibility/ — lang attribute is set
  • /tailwind-for-accessibility/ — exactly one h1
  • /tailwind-for-accessibility/ — page title is set
  • /tailwind-for-accessibility/ — skip link reaches main
  • /reasonable-accommodations-neurodivergence/ — lang attribute is set
  • /reasonable-accommodations-neurodivergence/ — exactly one h1
  • /reasonable-accommodations-neurodivergence/ — page title is set
  • /reasonable-accommodations-neurodivergence/ — skip link reaches main
  • /accessible-accordion/ — lang attribute is set
  • /accessible-accordion/ — exactly one h1
  • /accessible-accordion/ — page title is set
  • /accessible-accordion/ — skip link reaches main
  • /accessible-tabs/ — lang attribute is set
  • /accessible-tabs/ — exactly one h1
  • /accessible-tabs/ — page title is set
  • /accessible-tabs/ — skip link reaches main
  • /accessible-dropdown/ — lang attribute is set
  • /accessible-dropdown/ — exactly one h1
  • /accessible-dropdown/ — page title is set
  • /accessible-dropdown/ — skip link reaches main
  • /reports/home-playwright/ — lang attribute is set
  • /reports/home-playwright/ — exactly one h1
  • /reports/home-playwright/ — page title is set
  • /reports/home-playwright/ — skip link reaches main
  • /reports/home-a11y-insights/ — lang attribute is set
  • /reports/home-a11y-insights/ — exactly one h1
  • /reports/home-a11y-insights/ — page title is set
  • /reports/home-a11y-insights/ — skip link reaches main
  • /es/ — lang attribute is set
  • /es/ — exactly one h1
  • /es/ — page title is set
  • /es/ — skip link reaches main
  • /es/about/ — lang attribute is set
  • /es/about/ — exactly one h1
  • /es/about/ — page title is set
  • /es/about/ — skip link reaches main
  • /es/schools/ — lang attribute is set
  • /es/schools/ — exactly one h1
  • /es/schools/ — page title is set
  • /es/schools/ — skip link reaches main
  • /es/site-workflow/ — lang attribute is set
  • /es/site-workflow/ — exactly one h1
  • /es/site-workflow/ — page title is set
  • /es/site-workflow/ — skip link reaches main
  • /es/audit-tools/ — lang attribute is set
  • /es/audit-tools/ — exactly one h1
  • /es/audit-tools/ — page title is set
  • /es/audit-tools/ — skip link reaches main
  • /es/audit-voiceover/ — lang attribute is set
  • /es/audit-voiceover/ — exactly one h1
  • /es/audit-voiceover/ — page title is set
  • /es/audit-voiceover/ — skip link reaches main
  • /es/audit-nvda/ — lang attribute is set
  • /es/audit-nvda/ — exactly one h1
  • /es/audit-nvda/ — page title is set
  • /es/audit-nvda/ — skip link reaches main
  • /es/audit-talkback/ — lang attribute is set
  • /es/audit-talkback/ — exactly one h1
  • /es/audit-talkback/ — page title is set
  • /es/audit-talkback/ — skip link reaches main
  • /es/model-card/ — lang attribute is set
  • /es/model-card/ — exactly one h1
  • /es/model-card/ — page title is set
  • /es/model-card/ — skip link reaches main
  • /es/who-this-helps/ — lang attribute is set
  • /es/who-this-helps/ — exactly one h1
  • /es/who-this-helps/ — page title is set
  • /es/who-this-helps/ — skip link reaches main
  • /es/typography/ — lang attribute is set
  • /es/typography/ — exactly one h1
  • /es/typography/ — page title is set
  • /es/typography/ — skip link reaches main
  • /es/accessibility-statement/ — lang attribute is set
  • /es/accessibility-statement/ — exactly one h1
  • /es/accessibility-statement/ — page title is set
  • /es/accessibility-statement/ — skip link reaches main
  • /es/ai-transparency/ — lang attribute is set
  • /es/ai-transparency/ — exactly one h1
  • /es/ai-transparency/ — page title is set
  • /es/ai-transparency/ — skip link reaches main
  • /es/a11y-audit/ — lang attribute is set
  • /es/a11y-audit/ — exactly one h1
  • /es/a11y-audit/ — page title is set
  • /es/a11y-audit/ — skip link reaches main
  • /es/security-audit/ — lang attribute is set
  • /es/security-audit/ — exactly one h1
  • /es/security-audit/ — page title is set
  • /es/security-audit/ — skip link reaches main
  • /es/privacy/ — lang attribute is set
  • /es/privacy/ — exactly one h1
  • /es/privacy/ — page title is set
  • /es/privacy/ — skip link reaches main
  • /es/reasonable-accommodations-neurodivergence/ — lang attribute is set
  • /es/reasonable-accommodations-neurodivergence/ — exactly one h1
  • /es/reasonable-accommodations-neurodivergence/ — page title is set
  • /es/reasonable-accommodations-neurodivergence/ — skip link reaches main
  • /es/audit-voiceover/report/ — lang attribute is set
  • /es/audit-voiceover/report/ — exactly one h1
  • /es/audit-voiceover/report/ — page title is set
  • /es/audit-voiceover/report/ — skip link reaches main
  • /es/reports/home-playwright/ — lang attribute is set
  • /es/reports/home-playwright/ — exactly one h1
  • /es/reports/home-playwright/ — page title is set
  • /es/reports/home-playwright/ — skip link reaches main
  • /es/reports/home-a11y-insights/ — lang attribute is set
  • /es/reports/home-a11y-insights/ — exactly one h1
  • /es/reports/home-a11y-insights/ — page title is set
  • /es/reports/home-a11y-insights/ — skip link reaches main
  • font and theme preferences survive reload — font preference persists across reload
  • font and theme preferences survive reload — theme preference persists across reload
  • font and theme preferences survive reload — invalid stored font value falls back to default without breaking render
  • font and theme preferences survive reload — invalid stored theme value falls back to default without breaking render
  • preferences survive navigation between English and Spanish routes — font preference set on / is applied on /es/
  • preferences survive navigation between English and Spanish routes — theme preference set on /es/ is applied on /
  • preference bootstrap script runs before hydration (structural, not timing-based) — bootstrap script is a synchronous inline script in <head>, guaranteeing it runs before <body> is parsed
  • search dialog — keyboard, focus, live region, result cap — Cmd/Ctrl+K opens and closes the dialog
  • search dialog — keyboard, focus, live region, result cap — "/" opens the dialog when focus is not in an input
  • search dialog — keyboard, focus, live region, result cap — Escape closes the dialog
  • search dialog — keyboard, focus, live region, result cap — opening the dialog moves focus to the search input
  • search dialog — keyboard, focus, live region, result cap — live region announces loading and ready states
  • search dialog — keyboard, focus, live region, result cap — results are capped at 8 even for a broad query
  • worker mode — a healthy page loads Pagefind via a real Worker (not main-thread fallback)
  • mobile search performance — search opens and returns results within a generous time budget on mobile emulation
Alfa (ACT-Rules)All pass
Routes audited
52
Passed
52
Engine
@siteimprove/alfa-playwright
Duration
47.8s

W3C ACT-Rules engine. Catches semantic-structure and focus issues that axe-core misses.

Accessibility InsightsAll pass
Pages assessed
8
Total criteria
184
Passed
184
Last assessed
2026-05-23

Resolved issues

  • link-in-text-block (SC 1.4.1) — Footer links were not underlined. Fix: text-decoration: underline on .site-footer a. Fixed 2026-05-23.
  • color-contrast (SC 1.4.3) — Design system swatch labels inherited a forced color override. Fixed 2026-05-23.
  • color-contrast (SC 1.4.3) — Focus swatch amber background was 4.23:1 (below 4.5:1 AA). Redesigned as outline ring. Fixed 2026-05-23.

Screen reader results

Manual screen-reader planEvery page will be manually exercised against WCAG 2.2 AAA with NVDA + Firefox (Windows), VoiceOver + Safari (macOS & iOS), and TalkBack + Chrome (Android). Results land in the table below as each pass completes.

Manual screen-reader audits against WCAG 2.2 AAA. NVDA + Firefox (Windows), VoiceOver + Safari (macOS/iOS), and TalkBack + Chrome (Android) are run per release.

Manual screen-reader audit results. Each row is one screen-reader pass against WCAG 2.2 AAA.
Screen readerPlatformDateChecksReportStatus
VoiceOvermacOS + Safari2026-05-2443/43View reportPass
NVDAWindows + FirefoxPendingPending
TalkBackAndroid + ChromePendingPending

Report a barrier

If you encounter an accessibility barrier not listed here, contact A11y Equitas via a11yequitas.org. We aim to respond within five business days.