What is alt text?
Alt text is the text in an image's alt attribute: the words a screen reader reads out in place of the picture, and what a browser shows if the image fails to load. Google also uses it to understand what an image shows. Write it as the words you would use to replace the image. If the image is pure decoration, leave it empty, as alt="", which is correct and not an error. Across 478 pages on 4 sites I run, 251 images had no missing alt attributes and 188 empty ones, and every empty one was right.
What it looks like
<img src="dalmatian.jpg" alt="Dalmatian puppy playing fetch">
The test the HTML standard gives is simple: if every image on the page were replaced by its alt text, the page should mean the same thing.
Missing alt and empty alt are different
- No alt attribute at all is the mistake. Some screen readers then read out the file name instead, so a listener hears a camera's file name where the picture should be.
- An empty alt, alt="", tells assistive technology to skip the image. That is correct for an image that is purely decorative, or that only repeats text right next to it.
The W3C's accessibility guidelines put this first: every image that carries meaning needs a text alternative that does the same job, and pure decoration should be marked so assistive technology can ignore it.
How to write good alt text
The W3C's image tutorials sort images into a few kinds, and each gets a different kind of alt:
| Kind of image | What the alt should say | Example |
|---|---|---|
| Informative: a photo or picture that adds meaning | The essential information, briefly | alt="Dalmatian puppy playing fetch" |
| Functional: the only content of a link or button | What the link or button does, not what it looks like | alt="Search" on a magnifying-glass button |
| Image of text | The same words as the image | alt="Now open on Sundays" |
| Decorative: a divider, a background flourish | Nothing: alt="" | alt="" |
| Complex: a chart or a detailed screenshot | A short alt, with the full detail in nearby text or a caption | alt="Monthly visits this year" plus the numbers in a table |
Read on the W3C's own pages, 9 November 2026.
A few habits make most alt text better:
- Say what the image means here, not every detail in it. The same photo can need different alt on two pages.
- Skip "image of" and "picture of". The screen reader already says it is an image.
- Don't repeat a caption or a heading that sits right beside it. Use alt="" and let the text do the work.
- Don't stuff keywords. Google's own example of bad alt is a list of keywords, and it says this can get a site seen as spam.
The 125-character myth
Many guides say alt text must stay under 125 characters because screen readers cut it off there. I could not find that rule in any official source. The W3C's guidance sets no character limit. Neither does the HTML standard, MDN or Google Search Central. The only Google page I found that mentions 125 is a design codelab on button labels, and a Google style guide for its own developer docs says 155.
So length is a judgement, not a limit. Short is usually kinder, because a listener can't skim. On one of the sites I measured, the median alt was 217 characters, because each image is a product screenshot that carries a score, a grade and a count. That is informative, but the W3C's advice for complex images is better: a short alt, and the detail in a caption or the text around it.
What four real sites showed
I read every page in the sitemaps of 4 sites I run on 9 November 2026 and checked every image.
| Total | |
|---|---|
| Pages | 478 |
| Images | 251 |
| No alt attribute | 0 |
| Empty alt (alt="") | 188 |
| Alt longer than 125 characters | 40 |
The most useful finding was about a tool, not a page. Our own internal page audit flagged 177 pages on one site for images with no alt text. Every empty alt on that site, 178 in all, was the site's logo inside the home link, right beside the site's name in text. There, alt="" is correct: a non-empty alt would make a screen reader say the name twice. The audit had treated an empty alt as a missing one. A checker that does that trains people to add junk alt text to images that should stay silent.
What Check Engine checks
Check Engine reports images that have no alt attribute at all, with the pages they are on. It treats alt="" as correct and does not flag it, and it ignores 1x1 tracking pixels. It also reports links with no text at all, which is often an image link with no alt, and a logo whose alt text doesn't name your company. A missing alt is an accessibility problem as well as an image-search one.
It does not judge whether your alt text is good. Only a person who knows why the image is there can do that.
If you run a public body's website, the deadlines for accessible websites under the ADA are on our Title II dates page.
$59once
For Macs with Apple silicon or Intel, macOS 12 or later, and 64-bit Windows
Priced in US dollars. Checkout shows your currency and any local tax.
On a Mac? Get the Mac version.
On your phone?
Launch price: $29.50 once, through 30 November. From 1 December: $59. Buy applies the code FOUNDINGDOCKET for you; if the checkout shows $59, enter it under ‘Have a discount code?’.
Screaming Frog is $279 a year. Ahrefs plans with Site Audit run $129–$449 a month. Check Engine is $59 once. Screaming Frog’s price read 4 November 2026, Ahrefs’ 9 November 2026.
30 days, no conditions, no questions asked. Refund policy
Common questions
Does alt text help SEO?
Google uses alt text, together with what it can see in the image, to understand what the image shows, and uses it as anchor text when the image is a link. Write it for people first. Google warns that alt filled with keywords can make a site look like spam.
How long should alt text be?
No official source sets a limit. The W3C's guidance says to keep it to the essential information, and to put long detail, such as a chart's numbers, in the text around the image.
When should alt text be empty?
When the image is purely decorative, or when the same information is already in text right next to it. Use an empty alt attribute, not a missing one, so screen readers skip it instead of reading the file name.
Is alt text the same as the text you see on hover?
No. Hover text comes from the title attribute. Alt text is read by screen readers and shown when the image doesn't load.