A11y Remedy / Agency desk

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.

Three grouped findings and acceptance criteria
ID / ruleImpactReproduceProposed changeAcceptance
D-001 / button-nameCriticalLocate 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 / labelCriticalLocate 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-altCriticalLocate 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

  1. Developer reviews the proposed text and context; changes only the agreed fixture or authorized theme branch.
  2. Run node --env-file-if-exists=.env scripts/agency-demo.js from the product directory.
  3. Compare the same rules, engine and viewport in /demo/evidence.json. Confirm all three expected defects existed before testing the fix.
  4. 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