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 a persistent visible label when the design permits, connect it with matching `for` and `id` values, and use an accessible-name technique only when a visible label is genuinely unsuitable. Re-test the rendered form with its validation states.
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 uses automated rules to check supported patterns in the pages reached during a scan. Some WCAG requirements need human judgment, assistive-technology testing, or access to third-party content and cannot be established by an automated scan. This criterion is generally treated as a pattern that may have a supported suggested fix. If the app can safely match the issue to supported source code, the merchant must review and approve the suggested change before anything is written, and the result is checked afterward. Otherwise the merchant should use the guidance above and independent hands-on testing. The label is not a guarantee of detection, a fix, WCAG conformance, or legal compliance.
Primary source: W3C — WCAG 2.0 Understanding 3.3.2