HTML for Attribute

The for attribute of the <label> element is used to create an explicit association between a label and a specific form control element. This attribute improves accessibility and usability by allowing users to click on the label text to focus or activate the associated input element.

Syntax

Following is the syntax for the for attribute −

<label for="elementId">Label Text</label>
<input type="text" id="elementId">

Here, elementId is the unique ID of the form control that the label describes. The for attribute value must exactly match the id attribute value of the target element.

How the For Attribute Works

When a label is properly associated with a form control using the for attribute, clicking on the label text will automatically focus the associated input field. For checkboxes and radio buttons, clicking the label will toggle or select the control. This association also helps screen readers and other assistive technologies understand the relationship between labels and form controls.

Basic Example

Let us see a simple example demonstrating the for attribute −

<!DOCTYPE html>
<html>
<head>
   <title>For Attribute Example</title>
</head>
<body style="font-family: Arial, sans-serif; padding: 20px;">
   <h2>User Registration</h2>
   <form>
      <p>
         <label for="username">Username:</label>
         <input type="text" id="username" name="username">
      </p>
      <p>
         <label for="email">Email:</label>
         <input type="email" id="email" name="email">
      </p>
      <p>
         <label for="password">Password:</label>
         <input type="password" id="password" name="password">
      </p>
   </form>
</body>
</html>

In this example, clicking on any label text will automatically focus the corresponding input field. This improves user experience and accessibility −

User Registration

Username: [input field]
Email: [input field] 
Password: [password field]

Example with Form Controls

Following example shows the for attribute with various form control types −

<!DOCTYPE html>
<html>
<head>
   <title>For Attribute with Different Controls</title>
</head>
<body style="font-family: Arial, sans-serif; padding: 20px;">
   <h2>Student Information Form</h2>
   <form>
      <fieldset style="padding: 15px; margin-bottom: 10px;">
         <legend>Personal Details</legend>
         
         <p>
            <label for="studentName">Student Name:</label>
            <input type="text" id="studentName" name="studentName" value="John Doe">
         </p>
         
         <p>
            <label for="course">Course:</label>
            <select id="course" name="course">
               <option value="html">HTML</option>
               <option value="css">CSS</option>
               <option value="javascript">JavaScript</option>
            </select>
         </p>
         
         <p>
            <label for="grade">Grade:</label>
            <input type="number" id="grade" name="grade" min="1" max="100" value="85">
         </p>
         
         <p>
            <input type="checkbox" id="honors" name="honors">
            <label for="honors">Honors Student</label>
         </p>
         
      </fieldset>
   </form>
</body>
</html>

The output displays a well-structured form where all labels are properly associated with their controls −

Student Information Form

Personal Details
???????????????????????????????????????????????
? Student Name: John Doe                      ?
? Course: [HTML ?]                           ? 
? Grade: 85                                  ?
? ? Honors Student                           ?
???????????????????????????????????????????????

Example with Radio Buttons

The for attribute is particularly useful with radio buttons and checkboxes, as clicking the label selects the option −

<!DOCTYPE html>
<html>
<head>
   <title>For Attribute with Radio Buttons</title>
</head>
<body style="font-family: Arial, sans-serif; padding: 20px;">
   <h2>Choose Your Skill Level</h2>
   <form>
      <fieldset style="padding: 15px;">
         <legend>Programming Experience</legend>
         
         <p>
            <input type="radio" id="beginner" name="level" value="beginner">
            <label for="beginner">Beginner (0-1 years)</label>
         </p>
         
         <p>
            <input type="radio" id="intermediate" name="level" value="intermediate">
            <label for="intermediate">Intermediate (2-5 years)</label>
         </p>
         
         <p>
            <input type="radio" id="advanced" name="level" value="advanced">
            <label for="advanced">Advanced (5+ years)</label>
         </p>
         
      </fieldset>
   </form>
</body>
</html>

Users can click anywhere on the label text to select the corresponding radio button −

Choose Your Skill Level

Programming Experience
???????????????????????????????????????????
? ? Beginner (0-1 years)                ?
? ? Intermediate (2-5 years)            ?
? ? Advanced (5+ years)                 ?
???????????????????????????????????????????
How the 'for' Attribute Works Label Element <label for="email"> Email:</label> Input Element <input type="email" id="email"> Association Key Benefit Clicking the label text automatically focuses the input field

Accessibility Benefits

The for attribute provides significant accessibility improvements −

  • Screen Reader Support − Screen readers can announce both the label and the form control together, providing better context to visually impaired users.

  • Larger Click Target − Users can click on the label text in addition to the small form control, making it easier to interact with forms.

  • Keyboard Navigation − Proper label association helps with keyboard navigation and focus management in forms.

  • Form Validation − When form validation errors occur, the label text can be used to clearly identify which field has an issue.

Common Mistakes

Here are common mistakes to avoid when using the for attribute −

  • Mismatched IDs − The for attribute value must exactly match the target element's id attribute (case-sensitive).

  • Missing ID − The target form control must have an id attribute for the association to work.

  • Duplicate IDs − Each id must be unique within the document. Multiple elements cannot share the same ID.

  • Wrong Element Type − The for attribute should only reference labelable elements like input, select, textarea, etc.

Conclusion

The for attribute creates an essential link between labels and form controls, improving both usability and accessibility. By properly associating labels with their corresponding input elements, you make forms easier to use and more accessible to all users, including those using assistive technologies.

Updated on: 2026-03-16T21:38:54+05:30

291 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements