Accessibility

Cognitive accessibility and why it's often harder than the technical stuff

Screen reader support and keyboard navigation have clear technical requirements. Cognitive accessibility doesn't, which is why it's easy to feel like you're doing it when you're not.

There's no automated checker for cognitive accessibility. No contrast ratio, no missing attribute, no keyboard trap. The WCAG success criteria that touch cognitive load are among the least specific in the spec: they describe problems without giving you a number to aim for. This makes them easy to address superficially and nearly impossible to verify by audit alone.

Which is part of why they're often the hardest accessibility problems to actually fix.

What cognitive accessibility covers

The term gets used loosely, so it's worth being concrete about what it means in product work. Cognitive accessibility concerns things that make an interface harder to use for people with conditions like ADHD, dyslexia, anxiety disorders, traumatic brain injury, or early cognitive decline. It also covers situations that affect anyone temporarily: stress, distraction, fatigue, or simply encountering an interface they've never seen before.

This is a much larger population than the one usually imagined under "disability." Nearly every accessibility failure in the cognitive category affects the majority of your users to some degree, which is what makes fixing these issues both high-value and politically easier to argue for.

The failure modes sort into a few categories: time pressure, memory load, error recovery, and language clarity. They rarely appear alone.

Time pressure

Timeouts are the most direct form of time pressure, and WCAG SC 2.2.1 (Timing Adjustable) addresses them: users should be able to turn off, adjust, or extend any time limit that's not essential. But the subtler time pressure comes from forms and flows that don't save state: a mortgage application that logs you out after 15 minutes and loses your progress, an insurance portal that starts the checkout flow over if you leave the tab, a checkout that doesn't preserve cart contents across sessions.

None of these violate a specific criterion explicitly, but each one is practically unusable for someone who takes longer to process information or navigate a form. The fix isn't always obvious (session persistence requires backend work, not just frontend attention), but the design decision to impose a timeout or clear state is exactly the kind of thing that should be questioned.

Animated content is a related case. Auto-playing carousels, updating feeds, and progress indicators that change without user action add background motion that competes for attention. For someone with ADHD, the competition is significant. WCAG requires a mechanism to pause, stop, or hide anything that auto-updates, but the more useful principle is to ask whether the auto-update is necessary at all.

Memory load

Working memory is limited and variable. Interfaces that require you to hold information from one step in order to complete another step are placing a memory burden on the user. A checkout that shows the cart on step one but doesn't repeat it on step three, and expects you to remember what you're buying when entering your shipping address. A form that validates on submit and shows "please fix the 3 errors above" without scrolling to them or repeating their content.

Multi-step flows are where this shows up most. Each screen in a wizard should contain everything the user needs to complete that screen. The previous step's decisions shouldn't exist only in the user's memory. Showing a persistent summary sidebar, repeating the selected plan name at the top of the payment screen, confirming the delivery address in the order review step: these are memory offload moves that reduce errors and frustration across the board.

Error recovery

WCAG SC 3.3.1 requires error identification, SC 3.3.2 suggests labels and instructions, and SC 3.3.3 offers error suggestions where possible. The technical bar is low: surface the error, associate it with the field, tell the user what's wrong.

Where products fail is in error message quality. "Invalid input" tells the user there's a problem; it doesn't tell them what kind. "Password must contain a number" tells them what the rule is but doesn't appear until after they've tried to submit, which means they were following rules they couldn't see. "Username already taken" is specific but common enough that it raises a privacy concern, since a third party can enumerate valid usernames.

The cognitive load of error recovery is compounded when the error message disappears after the user starts typing. They read the message, look down at the keyboard, and by the time they look back at the screen the message is gone. Inline validation that clears on focus rather than on correction is a design decision that makes error recovery harder, not easier.

Password requirements deserve specific attention. Revealing the full rules only on submission, then resetting the field on failure, places memory burden at exactly the moment when frustration is highest. Showing the requirements on focus, checking them off as they're met, preserving the entered value on validation failure: each of these is a small change with measurable impact on completion rates.

Language clarity

Plain language isn't just good UX writing. It's an accessibility requirement for users with reading difficulties, language processing differences, or limited English fluency. WCAG SC 3.1.5 suggests reading level, though it's a AAA criterion and doesn't specify a target level.

The practical standard most accessibility practitioners use is Flesch-Kincaid grade 8 or below for transactional text. Confirmations, error messages, form labels, instructions. Medical, legal, or financial content often can't meet this without a simplified summary. The summary is the accessibility feature; the full text exists for completeness.

Jargon is a specific problem in B2B and technical products. Navigation labels that use internal product names, help text that assumes familiarity with a domain, error codes with no plain description: these create walls that confident users navigate past without noticing, while users who need clarity hit them hard.

The harder part

All of this is harder than keyboard accessibility or screen reader support because there's no test you can run. You can tab through a component and verify focus order in 90 seconds. You can turn on VoiceOver and hear whether a label is wrong. Cognitive accessibility requires you to imagine a user completing a task under conditions different from your own, which is genuinely difficult.

User research with people who have cognitive disabilities helps. So does testing with people who are unfamiliar with your product, which surfaces memory load and clarity issues that familiarity hides from your regular testers. So does reading your own error messages out loud and asking whether they answer the user's actual question.

The fact that there's no automated check for this is also the reason it's still broken everywhere, including on products that have passed WCAG audits. Passing an audit is easier than being usable. The gap between those two things is largely cognitive.

Greg Sargent
Greg SargentDirector of Design Systems, Spring Health

I write about design systems, accessibility, and the way AI is changing how we build software.

Published February 2, 2026

Be the first to rate this article.