Short Answer

A keyboard trap can block a visitor completely and still pass an automated scan. How to test for traps and manage focus in modals and menus.

The failure nobody on the team has ever experienced

Most people who build websites never put the mouse down. That is why keyboard failures survive so long.

A meaningful group of visitors navigates entirely by keyboard. People with motor disabilities. Screen reader users. People with repetitive strain injuries. Power users filling out long forms. For all of them, the Tab key is the site.

WCAG is direct about this. Success Criterion 2.1.1 asks that all functionality be available from a keyboard. Success Criterion 2.1.2 adds the rule that gives this article its name: if focus can move into a component, it must be able to move out.

A component that takes focus and never releases it is a keyboard trap. For the visitor, the page is over. They cannot reach the navigation, the form, or the checkout. Their only options are to reload or leave.

Where traps actually live

Traps almost never live in plain content. They live in the interactive layer, usually in third party or heavily scripted components.

Chat widgets are a frequent offender. The widget opens, captures focus, and offers no keyboard path back to the page.

Modal dialogs are the classic case in both directions. A modal that does not contain focus lets the visitor tab into the blurred page behind it, which is confusing. A modal that contains focus but has no keyboard reachable close button is a trap.

Embedded players, date pickers, carousels, and custom dropdowns round out the usual list. Each one replaced a native control with scripted behavior, and the keyboard handling is the part that got skipped.

Focus management is the other half of the problem

A site can be free of hard traps and still be miserable to navigate, because focus is going to the wrong places.

When a modal opens, focus should move into it. When the modal closes, focus should return to the element that opened it. If it instead drops back to the top of the page, the visitor has to retrace dozens of Tab presses to get back to where they were.

Focus order matters too. Success Criterion 2.4.3 asks that the tab sequence preserve meaning. A form where Tab jumps from the name field to the footer and back to the email field is technically reachable and practically unusable.

And the visitor has to be able to see where they are. Success Criterion 2.4.7 asks for a visible focus indicator. A surprising number of themes deliberately remove the focus outline because the designer found it ugly. That single CSS line blinds every keyboard user on the site.

Why your scan did not catch this

Automated scanners are honest about their limits here, and it is worth understanding them.

A scanner can detect missing focus styles in CSS, positive tabindex values that scramble the order, and some structural problems in dialogs. Those findings are real and worth fixing.

What a scanner cannot do is hold down the Tab key and get stuck. Traps are a runtime behavior that emerges from script, state, and timing. The chat widget only traps after it opens. The modal only misbehaves after the form error appears.

This is exactly why a serious audit pairs automated detection with manual verification, and why findings in a good report are labeled by how they were confirmed. The ADA audit overview explains how detected and verified findings differ.

The ten minute manual test

Anyone on the team can run this test today. No tools required.

Put the mouse out of reach. Load the most important page on the site. Press Tab repeatedly and watch.

Can you see, at every moment, which element has focus? Can you reach the navigation, open the menus, and operate every button and link? Can you get into the contact form, fill it, and submit it? If something opens, like a modal or a chat window, can you close it with Escape or a reachable button and land back where you were?

Then do the same on the money path. The quote form, the booking flow, the cart. A trap on a blog page is bad. A trap inside checkout is a closed door at the cash register.

Write down every place you got stuck or lost sight of focus. That list is a remediation plan in rough form.

Fixing what you find

Most keyboard fixes are small once located.

Restore the focus outline, or better, design an intentional one that fits the brand. Remove positive tabindex values and let the document order do its job. Use native buttons and links instead of clickable divs, since native elements bring keyboard behavior for free.

For modals, use the native dialog element or a well tested library rather than hand rolled focus logic. For third party widgets, test the keyboard path before the contract renews, and tell the vendor what fails. You cannot patch their code, but you can choose tools that respect your visitors.

A free scan flags the structural keyboard issues a machine can see in about a minute. For the deeper pass, the audit with code level fixes documents the interactive failures with the code context a developer needs to repair them.

None of this certifies legal compliance, and no honest provider claims otherwise. What keyboard work does is reopen the site to every visitor who navigates without a mouse, and it supports remediation toward WCAG 2.1 and 2.2 AA on the success criteria that matter most in daily use.

Want answers specific to your site?

A free scan takes 60 seconds. The sample report shows exactly what a paid audit artifact looks like before you buy.

Run Free Scan View Sample Report →