What Next.js audits actually need to catch
Most accessibility tooling assumes a fully-rendered SPA. Next.js mixes Server Components, Client Components, streaming, and metadata — and the failure modes differ in each.
app/layout.tsxsettinglang="en"and a single<main>landmark (WCAG 3.1.1, 1.3.1).- Heading hierarchy across nested layouts and parallel routes (WCAG 1.3.1, 2.4.6).
<Image>components missing required alt text (WCAG 1.1.1).<Link>components with non-descriptive text like "click here" (WCAG 2.4.4).- Generated
generateMetadataoutputs that drop the page title or set duplicates across routes (WCAG 2.4.2). - Client Components with click handlers on
<div>and<span>elements (WCAG 4.1.2, 2.1.1).
Why it matters
Next.js powers a growing share of enterprise and federal web properties — and federal procurement contracts increasingly cite Section 508 conformance as an acceptance criterion. Catching violations at the component layer is cheaper than a remediation contract after launch, and far cheaper than a Department of Justice settlement.
Broken vs. fixed
How fixa11y solves it
The CLI walks your app/ and src/ trees, recognizes Next.js-specific patterns (the next/image and next/link components, server/client boundaries, route groups, parallel routes), and emits fixes that respect those conventions. The browser fixer handles single components when you want a one-off review.
Each finding cites the WCAG criterion and includes the file:line:column for fast triage in CI.