---
title: "Cognitive accessibility"
description: "Reducing load, removing time limits and making every error recoverable is the accessibility work that matters most in health and is measured least."
url: "https://opsinjs.pensievelabs.org/accessibility/cognitive-accessibility"
source: "https://opsinjs.pensievelabs.org/accessibility/cognitive-accessibility.md"
section: "Accessibility"
kind: "accessibility"
reviewed: "2026-09-02"
reviewer: "content"
aliases: ["3.2.4", "time limits", "memory load", "easy read"]
---

> Elements written as `<PascalCase … />` below are opsinjs documentation
> components. Their attributes are the content: the values they render are
> generated from `tokens/*.json` and `registry/catalogue.ts` and are
> published separately at https://opsinjs.pensievelabs.org/r/index.json and under the Reference
> section.
> Nothing is missing from this page. The data simply does not live in
> the prose.

<PageTemplate kind="accessibility" />

## What we guarantee [#what-we-guarantee]

Cognitive accessibility is the area where a design system can do the most and
claim the least, because almost none of it is mechanically testable. What opsinjs
commits to:

* **One decision per screen, and the decision is stated.** The screen
  specifications in this system are built around a single question, and the
  primary action names its own outcome rather than saying "Continue". See
  [Screens](../screens/index.mdx).
* **Consistent placement and consistent words.** The same action is in the same
  place with the same label across every pattern. SC 3.2.3 and SC 3.2.4 are
  minima; the working rule here is that a reader should never have to re-learn a
  screen they saw last week.
* **A published plain-language vocabulary.** The clinical-to-plain mapping is
  canonical and machine-readable, so the same word is used everywhere. See
  [Plain-English A to Z](../content/plain-english-a-z.mdx).
* **No component introduces a time limit.** Nothing in the roster expires,
  auto-advances or auto-dismisses. Where a real time limit exists in your
  product, that is a product decision and SC 2.2.1 applies to it.
* **No component requires recall.** Anything a reader has to remember from a
  previous step is redisplayed. SC 3.3.7 Redundant Entry is treated as a floor,
  not a target.
* **Errors are recoverable and non-punitive.** The error copy rules forbid blame
  and require a route forward. See
  [Error and empty messages](../content/error-and-empty-messages.mdx).

<ResearchNote evidence="opinion" date="2026-09-02">
  Everything on this page is **our design opinion**, informed by general practice
  in public-sector service design rather than by a study we can point you at. We
  have deliberately not attached a citation to any of it. Cognitive accessibility
  in consumer health is under-researched relative to its importance, and a
  fabricated reference here would do more damage than an honest absence.
</ResearchNote>

## What you own [#what-you-own]

**The quantity of information on a screen.** Nothing prevents you from putting
twelve metric tiles above the fold. The system supplies the tile; the editorial
judgement about how many a worried person can absorb is yours.

**The reading load at the worst moment.** A reader opening a result they have
been anxious about has less working memory available than the same reader
browsing yesterday. Put the answer first, the explanation second and the
methodology last. Never put them in the reverse order. See
[Result disclosure](../patterns/result-disclosure.mdx).

**Numbers that need translating.** A percentage is a cognitive burden dressed as
information. Natural frequencies, absolute rather than relative change, and a
plain sentence beside the figure are all product decisions. See
[Risk and statistics](../health/risk-and-statistics.mdx).

**Session and authentication demands.** Repeated re-authentication, short
sessions and puzzle-based challenges are all cognitive barriers; SC 3.3.8 exists
because of the last one.

**Interruptions.** Every notification, tooltip, tour step and upsell competes with
the task. In a health app the task may be "work out whether to call someone".

## How to check [#how-to-check]

<Steps>
  ### Count the decisions [#count-the-decisions]

  List every choice the screen asks the reader to make, including implicit ones
  ("which of these numbers is the important one?"). &#x2A;*Expected result:** one, or a
  clear primary with the rest subordinate. **Failure looks like** four equally
  weighted buttons.

  ### Read it after a distraction [#read-it-after-a-distraction]

  Read the screen, leave for two minutes, come back and try to continue without
  re-reading. Anything you had to remember is a defect: it should have been on
  screen.

  ### Say what happens next [#say-what-happens-next]

  Cover everything but the primary action and ask somebody what tapping it will do.
  If they cannot say, the label is wrong. "Continue" almost always fails this.

  ### Break it on purpose [#break-it-on-purpose]

  Enter something invalid, lose the network, submit twice, go back mid-flow.
  &#x2A;*Expected result:** the reader's input survives, the message says what happened
  and what to do, and no data is silently lost. **Failure looks like** a cleared
  form.

  ### Read it aloud to somebody outside the team [#read-it-aloud-to-somebody-outside-the-team]

  The single highest-yield check on this page, and the least reproducible. If they
  cannot tell you what they should do next, nothing else you measured matters.
</Steps>

## Measured results [#measured-results]

<NoDataYet script="scripts/check-freshness.mts" />

There is no measurement. Reading level can be approximated per page, and
[Reading level](../content/reading-level.mdx) explains how. But comprehension,
recall and decision load cannot be measured from a codebase, and we would rather
leave this section empty than dress a readability score up as a
cognitive-accessibility result.

## Known gaps [#known-gaps]

* **No user research has been conducted** for any guidance on this page.
* **There is no easy-read or symbol-supported variant** of anything in this
  system, and we have no plan for one.
* **Nothing here is enforceable.** Every other page in this pillar has a check
  that either passes or fails; this one has judgement.
* **Guidance for readers with fluctuating capacity** is absent, even though
  fluctuating capacity is common in exactly the long-term conditions this
  system targets.

## Updates to this page [#updates-to-this-page]

<Reviewed />
