Accessibility Standards Compliance Checklist

Audit Scope and Tooling

    Most B2B SaaS targets WCAG 2.1 AA; public-sector and EU Accessibility Act contracts may require 2.2 AA. Document the target in the audit ticket so reviewers know which success criteria apply.

    List the user flows under review — sign-up, checkout, dashboard, settings, any flow behind a paywall — plus shared components (modal, datepicker, toast). Auditing the whole app is a common gotcha; pick representative pages and reusable components.

    Use axe DevTools or @axe-core/playwright in CI plus Lighthouse accessibility audit. Automated tools catch ~30% of issues — they are the floor, not the ceiling. Export the JSON report and attach it for the remediation backlog.

Perceivable

    Every <img> needs a meaningful alt; decorative images get alt="". SVG icons used as buttons need aria-label. Charts and complex graphics need a long description or data table fallback.

    Pre-recorded video needs captions (1.2.2) and audio description (1.2.5). Auto-generated YouTube captions do not meet AA — they need human review. Live audio needs captions at AA only if the audio is the primary content.

    Body text needs 4.5:1, large text (18pt+ or 14pt bold) needs 3:1, UI components and graphics need 3:1 (1.4.11). Disabled controls are exempt. Use Stark, Polypane, or the browser DevTools contrast checker — design-system tokens often fail in dark mode even when light mode passes.

    1.4.10 Reflow requires no horizontal scrolling at 320px width or 400% zoom. Common failures: data tables, pricing grids, fixed-width modals. Test by zooming a 1280px browser to 400% rather than only resizing.

Operable

    Unplug the mouse. Tab through sign-up, checkout, and the primary dashboard. Watch for keyboard traps in custom modals and datepickers, missing focus rings on custom buttons, and Tab order that doesn't match visual order. Skip-to-main-content link should appear on first Tab.

    2.4.7 requires a visible focus indicator on every interactive element. The most common regression is a designer setting outline: none without replacing it. Required contrast against the adjacent background is 3:1 (2.4.11 in WCAG 2.2).

    2.2.1 requires user warning + extension option for any timeout under 20 hours. Auth session expiry, idle logout, and OTP timers are the usual offenders. Confirm the warning is announced to screen readers and dismissable from the keyboard.

    No content flashes more than 3 times per second (2.3.1). Honor prefers-reduced-motion for parallax, auto-playing carousels, and animated transitions. Loading spinners and confetti animations are common reduced-motion misses.

Understandable

    <html lang="en"> on every page (3.1.1); inline language changes need lang on the element (3.1.2). Marketing pages often render localized content without setting the attribute, which breaks screen-reader pronunciation.

    3.2.3 and 3.2.4 require nav, search, and identifying icons to be in the same place and labeled the same way across the site. Recently-shipped redesigns of single sections often violate this without anyone noticing.

    3.3.1 and 3.3.3 require errors to be identified in text (not color alone) and offer correction guidance. Each input needs a programmatic <label>, error messages need aria-describedby linking the field, and the error region should be a live region or receive focus on submit.

Robust and Assistive Technology Testing

    Prefer native elements (<button>, <a>, <nav>) over <div role="button">. ARIA roles must match expected children — role="tablist" needs role="tab" children. First rule of ARIA: don't use ARIA when a native element will do.

    NVDA + Firefox on Windows, VoiceOver + Safari on macOS, JAWS + Chrome covers ~90% of real users. Walk the same primary flow on each and listen for unannounced state changes (toast notifications, loading spinners, route transitions). Save recordings if findings are subtle.

    Triage with the product owner: AA-blocking issues that affect a primary flow (sign-up, checkout, core task) gate the release. AA findings on secondary flows go on the backlog with target dates. AAA findings are tracked but don't block.

Remediation and Sign-Off

    Each ticket cites the success criterion (e.g., 1.4.3 Contrast Minimum), the affected component, and reproduction steps. Group fixes by component owner — fixing the shared Button component closes a dozen tickets at once.

    Run the automated scan again and manually re-verify each blocking finding. A common regression: a contrast fix in light mode breaks dark mode, or an ARIA fix breaks the keyboard interaction.

    If the team publishes a VPAT (ACR) or accessibility statement, update the conformance notes for any criteria whose status changed. Sales and procurement teams pull the latest VPAT for RFPs — stale documents lose deals.