Bird
Raised Fist0
HTMLmarkup~5 mins

Labels and placeholders in HTML

Choose your learning style10 modes available
Introduction

Labels and placeholders help people understand what to type in a form. They make forms easier and faster to fill out.

When you want to tell users what information to enter in a text box.
When you want to improve accessibility for screen readers.
When you want to make your form clear and user-friendly.
When you want to show example text inside an input field.
When you want to connect a text description to a form control.
Syntax
HTML
<label for="inputId">Label text</label>
<input id="inputId" type="text" placeholder="Example text">

The for attribute in <label> must match the id of the input.

The placeholder attribute shows example text inside the input box.

Examples
This example shows a label linked to a text input with a placeholder.
HTML
<label for="name">Name:</label>
<input id="name" type="text" placeholder="Enter your name">
Here, the label is for an email input with a placeholder showing an example email.
HTML
<label for="email">Email:</label>
<input id="email" type="email" placeholder="you@example.com">
This input is for a password with a placeholder giving a hint about length.
HTML
<label for="password">Password:</label>
<input id="password" type="password" placeholder="At least 8 characters">
Sample Program

This is a simple sign-up form. Each input has a label linked by for and id. Placeholders show example text inside inputs. Small text below inputs gives extra help. The form is easy to read and use.

HTML
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Labels and Placeholders Example</title>
  <style>
    body {
      font-family: Arial, sans-serif;
      padding: 1rem;
      max-width: 400px;
      margin: auto;
    }
    label {
      display: block;
      margin-top: 1rem;
      font-weight: 600;
    }
    input {
      width: 100%;
      padding: 0.5rem;
      margin-top: 0.25rem;
      font-size: 1rem;
      border: 1px solid #ccc;
      border-radius: 4px;
    }
  </style>
</head>
<body>
  <h1>Sign Up Form</h1>
  <form>
    <label for="username">Username</label>
    <input id="username" type="text" placeholder="Choose a username" aria-describedby="usernameHelp">
    <small id="usernameHelp">Your unique username to log in.</small>

    <label for="email">Email Address</label>
    <input id="email" type="email" placeholder="you@example.com" aria-describedby="emailHelp">
    <small id="emailHelp">We will never share your email.</small>

    <label for="password">Password</label>
    <input id="password" type="password" placeholder="At least 8 characters" aria-describedby="passwordHelp">
    <small id="passwordHelp">Make it strong and secure.</small>

    <button type="submit" style="margin-top:1rem; padding:0.5rem 1rem; font-size:1rem;">Sign Up</button>
  </form>
</body>
</html>
OutputSuccess
Important Notes

Always use <label> with the for attribute to improve accessibility.

Placeholders should be short hints, not full instructions.

Labels stay visible, placeholders disappear when typing starts.

Summary

Labels describe what the input is for and help screen readers.

Placeholders show example text inside input fields as a hint.

Use both together to make forms clear and easy to use.

Practice

(1/5)
1. What is the main purpose of a <label> element in an HTML form?
easy
A. To describe what the input field is for and improve accessibility
B. To provide example text inside the input field
C. To style the input field with colors
D. To submit the form data to the server

Solution

  1. Step 1: Understand the role of <label>

    The <label> element connects text to an input field, helping users know what to enter.
  2. Step 2: Recognize accessibility benefits

    Labels also help screen readers announce the input purpose, making forms accessible.
  3. Final Answer:

    To describe what the input field is for and improve accessibility -> Option A
  4. Quick Check:

    Label = Describe input + accessibility [OK]
Hint: Labels describe inputs clearly and help screen readers [OK]
Common Mistakes:
  • Confusing labels with placeholders
  • Thinking labels style inputs
  • Assuming labels submit forms
2. Which of the following is the correct way to associate a label with an input field using the for attribute?
easy
A. Email
B. Email
C. Email
D. Email

Solution

  1. Step 1: Check label's for attribute and input's id

    The label's for attribute must match the input's id to link them.
  2. Step 2: Verify correct syntax

    <label for="email">Email</label><input id="email" type="text"> uses for="email" in label and id="email" in input, which is correct.
  3. Final Answer:

    <label for="email">Email</label><input id="email" type="text"> -> Option D
  4. Quick Check:

    Label for = Input id [OK]
Hint: Label's for must match input's id exactly [OK]
Common Mistakes:
  • Using for on input instead of id
  • Mismatching for and id values
  • Using id on label instead of for
3. What will the following HTML code display inside the input box when the page loads?
<label for="username">Username</label>
<input id="username" type="text" placeholder="Enter your username">
medium
A. The text 'Username' inside the input box
B. The text 'Enter your username' inside the input box as a hint
C. An empty input box with no text
D. The label 'Username' inside the input box

Solution

  1. Step 1: Understand placeholder attribute

    The placeholder attribute shows example text inside the input as a hint, not actual value.
  2. Step 2: Check label vs placeholder roles

    The label text appears outside the input box; placeholder text appears inside as a hint.
  3. Final Answer:

    The text 'Enter your username' inside the input box as a hint -> Option B
  4. Quick Check:

    Placeholder = hint text inside input [OK]
Hint: Placeholder shows hint inside input, label is outside [OK]
Common Mistakes:
  • Thinking label text appears inside input
  • Confusing placeholder with input value
  • Expecting input to be pre-filled
4. Identify the error in this HTML snippet:
<label for="phone">Phone Number</label>
<input placeholder="Enter phone number">
medium
A. The label's for attribute does not match input's id
B. Label element should be inside the input element
C. Placeholder attribute is not allowed on input
D. The input is missing a type attribute

Solution

  1. Step 1: Check label's for attribute and input's id

    The label's for attribute value "phone" does not match any id on the input (input has no id).
  2. Step 2: Verify other attributes

    Placeholder is valid on input; type defaults to text.
  3. Final Answer:

    The label's for attribute does not match input's id -> Option A
  4. Quick Check:

    Label for = Input id [OK]
Hint: Label's for must match input's id exactly [OK]
Common Mistakes:
  • Omitting id on input
  • Mismatching for and id values
  • Using id on label instead of for
5. You want to create a form input for "Email" that is accessible and user-friendly. Which of the following is the best practice?
hard
A. Email
B. Email
C. Email
D. Email

Solution

  1. Step 1: Ensure label is linked to input

    Using for="email" in label and matching id="email" in input links them for accessibility.
  2. Step 2: Use placeholder as helpful hint

    The placeholder gives a clear example inside the input without replacing the label.
  3. Step 3: Confirm input type is correct

    Using type="email" helps browsers validate and show correct keyboard on mobile.
  4. Final Answer:

    <label for="email">Email</label><input id="email" type="email" placeholder="Enter your email address"> -> Option C
  5. Quick Check:

    Label linked + placeholder hint + correct type = best practice [OK]
Hint: Link label with for/id and add placeholder for hints [OK]
Common Mistakes:
  • Not linking label and input properly
  • Placing label after input without for/id
  • Omitting input type or placeholder
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard