Skip to content
WANCODE
BM

Label Every Input

12 minBeginnerAccessibility

This sign-up form uses placeholders instead of labels. Placeholders vanish as soon as you type, are often too faint to read, and many screen readers don't announce them reliably. The radio buttons and checkbox have text next to them, but it isn't connected, so a screen reader just says "radio button, not checked".

Requirements

  • Every input and select has a visible <label> that is connected to it — with for/id, or by wrapping the control inside the label.
  • The two "Experience level" radios sit in a <fieldset> whose <legend> is the question.
  • Clicking the words "I agree to the club rules" ticks the checkbox (that's how you know they're connected — and it gives a bigger click target).

Give every form control a visible, connected <label> (placeholders don't count), group the two radio buttons in a <fieldset> with a <legend>, and make clicking "I agree…" tick the checkbox.

Checks

  • Every control has a connected label
  • Labels are visible on screen
  • Radios are grouped in a fieldset with a legend
  • Clicking the agreement text ticks the checkbox
Preview

Console output from your code appears here.

Step 1 of 1