form-control-label-quality

Form field labels should be descriptive and distinguishable

manualWCAG 2.4.6 (AA)confidence: mediumseverity: minoroperable

Flags a visible form-field label that is a placeholder ("Label", "Field"), or that repeats another field's label with no visible context (heading, legend, or row) telling the two apart.

Applies to. Visible form fields: native `input` (excluding hidden and the button-like types), `select`, `textarea`, or an element with one of the ARIA widget roles ACT cc0f0a lists (checkbox, combobox, listbox, menuitemcheckbox, menuitemradio, radio, searchbox, slider, spinbutton, switch, textbox) that carry a visible programmatic label: a `<label>` association, or the elements `aria-labelledby` points at. A field named only by `aria-label`/`title` has no visible label to judge and is out of scope here (its labelling mechanism is `form-control-programmatic-label-quality`'s concern, its presence `form-control-programmatic-label-present`'s).

Expectation. The visible label text (a) is not a placeholder left in the markup ("label", "field", "enter text", ...), (b) is not shared with another field that no visible context tells apart (the same "Name" twice, with nothing visible on screen saying which is shipping and which is billing), and (c) is the whole of the field's programmatic label, not the visible fragment of a label whose descriptive part is hidden.

Examples

can't tell
<label>Label <input type="text" name="f1"></label>

The label text is the placeholder word "Label" itself, not a real description of the field.

n/a
<label for="e">Email address:</label>
<input id="e" type="text">

The label text is a genuine, descriptive name for the field.

View source