The criterion behind it
1.1.1 Non-text Content
Anything that is not text — an image, an icon, a chart — needs a text version that says the same thing.
Level A · EN 301 549 § 9.1.1.1
Why this check exists
A screen reader can only read text. An unlabelled image is silence; an unlabelled icon button is the word "button" and nothing else.
What usually triggers it
- failsA product photo with `alt=""` when the photo is the only thing naming the product.
- failsAn icon-only button with no `aria-label`, so it announces as "button".
- failsA chart shipped as a PNG with `alt="chart"` and no data table anywhere.
- failsDecorative flourishes given descriptive alt text, so the reader hears noise.
How to fix it
- doWrite the alt text as what you would say out loud if you were reading the page to someone on the phone.
- doGive purely decorative images `alt=""` — empty, not missing — so assistive tech skips them.
- doFor icon buttons, add `aria-label` naming the action, not the icon: "Delete draft", not "trash can".
- doFor charts, put the underlying numbers somewhere reachable — a table, a summary sentence, a download.
How it is reported
A11ySignal reports this at serious impact. Every failing element comes with its CSS selector and the markup that failed, so you can go straight to the line rather than hunting for it. Deque publishes the engine-level detail:
https://dequeuniversity.com/rules/axe/4.13/role-img-alt ↗
Check implemented by axe-core 4.13.0, © Deque Systems, MPL-2.0.
Other checks for 1.1.1
criticalimage-altImages must have alternative text
criticalinput-image-altImage buttons must have alternative text
seriousaria-meter-nameARIA meter nodes must have an accessible name
seriousaria-progressbar-nameARIA progressbar nodes must have an accessible name
seriousobject-alt<object> elements must have alternative text
serioussvg-img-alt<svg> elements with an img or image role must have alternative text