Who this affects
An SVG marked as an image has no text alternative. Inline icon SVGs are the usual cause.
How to fix it
Add a <title> inside the SVG, or aria-label on it. Purely decorative SVGs should carry aria-hidden="true" instead.
Effort Low · ~5 min per icon
Before and after
Fails
<svg role="img">
<use href="#logo"></use>
</svg>Passes
<svg role="img" aria-label="Example Kitchen">
<use href="#logo"></use>
</svg>Where this sits in the standard
| WCAG success criterion | Level | EN 301 549 clause |
|---|---|---|
| 1.1.1 Non-text Content | A | 301-549, 9.1.1.1 |
EN 301 549 clause 9 applies these criteria to web content. The published version referenced by the European Accessibility Act is V3.2.1, which incorporates WCAG 2.1 level A and AA. More on the standard.
How to check it by hand
Turn images off in the browser, or run the page through a screen reader and listen to the image announcements. If you hear a file name, a hash, or nothing where something meaningful should be, the alternative is missing. Ask of every image: if this were removed, what would the reader need told?
Automated testing settles roughly a third of the WCAG success criteria. This rule is one an automated tool detects reliably — but a clean automated result is not proof of conformance.
Reference
Deque's technical write-up for this rule: svg-img-alt
See whether your site trips this rule
Paste a URL. We open it in a real browser, dismiss the cookie wall and run the full EN 301 549 rule set. No account, no card.