Form elements should have a visible label

WCAG
Reference unavailable

Accessibility isn’t only about avoiding violations — it’s about ensuring your product can be used confidently by everyone. This guide explains the principle of this rule, shows what goes wrong in real-world code, and provides a verified fix that meets WCAG and the European Accessibility Act (EAA).

Why this matters and how to fix it

Why this matters

Form controls need clear, programmatic labels so assistive technologies can announce purpose and instructions.

How to fix this issue

Associate controls with a visible label (`<label for>`/`id`) or provide `aria-label`/`aria-labelledby`.

Automated detection · Manual review recommended

Developer guidance

Enforce these rules in your component library and CI (eslint, jsx-a11y, jest-axe). Validate with keyboard-only and screen reader tests.


Code examples

Incorrect Implementation

<input id="email">

Correct Implementation

<label for="email">Email</label><input id="email">
eu icon getwcag

Trusted by organizations across Europe working toward WCAG and EAA conformance