Skip to content

jsx_a11y/label-has-associated-control Correctness

What it does

Enforce that a label tag has a text label and an associated control.

Why is this bad?

A form label that either isn't properly associated with a form control (such as an <input>), or doesn't contain accessible text, hinders accessibility for users using assistive technologies such as screen readers. The user may not have enough information to understand the purpose of the form control.

Examples

Examples of incorrect code for this rule:

jsx
function Foo(props) {
    return <label {...props} />
}

<input type="text" />
<label>Surname</label>

Examples of correct code for this rule:

jsx
function Foo(props) {
  const { htmlFor, ...otherProps } = props;

  return <label htmlFor={htmlFor} {...otherProps} />;
}

<label>
  <input type="text" />
  Surname
</label>;

References

Released under the MIT License.