← All criteria
3.3.2Level AWCAG 2.0Auto-fix: Yes

Labels or Instructions

Form fields and inputs must have visible labels or instructions describing what the user is expected to enter.

What it requires

Every `<input>`, `<select>`, and `<textarea>` must have a programmatic label — either a `<label for="id">` element wrapping or referencing the input, or an `aria-label` / `aria-labelledby` attribute. Placeholder text alone does not count: it disappears as soon as the user types, and screen readers do not always announce it.

Visible labels are also required by 3.3.2 — placeholder-only forms (where the field name lives only inside the placeholder) fail. Floating labels are acceptable as long as the label remains visible above the field after the user begins typing.

Common Shopify failure

Newsletter signup at the bottom of a Shopify theme with `<input type="email" placeholder="Your email">` and no `<label>`. Search bars in mega-menus with placeholder-only labeling.

How to fix it

Add `<label for="newsletter-email" class="sr-only">Email</label>` (or visible if design allows) and reference it via the matching `id`. AccessComply's FormLabelAgent detects every unlabeled input and writes the label.

Merchant QA checklist

  • Scan the storefront page where this pattern appears: product pages, collection pages, cart drawer, customer-account pages, and any landing page built with theme sections.
  • Confirm the issue is fixed in the rendered browser output, not only in the Liquid file. Shopify section settings, app blocks, and third-party scripts can reintroduce the same 3.3.2 failure after a theme edit.
  • Re-test the affected component with keyboard navigation and a screen-reader accessibility tree before publishing the theme, especially when the fix changes markup or ARIA attributes.

How AccessComply handles it

AccessComply treats WCAG 3.3.2 as a rendered-storefront issue first. The scanner checks the live DOM and computed styles, maps the finding back to the Shopify theme file that produced it, then classifies the fix as a safe automatic fix. When automation is safe, the app writes the smallest theme-code change needed and keeps the original theme backup available. When merchant judgment is required, the issue is surfaced for manual review instead of pretending the page is fixed.

Primary source: W3C — WCAG 2.0 Understanding 3.3.2