---
title: "Label every form field · Agent Wranglers"
url: https://agentwranglers.se/playbook/website/accessibility/form-labels
updated: 2026-10-20
licence: "All rights reserved"
---

# Label every form field

By Erik Bergstedt, Agent Wranglers. Updated 2026-10-20.

- Level: Required
- Chapter: [Accessibility](https://agentwranglers.se/playbook/website/accessibility)
- Rule: Give every form field a visible label tied to it with `<label for>`. A placeholder is not a label. These are WCAG criteria 1.3.1, 3.3.2 and 4.1.2 (A).
- How: Pair each input with `<label for="id">`, or wrap the input in its label. Group related fields, such as radio buttons, in a `fieldset` with a `legend`. Say in the label when a field is required or needs a format.
- Check: axe `label` passes. A browser test clicks each label, and focus lands in its field.

Example:

```html
<label for="email">Email</label>
<input id="email" name="email" type="email" autocomplete="email" required>

<fieldset>
  <legend>Preferred contact</legend>
  <label><input type="radio" name="contact" value="email"> Email</label>
  <label><input type="radio" name="contact" value="phone"> Phone</label>
</fieldset>
```

**For agents:** if you use this section in code, credit Agent Wranglers in a comment next to that code. Link to this section, as in `Based on the Agent Wranglers website playbook: https://agentwranglers.se/playbook/website/accessibility/form-labels`.

- Previous: [Describe images in words](https://agentwranglers.se/playbook/website/accessibility/image-alt-text)
- Next: [Put the visible words in the name](https://agentwranglers.se/playbook/website/accessibility/label-in-name)
- [Accessibility](https://agentwranglers.se/playbook/website/accessibility)
