Skip to main content
← πŸ“„ HTML & the platformΒ·Module A3 Β· Lesson 11
TaskBuild a fully-labeled signup form. <label for='u'>Username</label> + <input id='u' name='username'>, <label for='e'>Email</label> + <input id='e' type='email' name='email'>, <label for='p'>Password</label> + <input id='p' type='password' name='password'>.

<label>: the accessibility glue

75 XP7 min
Theory

Two valid patterns

Explicit (preferred):

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

The for attribute matches the input's id. Clicking the label focuses the input. Screen readers announce "Email" when the input gets focus.

Implicit (label wraps input):

<label>
  Email
  <input type="email" name="email" />
</label>

Same accessibility behavior. No for/id pair needed. Use when you don't need to style the label and input separately.

Why labels matter (beyond looking nice)

  1. Click target expansion. The label is now part of the click area β€” a 20% larger tap target. Mobile users especially appreciate this.
  2. Screen reader announcement. Without a label, VoiceOver reads "edit text" β€” useless. With a label, "Email, edit text" β€” clear.
  3. Voice control. Mac/iOS Voice Control says "Click Email" β€” only works with a label.

What's NOT a label

  • <p>Email:</p> next to an input β€” visual only, not accessible.
  • placeholder="Email" β€” disappears when typing, screen readers don't always announce it. NEVER use placeholder as the only label.
  • aria-label="Email" β€” works for accessibility but loses click-to-focus and the visual label.

Use <label> for >95% of inputs. Reserve aria-label for icon-only buttons where a visible label would be redundant.

πŸ”’

Sign up to start coding

Theory is open to everyone. The interactive editor, live preview, and check are unlocked with a 7-day free trial β€” card required, cancel anytime.

Sign up β€” free trial β†’

First 10 lessons in each track are free. No card needed for those.

← PreviousNext lesson β†’

Get one Python or web tip a day β€” by email

Short, hand-written, no spam. Unsubscribe in one click.