Running a site
Writing alt text that actually helps
17 July 2026 · 5 min read
On this page
Alt text is the easiest accessibility improvement to make and the easiest to do badly. Bad alt text is not neutral — it actively wastes the time of the person relying on it.
The question to ask
Not "what is in this image" but "what would I say if I were reading this page aloud to someone on the phone?"
That reframing solves most of it. You would not say "photograph of a smiling woman with brown hair standing in front of a brick building". You would say "Dr Sarah Chen, who runs the practice" — or, if the picture is just there to break up the text, you would say nothing at all.
Context decides everything
The same photograph needs different alt text depending on why it is on the page.
A photo of a dog on a veterinary homepage, purely decorative: empty alt. The page says what it needs to say without it.
The same photo on a product page for a dog harness: "Border collie wearing the harness in red, fastened across the chest." Now the image conveys product information.
The same photo in a blog post about breed identification: "Border collie with the distinctive white blaze and semi-erect ears described above."
There is no correct alt text for an image in isolation. Only for an image on a page.
When to leave it empty
Purely decorative images should have an explicitly empty alt attribute — alt="" — not a missing one.
The difference matters. An empty alt tells a screen reader to skip it. A missing alt often means the screen reader reads the filename instead: "D S C underscore zero four two one dot jpeg". That is the worst outcome, and it is the default for every image uploaded to WordPress without alt text.
Decorative means: background textures, dividers, an icon sitting next to text that already says the same thing, a stock photo purely for visual rhythm.
The common mistakes
"Image of…" or "Photo of…" — the screen reader already announces that it is an image. You are adding a word to every single image.
Keyword stuffing. "wordpress maintenance service wordpress support wordpress care plan" helps nobody, and search engines have been discounting it for years.
The filename. "IMG_4821.jpg" is the default and is never right.
Too long. One sentence usually. If the image genuinely needs a paragraph — a chart, a diagram — put that in the page text where everyone can read it, and keep the alt short.
Describing the wrong thing. For a chart, the alt text is the finding, not the appearance: "Chart showing sales rising from 200 to 340 units between January and June", not "bar chart with six blue bars".
The special cases
Images that are links. The alt text describes the destination, not the picture. A logo linking home: "WP Site Kept home", not "WP Site Kept logo".
Images containing text. Repeat the text. If a banner reads "20% off until Friday", that is the alt text. Better still, do not put important text in images at all.
Icons with adjacent text. Empty alt. The label next to it already says it, and duplicating means the user hears it twice.
Product photos. Describe what distinguishes this image: colour, angle, what is shown. "Blue ceramic mug, handle to the right" beats "mug".
Charts and data. Summarise the conclusion in alt, and put the underlying numbers in the page or a table.
Doing it in WordPress
Alt text goes in the media library, but note that WordPress applies it at the point of insertion — changing it in the library later does not update images already placed in content.
To fix a backlog: work through your most-visited pages first rather than the whole media library. A thousand images sounds impossible; the forty on your busiest pages is an afternoon, and it is where the benefit is.
Do not use an AI plugin to bulk-generate alt text and consider it done. It produces plausible descriptions with no understanding of why the image is on that page, which is the same failure as an overlay. It can be a reasonable starting draft for a large library, if a person edits it.
Why it is worth it
It helps screen reader users, obviously. It also helps when an image fails to load, it gives search engines context, and it forces you to notice when an image is not actually doing anything — which happens more often than you would think.
It is one of the five failures on almost every WordPress site, and the only one you can start fixing in the next five minutes without touching your theme.