WCAG accessibility audit for Next.js applications
Why Next.js causes accessibility issues
Next.js has become the reference React framework for high-performance web applications, but it introduces specific accessibility problems related to its hybrid SSR/CSR architecture. Hydration creates a moment where static HTML becomes interactive: during this transition, components are visible but not yet functional, which disorients assistive technology users. Next.js's Image component automatically optimizes images but does not force developers to provide relevant alt text — many leave empty alt on informative images. The Link component performs client-side navigations without screen reader announcements and without focus management on the new page. Dynamic routes and nested layouts complicate focus management between page segments. Server Components mix server and client rendering, making correct implementation of aria-live regions difficult. These problems are specific to Next.js and are not detected by static audit tools that do not execute JavaScript.
Common issues on Next.js
Hydration creating visible but non-interactive components
WCAG 4.1.2During the Next.js hydration phase, static HTML is displayed but event handlers are not yet attached. Buttons, links, and forms appear on screen but do not respond to clicks or keyboard. Assistive technologies announce these elements as interactive when they are not yet. This delay is particularly problematic on slow connections.
Image component without relevant alt text
WCAG 1.1.1The next/image component requires an alt attribute, but many developers fill it with an empty string or generic text ('image', 'photo') on informative images. Decorative images are rarely properly marked with empty alt. The component generates complex HTML (with wrappers) that can cause issues if alt is not correctly propagated to the final img tag.
Link component without focus management on navigation
WCAG 2.4.3The next/link component performs client-side navigation that changes content without page reload. Keyboard focus is not moved to the new content or to the top of the page. Screen readers do not announce the page change. The keyboard user remains focused on the link they just clicked, in content that has changed around them.
Nested layouts and focus context loss
WCAG 2.4.3Next.js's nested layout architecture (App Router) means that during navigation, only the relevant page segment is re-rendered. The parent layout stays in place but child content changes. Focus is not managed between these segments, and assistive technology users do not perceive which part of the page changed, especially in applications with sidebar + main content.
Test your Next.js site
Discover the WCAG non-conformities of your Next.js site in 5 minutes. Free, no commitment.
Run the free auditWhat Scrutia detects on Next.js
Scrutia loads your Next.js application in a real browser, waits for hydration to complete, then tests all interactions. Our engine detects non-interactive components during hydration, images without relevant alt, client navigations without announcements, and focus problems in nested layouts. We simulate complete user journeys including page navigation, form interaction, and dynamic component usage. Corrections are provided in JSX/TSX with recommended Next.js patterns.
Frequently Asked Questions — Next.js
Does Scrutia test SSG and SSR generated pages?
Do Next.js Server Components pose accessibility problems?
Does Scrutia detect next/image component problems?
Audit your Next.js site now
106 RGAA criteria tested in 5 minutes. Free score, full report with code fixes for €49.
Test my Next.js site