← All criteria
3.3.1Level AWCAG 2.0Auto-fix: Partial

Error Identification

When a user input error is detected, the field in error must be identified and the error described to the user in text.

What it requires

WCAG 2.0 SC 3.3.1 requires that form errors be identified specifically — not "Some fields are invalid" but "Email field is invalid: please enter a valid email address". Errors must be available as text (not color-only or icon-only) so screen readers can announce them.

The accessibility-correct pattern: associate the error with the input via `aria-describedby` pointing at the error-message element, set `aria-invalid="true"` on the input, and announce errors in an `aria-live="assertive"` region.

Common Shopify failure

Checkout form turns invalid fields red but provides no text error message — screen-reader users have no idea what failed. Newsletter signup that says only "Error" with no detail. Custom shipping calculator that flashes a red border and silently exits.

How to fix it

AccessComply patches Liquid templates to render `<span class="error" aria-live="assertive">` next to each input, sets `aria-invalid` and `aria-describedby` correctly, and writes specific error text per validation rule.

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.1 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.1 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 guided partial 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.1