What it asks for, in plain English
When a form does something with consequences, such as paying money, signing an agreement, placing an order, or changing or deleting the person's stored data, at least one of three safeguards is needed: the action can be reversed; the data is checked for errors and the person gets a chance to correct them; or the person reviews and confirms everything before it goes through.
A review page before Place order meets it. So does a cancellation window, an undo link after deleting a record, or a confirmation dialog that shows what is about to happen. A single Submit at the bottom of a long payment form with no review and no way back does not.
It covers the kinds of mistake that are expensive or hard to put right. A newsletter signup or a comment form is not in scope, though the same patterns are kind there too.
This is an independent explanation. The binding wording is the W3C Recommendation, and the W3C's own Understanding 3.3.4 page has the full intent, techniques and definitions.
Who it affects
A person with a cognitive disability or attention difficulties types one digit wrong in a quantity and, with no review step, orders ten times what they meant to.
Someone with a motor impairment hits Delete instead of Edit on a dense list and loses a year of records if there is no undo.
A screen reader user fills in a long checkout without seeing the whole page at once and needs a summary to confirm the pieces add up before paying.
Example
The person meant 2, not 20. One press and twenty rosemary plants are on their way, with no review and no cancel.
A review step with a Change link beside each value, and a cancellation window as a second safety net.
Show the markup behind both examples
<style>body{margin:0;padding:16px;font-family:system-ui;font-size:14px}label{display:block;font-weight:600;margin-bottom:2px}input{font:inherit;display:block;padding:6px 8px;border:1px solid #9ca3af;border-radius:4px;width:220px;margin-bottom:10px}button{font:inherit;padding:8px 14px;background:#1d4ed8;color:#fff;border:0;border-radius:4px}</style>
<form>
<label for="qty">Quantity</label>
<input id="qty" value="20">
<label for="addr">Delivery address</label>
<input id="addr" value="14 Elm Road, Leeds">
<button type="button">Place order</button>
</form>
<style>body{margin:0;padding:16px;font-family:system-ui;font-size:14px}h2{font-size:16px;margin:0 0 10px}dl{display:grid;grid-template-columns:auto 1fr auto;gap:6px 14px;margin:0 0 14px}dt{font-weight:600}dd{margin:0}dl a{color:#1d4ed8}button{font:inherit;padding:8px 14px;background:#1d4ed8;color:#fff;border:0;border-radius:4px}p{margin:0 0 12px;color:#4b5563}</style>
<h2>Check your order</h2>
<dl>
<dt>Item</dt><dd>Rosemary plant</dd><dd></dd>
<dt>Quantity</dt><dd>20</dd><dd><a href="#">Change</a></dd>
<dt>Delivery</dt><dd>14 Elm Road, Leeds</dd><dd><a href="#">Change</a></dd>
</dl>
<p>You can cancel within an hour of ordering from your account page.</p>
<button type="button">Confirm order</button>
How to check it
- Find every action that spends money, signs something, places an order, or deletes or changes saved data.
- For each one, check there is a review step, an undo or cancel window, or a confirmation that shows the details.
- Try to make a mistake (wrong quantity, wrong delivery address) and see whether you can catch it before it goes through.
- Check the confirmation is clear about what will happen; "Are you sure?" on its own is weak.
What Websight checks for 3.3.4
Websight has no automated check for this criterion. It lists it in the manual checklist that comes with every report, so it is not forgotten.
Only a person can check this, because it depends on how the whole process behaves across several pages. Websight lists it in its manual checklist.
Practical tips
- Add a review page before any payment or submission; it also cuts support tickets.
- Prefer a soft delete with an undo link over a frightening confirmation dialog.
- Validate as people go, but let them correct things before the final step.
Other criteria in guideline 3.3, Input Assistance
- 3.3.1 Error Identification (level A)
- 3.3.2 Labels or Instructions (level A)
- 3.3.3 Error Suggestion (level AA)
- 3.3.7 Redundant Entry (level A)
- 3.3.8 Accessible Authentication (Minimum) (level AA)