Redundant Entry WCAG 3.3.7: Form Auto-Population, Session Storage & Checkout A11y
Master WCAG 2.2 SC 3.3.7 Redundant Entry. Learn how to prevent cognitive fatigue and form abandonment with automatic data propagation and smart defaults.
Re-entering the same information across multiple steps of a form or checkout process causes cognitive fatigue, data entry errors, and form abandonment for users with cognitive disabilities, motor impairments, or memory challenges. WCAG 2.2 Success Criterion 3.3.7 (Redundant Entry - Level AA) mandates that information previously entered by the user in the same process must either be auto-populated or available for selection.
If a user enters their shipping address in Step 1 of a checkout funnel, you cannot force them to manually type that same address in Step 3 for billing. You must provide an option such as "Billing address same as shipping" or auto-fill the data.
Understanding WCAG 3.3.7 Redundant Entry
SC 3.3.7 applies to any multi-step sequence (such as insurance applications, mortgage quotes, SaaS onboarding, or e-commerce purchases) where previously entered data is required again.
Common Multi-Step Form Scenarios
| Use Case | Violation Pattern | Compliant Implementation |
|---|---|---|
| E-Commerce Checkout | Requiring user to re-type address for billing. | Checkbox: "Billing address is identical to shipping" (checked by default). |
| Job Application Portal | Asking for work email on Step 1, and again on Step 4 verification. | Auto-populate email field with option to edit. |
| Insurance Quote | Asking for primary driver name on initial page, then re-asking on vehicle page. | Pre-populate driver selection dropdown with previously entered names. |
The 4 Permitted Exceptions
WCAG 3.3.7 permits re-entry only under specific circumstances:
- Essential: When re-entering information is essential (e.g., confirming a new password).
- Security Verification: Re-authenticating identity during high-security transactions.
- Previously Invalid Data: The previously entered information was invalid or failed validation.
- Different Context: The information is required for an unrelated transaction or separate session.
Technical Implementation with Vanilla JS & SessionStorage
// Auto-populate billing from shipping
const sameAsShippingCheckbox = document.getElementById('sameAsShipping');
const shippingData = JSON.parse(sessionStorage.getItem('shippingAddress') || '{}');
sameAsShippingCheckbox.addEventListener('change', (e) => {
if (e.target.checked && shippingData.street) {
document.getElementById('billingStreet').value = shippingData.street;
document.getElementById('billingCity').value = shippingData.city;
document.getElementById('billingZip').value = shippingData.zip;
}
});
Audit & Verification Checklist
- Map Multi-Step Funnels: Trace every form field across your onboarding or checkout flows.
- Check for Repeated Fields: Identify any inputs (Name, Email, Address, Phone) requested more than once.
- Verify Auto-Fill Behavior: Confirm that selecting "Same as previous" fills fields immediately and notifies screen readers.
- Test Session Persistence: Ensure navigating back and forth across form steps retains user entries.
Audit Your Website for WCAG 2.2 Compliance Today
Scan your domain in 60 seconds with Rogabot and get instant PR-ready code diffs to prevent ADA lawsuit exposure.