A11y Hell
HIGHWCAG 1.3.1 A

Missing Form Labels

Form controls are presented without associated labels, so users hear generic field types without context.

Try It Yourself

Demo warning

These inputs look straightforward visually but have no meaningful programmatic labels.

Tab across the form and compare visible placeholder text with what assistive tech can reliably interpret.

Manual Testing Protocol

Follow this sequence to reproduce the failure consistently and verify the fix with the same workflow.

1. Setup

  • Open the form section and keep SR simulation active.
  • Navigate with Tab instead of clicking directly into fields.

2. Reproduction Steps

  1. Move focus through each input and listen to field announcement.
  2. Try to fill the form without relying on placeholder text.
  3. Trigger validation and attempt field correction.

3. Expected Failure Signals

  • Inputs announce as generic text fields with no purpose context.
  • Users cannot determine required data for each field confidently.
  • Error correction loops increase due to missing identification.

4. Fix Verification

  • All controls have persistent labels bound with `for`/`id` or equivalent.
  • Required and invalid states are announced with each field label.
  • Placeholder text is supplemental, not the only label mechanism.

Evidence Capture Checklist

  • Record the exact user goal that fails (for example: submit form, complete checkout, navigate menu).
  • Capture screen recording + keyboard path from first interaction to failure state.
  • Map failure to WCAG 1.3.1 (Level A) and affected user groups.
  • Document business impact: conversion loss, support burden, legal/compliance risk, or trust damage.
Share evidence with Accessibility.build

The Impact

What Happens

  • Users cannot map fields to required information
  • Form completion slows dramatically
  • Validation recovery becomes guesswork

Who Gets Hurt

Screen reader users
Users with memory and attention constraints
Mobile users relying on voice input

The Broken Code

<input type="email" placeholder="Email" />
<input type="password" placeholder="Password" />
<input type="text" placeholder="Company" />
<!-- No <label for=...> and no aria-label -->

WCAG 1.3.1: Reference

"Information, structure, and relationships conveyed through presentation can be programmatically determined."

Level A - Placeholders are not a replacement for durable, accessible labels.

Related High Issues

Explore neighboring failures in the same severity band.

View all high issues
Screen reader simulation closed. Audio disabled.

Screen Reader

Simulation Mode

Active — Tab to navigate

Currently Announcing

Focus on an element to see announcement

Announcement History

No announcements yet

Press Tab to start navigating

This simulates what screen reader users hear.
No visuals — just these announcements.
Shortcut: Shift + Alt + S