Non-text Content
Every non-text element (image, icon, chart, decorative graphic) must have a text alternative that serves an equivalent purpose, or be marked decorative with `alt=""`.
What it requires
WCAG 1.1.1 is the foundational alt-text criterion. It requires that every non-text element on the page has a text alternative — alt text on `<img>` tags, accessible-name attributes on icon-only buttons, transcripts on audio, captions on video, and so on.
Decorative images that add no information (background flourishes, spacer GIFs, purely visual icons next to a labeled link) should use `alt=""` so screen readers skip them rather than announcing "image" or the filename.
Functional images (an icon-only button, a logo that links to home) should have alt text that describes the function, not the visual: alt="Open menu" not alt="hamburger icon".
Common Shopify failure
Product images uploaded through the Shopify admin without alt text. Theme-level icons (cart, search, account) implemented with SVGs that have no `<title>` or `aria-label`. Background hero images embedded as `<img>` tags with empty src.
How to fix it
In Liquid: emit `{{ image.alt | escape }}` on every `<img>` and fall back to a generated description when the merchant did not enter one. For SVG icons, wrap in `<button aria-label="...">` and add `aria-hidden="true"` on the inner SVG.
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 1.1.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 1.1.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 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 1.1.1