Codectionary / Developer documentation / HTML

<label>

The <label> element defines a caption for a form control, improving both usability and accessibility. Clicking a label activates or focuses its associated input — useful for small targets like checkboxes and radio buttons. Labels can be associated with an input either by wrapping it, or by using a for attribute that matches the input's id.

Syntax

<label for="email">Email:</label>
<input type="email" id="email">

Examples

Label with for Attribute

Explicitly associating a label with an input using matching for/id.

<label for="username">Username:</label>
<input type="text" id="username" name="username">

Wrapped Label

Associating a label implicitly by wrapping the input inside it.

<label>
  Accept terms and conditions
  <input type="checkbox" name="terms">
</label>

Styled Label with Input

A label and input styled together as a form field.

<div style="display: flex; flex-direction: column; gap: 4px;">
  <label for="pw" style="font-weight: 600; font-size: 14px;">Password</label>
  <input type="password" id="pw" style="padding: 8px; border: 1px solid #d1d5db; border-radius: 6px;">
</div>

Attributes

  • for (string): The id of the form control this label describes

Best practices

  • Every form input should have an associated label — never rely on placeholder text alone
  • Prefer the explicit for/id association over wrapping, as it is more robust with custom-styled inputs
  • Keep label text short and descriptive of exactly what the field expects
  • Make sure the for value exactly matches the input's id, including capitalization

At a glance

Purpose
Structure and meaning for web content
File extension
.html · .htm
Runs in
Web browsers
Usually used with
CSS and JavaScript

Specifications & further reading

Related HTML documentation