DEMO-001 / fictional / not expert reviewed
Developer work order
Source: public/demo-before.html → public/demo-after.html. Owner: implementing agency (unassigned). Scope: one static product fixture, desktop viewport recorded in machine evidence, English. Severity below follows axe impact, not a legal risk assessment.
| ID / rule | Impact | Reproduce | Proposed change | Acceptance |
|---|---|---|---|---|
| D-001 / button-name | Critical | Locate the + button. Its accessible name is empty. | Add aria-label="Add canvas tote to demo bag" to the button. | Accessible name describes the action; re-run axe button-name. |
| D-002 / label | Critical | Locate quantity input; no programmatic label is connected. | Add <label for="quantity">Quantity</label>. | Input has accessible name Quantity; re-run axe label. |
| D-003 / image-alt | Critical | Locate the product illustration; alt attribute is absent. | Add alt="Illustration of the demo brand". | Alternative matches this fixture image; re-run axe image-alt. |
Handoff and retest
- Developer reviews the proposed text and context; changes only the agreed fixture or authorized theme branch.
- Run node --env-file-if-exists=.env scripts/agency-demo.js from the product directory.
- Compare the same rules, engine and viewport in /demo/evidence.json. Confirm all three expected defects existed before testing the fix.
- Human checks remaining: keyboard sequence, useful spoken names, content meaning and regression in actual store context.
No production deployment authorized. Rollback: restore the previous source revision. Human reviewer, reviewedAt and approval: not assigned / not performed.
Machine evidence