Every accessibility conversation eventually reaches the same disappointing number. Automated tooling detects somewhere in the region of a quarter to a third of WCAG issues. The European Commission has been explicit that no automated tool covers all of WCAG 2.1 AA.
That number gets used as an argument for hiring a specialist, and sometimes that is right. But the gap between what a scanner finds and what a person finds is not mostly expert territory. It is mostly a keyboard and thirty minutes.
Here is the pass I run. It is designed to be done by a developer who is not an accessibility specialist, on a schedule, without special software.
Before you start: pick one flow
Not the site. One flow, the one that carries the money or the obligation. On a storefront that is category to product to cart to checkout. On a SaaS product it is signup and the first successful action. On a content site it is search to article.
Testing one flow properly every release beats testing the whole site once a year, because the whole site audit produces a hundred page PDF that nobody opens and the flow test produces four tickets that get fixed.
Pass 1: Keyboard only, ten minutes
Physically unplug the mouse or push it out of reach. This matters more than it sounds, because with a mouse present you will unconsciously use it to recover and never notice the trap.
Walk the flow using Tab, Shift Tab, Enter, Space, and the arrow keys. Record a failure whenever any of the following happens.
- You cannot reach a control. Custom dropdowns, carousels, and anything built from divs are the usual suspects.
- You reach it but cannot activate it. Enter and Space both need to work on anything that behaves like a button.
- You cannot get back out. Modals, date pickers, and embedded iframes are where focus goes to die. Escape should close anything modal.
- Focus order stops matching the visual order. Usually a CSS order or grid placement that reordered the page without reordering the DOM.
- You lose track of where you are. If you cannot see the focus indicator, that is a failure on its own, not a note about styling.
- Focus is not moved or restored around dialogs. Opening should move focus in, closing should return it to the trigger.
Also check the skip link. Load the page, press Tab once. The first focusable thing should be a visible skip to content link. On most sites the first Tab lands somewhere in a cookie banner instead, which brings us to the next check.
Pass 2: The cookie banner, one minute
It deserves its own step because it is the first thing every user meets and it is almost always third party code nobody tested.
Can you reach it by keyboard, can you accept and reject it by keyboard, and does focus land inside it when it appears? If a banner blocks the page visually but sits outside the focus order, keyboard users are locked out of the entire site before they see a single product.
Pass 3: Zoom and reflow, five minutes
Two separate checks that people collapse into one.
Reflow. Set the browser to 400 percent zoom at a 1280 pixel width. Content should reflow into a single column with no horizontal scrolling. If you have to scroll sideways to read a sentence, that fails.
Text spacing. Apply increased line height, letter spacing, word spacing and paragraph spacing, and confirm nothing gets clipped or overlaps. Fixed height containers around text are the usual cause. This is a real criterion and it is failed constantly by cards with a hardcoded height.
/* paste into devtools to simulate the text spacing criterion */
* {
line-height: 1.5 !important;
letter-spacing: 0.12em !important;
word-spacing: 0.16em !important;
}
p { margin-bottom: 2em !important; }
Pass 4: Screen reader, ten minutes
The part people avoid. You do not need fluency, you need five commands and a willingness to feel clumsy for a week.
Use NVDA on Windows or VoiceOver on macOS. Both are free and one of them is already on your machine. Turn it on, close your eyes for portions of it, and check four things.
- Headings make an outline. Pull up the headings list. It should read like a table of contents, not like a random sample of the page.
- Links make sense out of context. Pull up the links list. Six entries reading read more tell you nothing.
- Form fields announce their purpose and their error state, and errors are announced when they appear rather than only rendered in red.
- Dynamic changes are announced. Add something to the cart, apply a filter, load more results. Silence here is the most common finding in the entire pass.
One warning worth internalising: your first screen reader session will feel like the software is broken. It is not. That disorientation is roughly what your users experience on an unstructured page, which is the actual lesson of the exercise.
Pass 5: Motion and preferences, two minutes
Turn on reduce motion at the OS level and reload. Parallax, autoplaying carousels, and animated page transitions should quiet down. Any animation that plays for more than five seconds without a pause control is a separate failure regardless of the preference.
While you are there, switch the OS to dark mode and to forced colours if you support Windows high contrast. Content that vanishes in either mode is usually text baked into a background image.
Recording it so it counts
A pass nobody wrote down did not happen, from a compliance perspective and from a memory perspective. Keep it light: date, who ran it, which flow, which browser and assistive technology, and one line per finding with a severity.
Two things follow from having that record. It becomes the evidence base for your accessibility statement, which then describes real findings instead of aspirations. And it gives you a trend line, so you can tell whether the last quarter of work improved anything or just moved the failures around.
Where automation still belongs
None of this replaces the scanner. Put axe-core in CI and fail the build on new violations. It catches the mechanical failures instantly and for free, which frees your thirty minutes for the things only a person can find.
The division is clean. Automation guards the floor. The manual pass finds the barriers. Anyone selling you one as a substitute for the other is selling you something else.
I run this pass on ecommerce and SaaS frontends and hand back a prioritised fix list, not a PDF nobody opens. Write to me at serbeldiaz@gmail.com.

No responses yet