Accessible form checklist - SAMPLE reference =========================================== A checklist for reviewing a form, written against the fixtures in this catalog so every line can be tried on a real file. Fictional product, fictional wording; nothing here is legal advice. 1. NAMES [ ] Every control has an accessible name. labelling-explicit-for.html [ ] The name is not carried by a placeholder alone. labelling-placeholder-only.html (fails) [ ] A wrapping label is used consistently or not at all. labelling-wrapping-labels.html [ ] Referenced names resolve to elements that exist. broken-orphan-label-targets.html (fails) 2. GROUPS [ ] Radio and checkbox groups sit in a fieldset. required-constraint-matrix.html [ ] Every fieldset has a legend. fieldset-nested-groups.html [ ] Nested groups still read as one instruction. fieldset-nested-groups.html 3. DESCRIPTIONS AND ERRORS [ ] Help text is associated, not merely adjacent. labelling-aria-describedby.html [ ] Errors name the control and say how to fix it. aria-invalid-error-summary.html [ ] An error summary links to each failing control. aria-invalid-error-summary.html [ ] Invalid controls are marked, not only coloured. aria-invalid-error-summary.html 4. INPUT HELP [ ] Autofill tokens are present and correct. autocomplete-identity-tokens.html [ ] Touch keyboards are hinted where it helps. inputmode-keyboard-matrix.html [ ] Constraints stated in help text are enforced. password-policy-enrolment.html 5. STATE [ ] Read-only and disabled are used deliberately. readonly-disabled-state-matrix.html [ ] Conditional rules are announced when they change. conditional-required-form.html [ ] Progress through a multi-page form is stated. wizard-step-1-account.html 6. CONTENT [ ] Optional questions are marked optional. equal-opportunity-monitoring.html [ ] Consent is granular and never pre-ticked. granular-consent-form.html [ ] The form asks for nothing it does not need. accommodation-request.html