Skip to main content

Next.js fix guide

Fix Missing form labels on Next.js

Placeholder text is not a substitute for labels.

Check your live page

Canonical issue page: Missing form labels

What this issue means

What this issue is

Every input needs an accessible name, usually via `<label for>` wrapping, or `aria-label` when design constraints require it.

Fixes

Prefer visible labels. If space is tight, use persistent labels or aria-labelledby pointing to visible text.

How to fix on Next.js

In Next.js, verify both server and client components: hydration can change roles/names. Use `next/image` with meaningful `alt`, and ensure dynamic imports do not drop focus management.

How to fix

Associate every input with a visible label, aria-labelledby, or aria-label when design constraints require it.

Surface errors next to fields and link them with aria-describedby.

Related: 3.3.2 Labels or Instructions.

Other platforms

Related guides

TestAccessibility · Programmatic fix page · localhost:3001