Misplaced Field Label
Form field labels in Android apps must be positioned correctly relative to their associated input so assistive technologies can pair them accurately.
WCAG Reference
Maps to: WCAG 3.3.2 Labels or Instructions | Applies to: WCAG 2.0, WCAG 2.1, WCAG 2.2 Introduced in: WCAG 2.0 | Level: A | Read the official specification →
What this rule checks
The scanner verifies that labels associated with form fields through labelFor or proximity are positioned in a way that creates a clear visual and programmatic association.
Why it matters
If a label appears far from its field or near the wrong field, TalkBack may announce the wrong label for a control. This causes confusion and can lead users to enter data in the wrong field.
Common failure patterns
- a
TextViewlabel placed below the input field instead of above or beside it - labels that are visually near the correct field but programmatically linked to a different field via
labelFor - dynamic layouts where field reordering breaks label-field proximity
Remediation guidance
- place labels immediately above or to the start of their associated input field
- use
android:labelForon the labelTextViewpointing to the correct inputid - in Jetpack Compose, use
Modifier.semantics { contentDescription = "..." }or explicit label composables - test with TalkBack to confirm the announced label matches the visual label for each field
