Common Accessibility Problems to Avoid
Explore web accessibility best practices, common pitfalls and practical solutions for building more inclusive websites.
Notes from spending a chunk of 2020 getting better at accessibility — the issues that came up repeatedly, and what to do about them.
Tools worth using
Two that earn their place:
- Google Lighthouse — the built-in Chrome audit. Good for a baseline accessibility pass alongside performance.
- Microsoft Accessibility Insights — browser extension with a fast pass and a much more thorough assessment organised by category (keyboard, focus, landmarks, and so on).
Automated tests aren't enough
Passing Lighthouse doesn't mean a page is accessible. On one slider we shipped, the images weren't wrapped in interactive elements, and aria-hidden="true" conflicted with focusable children inside. Lighthouse was happy. A keyboard user wasn't.
Manual testing catches what audits miss
Unplug the mouse. Tab through the page. The things to check:
- Is every interaction reachable and usable without a mouse?
- Is it always obvious which element is focused?
- Does the focus order follow the visual order?
A few rules that save time
Don't remove focus styles. Stripping :focus outlines takes away the only signal keyboard users have. Restyle, don't remove.
Trap focus in modals. When a dialog opens, focus should stay inside until it closes. David Clark's Focus Trap library handles this cleanly.
Avoid "click here" links. Screen readers read links out of context. Rewrite the link text, or use aria-label.
Use ARIA where semantics aren't enough. aria-label, aria-labelledby, and role fill in the gaps that HTML can't describe on its own.
The point
Automated tools plus keyboard and screen reader testing. Audits on their own don't prove a site is accessible.
More from The Journal
How we make Craft CMS page builders in 2026
Our go-to technique for making page builders in 2026.
Your Site in the Age of AI
How people are searching is changing. Learn how to optimize your website for AI-powered search engines like ChatGPT and Perplexity.
Launching Brave Movement
A global platform for the survivor-led movement working to end childhood sexual violence.