Understandable · 3.3 Input Assistance

Redundant Entry WCAG 3.3.7 · Level A

Information the user has already entered or been given, and must enter again in the same process, must be auto-populated or available to select. Exceptions apply when re-entry is essential, is needed for security, or the earlier information is no longer valid.

Level
A
Since
WCAG 2.2
Principle
Understandable
Guideline
3.3 Input Assistance

Live demo

Enter a billing address

The same task, done two ways: switch between the version that passes and the one that fails, or put them side by side. Everything in the box is live, so try it with a keyboard, a pointer or a screen reader.

The delivery address is already filled in. Complete the billing address in each version and count how much you have to type.

Live example

Passes

Checkout

Delivery address

Billing address

What happened

    Why it passes

    One checkbox copies the delivery address into the billing fields. You check it and move on instead of typing the same address twice.

    Why it fails

    You gave this address a moment ago, but you must type it all again. For someone who types slowly or finds it hard to remember details, that is extra effort and a new chance for mistakes.

    Examples

    Code that fails, and the fix

    Five examples, each one running: the usual ways this criterion fails, and code that passes. Listen to them, measure them, or copy the code.

    01What changes 6 lines

    Fails

    Billing address typed a second time

    Live preview

    HTML
    <fieldset>  <legend>Billing address</legend>  <label for="billing-line1">Street address</label>  <input id="billing-line1" name="billing-line1" autocomplete="billing address-line1">  <label for="billing-city">Town or city</label>  <input id="billing-city" name="billing-city" autocomplete="billing address-level2">  <label for="billing-postcode">Postcode</label>  <input id="billing-postcode" name="billing-postcode" autocomplete="billing postal-code"></fieldset>

    The user typed this address for delivery one step earlier, but the form offers no way to reuse it, so they must enter it all again.

    Passes

    Option to reuse the delivery address

    Live preview

    HTML
    <p>Delivery address: 12 Park Road, Pune 411001</p><input type="checkbox" id="same-address" name="same-address" checked><label for="same-address">Billing address is the same as delivery address</label><fieldset id="billing-fields" hidden>  <legend>Billing address</legend>  <label for="billing-line1">Street address</label>  <input id="billing-line1" name="billing-line1" autocomplete="billing address-line1">  <label for="billing-postcode">Postcode</label>  <input id="billing-postcode" name="billing-postcode" autocomplete="billing postal-code"></fieldset>

    The checkbox is checked by default, so the address given one step earlier is reused. Clearing it shows empty billing fields for a different address.

    Passes

    Billing fields shown only when needed

    Live preview

    JavaScript
    const same = document.getElementById("same-address");const billing = document.getElementById("billing-fields");same.addEventListener("change", () => {  billing.hidden = same.checked;});

    The billing fields appear only when the user says the address is different, so nobody retypes an address they already gave.

    02What changes 2 lines

    Fails

    Reference number retyped from an earlier step

    Live preview

    HTML
    <p>Step 3 of 3: Upload documents</p><label for="app-ref">Application reference (shown on step 1)</label><input id="app-ref" name="app-ref"><label for="cv">Your CV</label><input id="cv" name="cv" type="file">

    The process already created and showed the reference, yet the user must remember it or copy it into this step.

    Passes

    Reference carried forward by the site

    Live preview

    HTML
    <p>Step 3 of 3: Upload documents</p><p>Application reference: <strong>JA-40217</strong></p><input type="hidden" name="app-ref" value="JA-40217"><label for="cv">Your CV</label><input id="cv" name="cv" type="file">

    The site fills in the reference itself and shows it for the user's records. Nothing given earlier in the process has to be entered again.

    Why it matters

    Who it helps

    People with cognitive or memory disabilities, and people with motor disabilities for whom typing is slow or painful, find repeated entry tiring and error-prone. Reusing earlier answers reduces effort and mistakes.

    W3C: Understanding 3.3.7
    • Level A

      Level A is the minimum: failing it can shut some people out completely.

    • In WCAG versions

      New in WCAG 2.2, published in October 2023.

      No WCAG 1.0 checkpoint maps to it.

    • Where it is required

      Required where the law names WCAG 2.2 or later at this level: the United Kingdom, Australia and New Zealand.

    How to test

    Checking it

    A few concrete steps. Automated tools find some failures; most need a person.

    1. Complete multi-step processes such as checkout, registration, or an application within a single session.
    2. Note any information asked for more than once, such as a shipping address requested again for billing.
    3. Confirm repeated information is filled in automatically or offered as a selectable option, unless an exception applies.

    Common failures

    Where it breaks

    • Checkout asks for a billing address with no option to reuse the shipping address already entered.
    • A multi-page application asks for the applicant's name and email again on a later step with nothing prefilled.
    • A later step requires retyping a reference number that the same process just displayed to the user.