STR-05
Images without alternative text
What the check measures
On every live page the images are counted, and among them those missing the alt attribute entirely. The finding is raised when the share of missing ones exceeds 20 %. The threshold lives in config/ under rule_ as max_ and is marked "_status": "PROPOSAL" (our estimate pending revision, not a number from the specification). The reason for having a threshold at all is simple: one image in fifty is not worth a finding; half of them are.
An empty alt="" does not count as missing, and that matters. It is the valid and correct way to mark a decorative image: the author is telling a screen reader and a model “this image carries no information, skip it”. A site that labels its decorative images properly must not be penalised for it.
What the check does not do:
- It does not judge the quality of the text.
alt="image",alt=or"IMG_ 2931. jpg" alt="."pass exactly like a careful description. This is the most common way to “fix” the finding while improving nothing. - It cannot see images inserted through CSS (
background-). Those cannot have animage altat all, and if you carry content in them, that is a problem this check says nothing about. - It does not weigh importance. A footer icon counts the same as a product photograph.
- It checks neither
<svg>nor<canvas>, although those should carry an accessible name too. - It never runs on pages with an error status.
The finding is page-level; severity is warning. A full accessibility analysis is done by a separate audit module with its own A11Y-… codes; this check is a coarse sieve in the core set.
How strong the evidence is
We recommend it because it does no harm or has some other benefit, but we promise nothing about whether it makes language models cite you. Nobody has demonstrated that yet.
Let us split this by who the alternative text serves: the strength of the evidence differs per group, and merging them would be dishonest.
| Who it helps | How strong the evidence is |
|---|---|
| People reading with a screen reader | The strongest part, and it is normative. An image with no alt is read out as a file name, or skipped entirely. It is a WCAG criterion, and in the EU it is enforceable under the accessibility directive. |
| Image search | Documented for classic search. Google uses alternative text to understand an image and recommends writing it descriptively. |
| Language models | Not documented. Nobody declares that they read alternative text, and no measurement compares the two cases. The reasoning that a model without alt cannot know what is in the picture is sound, but it is reasoning. |
The class of the finding as a whole is therefore “effect not demonstrated”, meaning for visibility in AI, which is what this audit is about. It does not mean alternative text is pointless. It means the reason to add it lies somewhere other than where people tend to look for it.
And that reason is worth more than our score. Alternative text is the one thing in this entire audit that you owe to specific people rather than to an algorithm. If one thing from this finding should stick, let it be that.
How to fix it
For each image, decide which of two groups it belongs to. It is not about how important it is, but whether it carries information that is not in the text anyway:
- A content image: a product photo, a chart, a screenshot, an infographic. It needs an
altdescribing what matters about it. - A decorative image: a divider, an ornamental background, an icon beside text that says the same thing. It gets
alt="", empty, not omitted.
For the first group, one measure works better than any rule about length: write what you would say over the phone to somebody who cannot see the image.
<!-- Wrong -->
<img src="chart.png">
<img src="chart.png" alt="chart">
<img src="chart.png" alt="sales chart image diagram statistics graph">
<!-- Right -->
<img src="chart.png" alt="Sales rose from 120 units in January to 340 in June.">
<!-- Decorative: empty alt, not omitted -->
<img src="divider.svg" alt="">What to watch out for:
- Do not start with “image of…” or “photo of…”. The screen reader has already announced it is an image; repeating it doubles the information.
- For a chart, describe the conclusion, not the appearance. “A bar chart with six bars” helps nobody; “Sales tripled” does.
- When an image is also a link, the
altdescribes the link's destination, not the picture. So a logo in the header takesalt="Home"or the site name, not “logo”. - Do not stuff keywords. Google explicitly discourages it: filling
altattributes with keywords results in a negative user experience and may cause your site to be seen as spam. - Never add
altin bulk with a script.alt="image"on a thousand images clears the finding and helps nobody, and from then on the site looks fixed while it is not.
And as with the other structural findings: fix the template. A missing alt on a product card usually means one template and a thousand affected pages.
What the report says about it
Finding description
A significant share of images on the page has no `alt` attribute. For search engines and language models, `alt` is the most reliable description of what the image shows; without it they are left with the surrounding text. We are not claiming they cannot “see” the image at all: multimodal models and image search can process it. It is different for visitors using a screen reader: without `alt` the reader is left with the file name, or skips the image entirely.
Recommendation
Add `alt` with a short description of what the image shows (for example `alt="Solid oak dining table"`). For purely decorative images use an empty `alt=""`; that marks them as carrying no information and avoids the finding.
Sources
- Google Search Central: Google image SEO best practices (accessed 2026-09-12)
- W3C WAI: Images tutorial (alt text decision tree) (accessed 2026-09-12)
Text verified 2026-09-12