DIRECTIVE (EU) 2019/882 · IN FORCE SINCE 28 JUNE 2025 EU-HOSTED · GDPR-CLEAN
EAA Compliance

Rules · image-alt

Failure reference

Images without a text alternative.

A screen reader meets a filename where a sighted visitor sees your bestselling product. The most common automated finding on European commerce sites — and one template attribute away from fixed.

01

What fails — and who it fails

The failure, in plain language.

Product photos, category banners, payment icons, trust badges — when an <img> has no alt attribute, assistive technology has nothing to announce but a filename. For a blind shopper the product grid becomes a list of file paths; for a voice-control user, an unlabeled image is untargetable.

02

Detection — what the machine can and cannot judge

How the scanner finds it.

  • Every <img>, role="img" and image input is checked for an accessible name in the rendered DOM.
  • Missing alt, empty names on informative images, and aria-hidden misuse are flagged with the exact selector and markup.
  • What automation cannot judge: whether the text is good. alt="image" passes a machine and fails a human — alt quality stays open in the coverage matrix until a human signs it off.
03

The legal reading — factual, not fearful

Where this sits in enforcement.

1.1.1 is a Level A criterion — the baseline layer every European regime inherits through EN 301 549. It is concrete, screenshot-able and trivially demonstrated, which is why missing alternatives appear early in German Abmahnung letters and regulator correspondence. The same properties make it the fastest finding to clear from your file.

04

The fix — by pattern

4 patterns cover nearly every instance.

Informative image — describe the content, not the file- <img src="/img/p/8841.webp"> + <img src="/img/p/8841.webp" alt="Leather weekender bag, cognac">
Decorative image — empty alt removes it from the accessibility tree+ <img src="/img/divider.svg" alt="">
Inline SVG — give it a role and a title+ <svg role="img" aria-labelledby="t1"><title id="t1">Free shipping</title>…</svg>
Image button — the alt is the button's name- <input type="image" src="/img/search.png"> + <input type="image" src="/img/search.png" alt="Search">

Fix the template, not the page — one change typically clears every instance at once. The triage engine groups findings by template pattern for exactly that reason.

05

Verification — resolution is evidence, not a checkbox

Fixed means a scan said so.

On monitored domains, mark the finding fixed and the next scan verifies it: zero remaining instances converts the finding to Resolved, and both the claim and the confirmation land in the append-only ledger. Criteria that need human judgement close through sign-off in the coverage matrix — covered by the right method, never by assumption.

Related failures:

See where your templates stand.

A complimentary assessment renders up to 25 public pages in an EU-hosted browser and shows every instance of this failure — grouped, ranked, and honest about what still needs a human.