3.3.4 Error Prevention (Legal, Financial, Data)
What it requires
For pages that create legal commitments or financial transactions, that modify or delete user-controllable data in a data-storage system, or that submit test responses, the user must be able to avoid serious mistakes. At least one of the following must be true:
- Reversible — the submission can be undone.
- Checked — data is checked for input errors and the user can correct them.
- Confirmed — a final step lets the user review, confirm, and correct the information before submitting.
This is about preventing irreversible harm — a duplicated payment, a cancelled booking, a deleted record — not about routine forms.
Everyone benefits, but failures hit hardest for:
- People with cognitive or learning disabilities, who are most likely to make and least able to recover from an accidental submission.
- People with motor disabilities, who may trigger a control unintentionally.
- Screen-reader and low-vision users, who can miss a one-way action that gives no chance to review.
How to detect it
| Check | What to look for |
|---|---|
| Manual review | Identify pages with legal, financial, data-change, or test-submission actions. Confirm at least one of reversible / checked / confirmed is present. |
| Keyboard | Reach the confirm and cancel/edit controls by keyboard; ensure the review step is operable without a mouse. |
| Screen reader | Verify the review/confirmation content is announced and that the user can navigate back to correct fields. |
| Zoom / reflow | At 200% and 400% the confirmation summary and its buttons remain visible and usable. |
| Automated tools | Cannot detect this — axe and similar tools have no way to judge whether an action is reversible or confirmed. Always tested by a human. |
How to fix it
- Map every action that commits a legal, financial, data, or test submission.
- For each, provide at least one safeguard: make it reversible, validate and let users correct input, or add a final review-and-confirm step.
- Prefer an explicit confirmation page that summarises what will happen and offers Back/Edit alongside Confirm.
- Make all confirmation controls keyboard operable and announced to assistive technology.
<section aria-labelledby="confirm-h">
<h2 id="confirm-h">Confirm your order</h2>
<dl>
<dt>Total</dt><dd>$149.00</dd>
<dt>Ship to</dt><dd>12 Main St</dd>
</dl>
<a href="/cart/edit">Edit</a>
<button type="submit">Confirm and pay</button>
</section>
Copy-paste tests
Automated coverage
There is no fully automated axe-core rule for 3.3.4 Error Prevention (Legal, Financial, Data). It requires manual review: use the console check and steps below to locate consequential submissions, then judge them by hand.
Run this in the browser console
// Read-only: surfaces forms whose submit may be legal/financial/data-deleting.
const rx = /(pay|purchase|buy|order|checkout|submit|confirm|agree|delete|remove|cancel|transfer|book|sign)/i;
const hits = [...document.querySelectorAll('form')].filter(f =>
rx.test(f.textContent) || [...f.querySelectorAll('button,input[type=submit]')]
.some(b => rx.test(b.value || b.textContent)));
console.table(hits.map(f => ({ action: f.action, fields: f.elements.length, text: f.textContent.trim().slice(0,60) })));
hits.forEach(f => f.style.outline = '2px solid orange'); // visual only, not submitted
What to check manually: for each highlighted form, confirm the action is reversible, or that the user can review/correct data, or gets a confirmation step before it commits. No script can tell whether a submission is legally binding or deletes real data.
Related
- WCAG 2.2 criteria index
- Learn catalog
- Accessible forms — validation, errors, and confirmation flows.