Skip to content

Accessible Modals: From dialog showModal() to Focus Traps

You built a modal. You press Tab, and the buttons in the background get focus. You press ESC, and nothing closes. A screen reader plows through the content without even saying “dialog.” And when you click the close button, focus vanishes into thin air. Anyone who builds modals runs into all four of these at some point. The name focus trap sounds great, but the problem is that the trap tends to get set in the wrong place. Let’s fix them one by one. ...

Published date: 2026-10-24 · Reading time: 27 min · Word count: 5686 words · Author: Isaac

Focus Management in SPAs: Keeping Screen Readers on Track After Route Changes

I’d been happily shipping a React SPA for a while when an accessibility audit came back with this note: “The page changed, but the screen reader said nothing.” The page transition animated smoothly, the URL updated, the content changed… but as far as a screen reader user was concerned, nothing happened at all. That’s the hidden trap of SPAs. Traditional Websites vs. SPAs What happens when you click a link on a traditional multi-page site? ...

Published date: 2026-09-15 · Reading time: 8 min · Word count: 3742 words · Author: Isaac

Keyboard Accessibility A to Z: Building Websites Everyone Can Use Without a Mouse

Introduction Have you ever tried using the internet without a mouse? Most people take their mouse for granted. But there are many people who can’t use one. People with physical disabilities who can’t operate a mouse People with repetitive strain injuries like carpal tunnel syndrome People with temporary arm injuries Power users who simply find keyboards more efficient For these users, the question “Can I use this site with just a keyboard?” is crucial. ...

맨 위로