Accessibility Guide

Gatsby Accessibility Guide

Gatsby's static site generation gives it a strong accessibility baseline — content is available in HTML before JavaScript loads. But Gatsby's client-side routing, plugin ecosystem, and image optimization can introduce accessibility gaps if not configured properly.

Common Gatsby accessibility issues

gatsby-image/gatsby-plugin-image missing alt text

Gatsby's image components optimize performance but developers often skip the alt attribute or pass empty strings.

serious

Client-side routing without page announcements

Gatsby uses @reach/router which has basic accessibility support, but route changes may still not be announced in all screen readers.

serious

Third-party plugins injecting inaccessible markup

Gatsby plugins for analytics, chat widgets, and marketing tools can inject HTML that breaks accessibility.

moderate

MDX content without semantic structure

Blog content written in MDX can skip heading levels or use custom components that lack ARIA attributes.

moderate

Focus management on page transitions

After a client-side navigation, focus may remain on the previous page's element instead of moving to the new content.

serious

How to fix Gatsby accessibility

Always provide meaningful alt text to gatsby-plugin-image's GatsbyImage component

Use gatsby-plugin-a11y during development — it highlights accessibility violations on screen

Add a skip link component in your layout that targets #main-content

Set focus to the main content area after route changes using Gatsby's onRouteUpdate API

Audit third-party plugins by checking their rendered HTML with axe DevTools

Scan your Gatsby site now

Get a full WCAG 2.2 compliance report with every violation, affected elements, and fix instructions — delivered as a professional PDF in 60 seconds.