Accessibility · Inclusive Design
Working Memory Limits as a Constraint on Form Structure
How chunking, recognition over recall, and progressive disclosure keep the number of simultaneously held items inside a plausible working memory budget, and where the chunking argument is misapplied.
A form is a memory task disguised as a data entry task. The user reads a value in one place, holds it while moving to another, and writes it down; or reads an instruction, navigates to the field it applies to, and applies it. Every one of those operations consumes working memory, and working memory is the scarcest resource in the interaction. It is also the one most often assumed to be unlimited, because the designer, who has just written the labels, already knows what they say.
The design constraint that follows is not “reduce the number of fields”. It is that the number of items the user must hold simultaneously, at any point in the task, must stay within a small budget, and that anything that can be recognized rather than recalled must be.
What the budget is
The familiar figure is seven plus or minus two, from Miller’s 1956 paper on channel capacity. Miller’s own framing is more careful than the popular citation: the limit applies to chunks, and a chunk is whatever the subject treats as a unit, which may be a single digit or a familiar word of arbitrary length. The number of chunks is bounded; the amount of information per chunk is not.
Later work revised the estimate downward. Cowan’s review of the short-term memory literature argues for a capacity of about four chunks in the absence of rehearsal or grouping, with the higher figures obtainable when items are rehearsed or when long-term memory supplies structure. Baddeley and Hitch’s working memory model separates the storage components from a central executive that allocates attention, which matters for interface design because it explains why a memory task performed while something else demands attention fails earlier than a memory task performed alone.
For design purposes the usable numbers are: assume a handful of items, not a dozen; assume that the effective capacity drops when the user is interrupted, anxious, in pain, using a screen reader at speed, or reading in a second language; and assume that any item the interface forces the user to hold is competing with everything else in the environment. The budget is not a target to fill. It is a ceiling to stay well below.
Chunking is a property of the user, not the string
The common misapplication of the number is to assume that chunking is a formatting operation: group a ten-digit number as 3-3-4 and it becomes three chunks instead of ten. That works because the grouping matches a structure the user already recognizes, such as a phone number’s area code convention. The grouping does not create the chunk; it cues a chunk the user already has.
The distinction matters because a grouping that does not match the user’s structure makes things worse. A date formatted as a run of digits with separators in an unfamiliar order is harder to hold than the same digits in an order the user expects, because the user must hold both the digits and the mapping. A reference code grouped in blocks that do not correspond to how it is spoken aloud imposes the same double cost.
The reliable technique is therefore not arbitrary grouping but correspondence: format the value the way it will be read, spoken, or transcribed. An identifier that will be read over the phone should be grouped to match speech, and it should avoid characters that are ambiguous when spoken. The constraint on the interface is that it must accept the value in the format the user produces, which is a validation constraint rather than a display one: a form that demands digits with no spaces rejects the very grouping that made the value memorable.
Recognition over recall, mechanically
The design principle “recognition rather than recall” is usually stated as a preference. It is better understood as a substitution: replace an operation that requires holding a value with an operation that requires matching a visible one.
Four mechanisms do this, and they differ in what they cost.
Persistent context. If the instruction, the reference number, or the selected item stays visible while the user acts on it, the user does not have to hold it. A checkout that shows the order summary on the payment step removes the need to remember what is being bought. The cost is screen space, and at narrow viewports the space is exactly what reflow constraints are already consuming, so the summary usually has to be collapsible rather than always expanded.
Selection over entry. Choosing from a list converts a recall task into a recognition task. It is not automatically better: a list of two hundred options is a scanning task, and scanning is its own cost. Selection is cheap when the option set is small and the labels are unambiguous, and it degrades as the set grows, which is the point at which a searchable control or a free-text field with validation becomes the better trade.
Prefill and carry-forward. If the interface already knows a value, showing it removes the memory task entirely. The constraint is that prefill must be visible and editable, because a prefilled value the user does not notice becomes a wrong value submitted with confidence.
Persistence across interruption. The most expensive memory failure is not forgetting a value, it is losing a half-completed task to an interruption. A form that restores its state on return converts a total loss into a resumption, and the mechanism is the same draft persistence that error recovery depends on.
<!-- The instruction stays associated with the field it governs, so the
user does not have to hold it while scrolling back. -->
<div class="field">
<label for="tax-id">Tax identifier</label>
<p id="tax-id-help" class="hint">
Eight digits, as printed on the certificate.
</p>
<input id="tax-id" name="taxId" inputmode="numeric"
aria-describedby="tax-id-help">
</div>
The aria-describedby association is doing double duty here: it makes the hint part of the field’s accessible description, so a screen reader user hears it on focus rather than having to navigate away and back. For a sighted user the hint is adjacent; for a screen reader user it is attached. Both remove the same memory load by different routes, which is the general pattern for constraints that have a visual and a non-visual implementation.
Progressive disclosure and its costs
Splitting a long form into steps is the standard response to cognitive load, and it is frequently correct. It reduces the number of items visible at once, gives the user a sense of progress, and allows validation to happen in smaller units. It also introduces costs that are easy to overlook.
The first cost is that a step boundary is a memory boundary. If step two requires a value from step one, the user must either remember it or navigate back. The mitigation is to carry the value forward visibly, which is why a review step that shows everything entered is not a courtesy but a structural requirement of a multi-step form. The review step converts a recall task into a recognition task at exactly the point where the accumulated state is largest.
The second cost is that the user loses the overview. A single long form tells the user how much work remains; a sequence of steps does not, unless the interface states the count and the position. A progress indicator with a step count is cheap and restores the overview, and its absence is a common defect in forms that were split for load reasons.
The third cost is navigability. Steps that can only be advanced and never revisited turn a correctable mistake into a restart. The constraint is that backward navigation must be available and must preserve entered values, which is again a state-persistence requirement rather than a layout one.
The fourth cost is that the split may not match the user’s mental model. A form split by database entity rather than by the user’s task forces the user to learn the system’s structure. Splitting by the question the user is answering (“who is this for”, “where does it go”, “how should it be paid”) keeps each step within one coherent unit, which is what a chunk is in the first place.
Where the cognitive-load argument goes wrong
Three misapplications recur.
Treating a low field count as the goal. A form with six fields that requires the user to look up a value from another document is heavier than a form with twelve fields that are all answerable from memory. The constraint is on held items, not on visible ones.
Using disclosure to hide obligations. Progressive disclosure that reveals a requirement late, such as a fee, an eligibility condition, or a document the user must obtain, does not reduce load; it defers it and adds the cost of a surprise. Requirements belong before the work they gate.
Assuming the user’s capacity matches the designer’s. A designer working on one form, with the labels in front of them, holds far more of it than a user encountering it once. This is the same asymmetry as designing for the tail of an ability distribution: the relevant capacity is the one at the low end, under interruption, in a second language, on a device with a small screen. Designing to that capacity produces a form that is comfortable for everyone, which is the reuse argument again, and the reason the constraint is worth enforcing at the component level rather than case by case.
The measurable form of the constraint is a per-step inventory: list what the user must hold at each point, count it, and remove or externalize until the count is small. That inventory is cheap to produce during design and nearly impossible to reconstruct after the form has shipped, which is the same timing argument that applies to every constraint in this cluster.
References
- The Magical Number Seven, Plus or Minus Two: Some Limits on Our Capacity for Processing Information — George A. Miller, Psychological Review, 1956
- The magical number 4 in short-term memory: A reconsideration of mental storage capacity — Nelson Cowan, Behavioral and Brain Sciences, 2001
- Working Memory — Alan Baddeley and Graham Hitch, in The Psychology of Learning and Motivation, 1974
- Cognitive Load During Problem Solving: Effects on Learning — John Sweller, Cognitive Science, 1988