Tessli
  • A-04
  • Accessibility
  • Draft

Label every control

Give every control a visible label, groups a legend, and errors a link to their field.

Draft — not yet reviewed by a maintainer

Why it matters

Placeholders disappear as soon as people type and are not reliably announced. Visible labels, legends and linked errors tell everyone what a control is and what went wrong.

How to check it

Clicking a label focuses its control; groups have a legend; errors use aria-describedby.

The default it guards against

Placeholder-only inputs, a row of radio buttons with no group label, and one error banner at the top of the form.

Library items that apply it

Where it comes from

  • WCAG 2.2 SC 1.3.1 Info and Relationships (A)
  • WCAG 2.2 SC 3.3.2 Labels or Instructions (A)
  • docs/quality-gates.md (Accessibility: every field has a label; errors are connected to their controls)