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

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.

Primary source: W3C — WCAG 2.0 Understanding 1.1.1