How to write good alt text (and when to write none at all)

Published 15 July 2026

Most advice about alt text is a list of rules, and most of the rules are true. But rules do not help you with the image in front of you right now, which is a photograph of a woman holding a coffee cup, on a page about remote work, and you have no idea what to write.

So let’s start somewhere more useful than a rule.

The one question that answers almost everything

If the image did not load, what would the reader need to be told so that the page still makes sense?

That is the whole job. Alt text is not a description of an image. It is a replacement for it. The test is not “did I describe what I see” but “if I delete the image and drop in this sentence, does the page still work”.

Run that test on the coffee-cup photo. It is a stock image on a page about remote work. If it vanished, would the reader be missing anything? Almost certainly not — the photo is decoration, and the honest alt text is nothing at all. We’ll come back to that.

Now run it on a screenshot in a tutorial showing an error message. If that vanishes, the reader has lost the error message. So the alt text is the error message.

Same rule, opposite answers. The image did not decide it — the page did.

Who is actually reading it

Three audiences, and they want different things:

  • Screen reader users. A blind or low-vision person navigating with a screen reader hears your alt text read aloud, in the flow of the sentence. This is the audience the feature exists for.
  • Anyone whose image did not load. Slow connection, broken path, blocked CDN, an email client that strips images by default.
  • Search engines. Google reads alt text to work out what an image depicts, which is why it is an SEO topic at all. This is the least important audience, and optimising for it at the expense of the other two is how alt text got its bad reputation.

If you write for the first audience, you automatically satisfy the third. The reverse is not true.

The rules that actually matter

Do not start with “image of” or “photo of”. The screen reader already announced that it is an image. You are making the listener sit through the word twice.

Keep it to roughly one sentence. Around 125 characters is the usual advice, and it holds up: screen readers do not chunk long alt strings well, so a paragraph becomes an unbroken wall of speech with no way to skim or skip. If an image genuinely needs a paragraph — a complex chart, a data visualisation — put the long description in the page body where everyone can read it, and keep the alt short.

Do not repeat the caption. If there is a visible caption directly under the image, a screen reader user hears it. Alt text that duplicates it means hearing the same sentence twice in a row for no reason. Use the alt to say something the caption does not.

Describe function, not just contents. The same photo needs different alt text depending on the job it is doing. A picture of a red parka on a news site about a storm: “pedestrians crossing a flooded street”. The same picture on the product page: “model wearing the Aurora parka in red”. The pixels are identical; the function is not.

If the image is a link, describe the destination. An image inside a link is a button. The alt text should say where it goes (“Read the 2026 annual report”), not what it looks like (“PDF icon”). This one is consistently, universally botched.

The images that should have no alt text

This is the part that most guides skip, and it is the part that does the most good.

A decorative image — a background gradient, a divider, a stock photo that exists purely to break up text — should have an empty alt attribute: alt="". Not a missing attribute, which makes some screen readers fall back to reading the filename out loud (IMG_20240517_final_v2_USE_THIS.jpg, spoken aloud, one character at a time, is a genuinely miserable experience). An empty one, which tells the screen reader to skip it entirely.

Writing “abstract blue gradient background” for a decorative header does not help anyone. It interrupts someone who is trying to read your article to tell them about a gradient. Silence is the accessible choice.

The awkward truth is that this makes an AI alt text generator only half a solution. A model looks at a decorative gradient and cheerfully describes it, because describing images is all it does. It cannot tell that the image does not matter — that judgement requires knowing what the page is for, and only you know that.

Where AI actually helps

Given all of the above, is it worth generating alt text with a model at all?

Yes — for the reason that matters in practice: the alternative is usually nothing. In the real world the choice is not between a perfect human-written description and an AI draft. It is between an AI draft and an empty attribute on four hundred images, because nobody was ever going to write four hundred descriptions by hand.

A model is genuinely good at the literal layer. It will tell you there is a woman in a red coat crossing a street in the rain, and it will do it in three seconds. That is the sentence you were not going to write.

What it cannot do is the two things this guide is really about: knowing why the image is on the page, and knowing when the answer is to write nothing. So the workflow that works is:

  1. Generate a draft for everything.
  2. Delete the drafts for decorative images. Set alt="".
  3. Rewrite the drafts for images that carry meaning — charts, screenshots, product shots, anything with text in it.
  4. Accept the drafts for the rest, which will be most of them.

That is a few minutes of editing instead of an afternoon of writing, and it ends with a page that is genuinely more accessible than it was — which is the only thing that counts.

The mistakes to stop making

  • Keyword stuffing. alt="running shoes buy running shoes cheap running shoes" does nothing for SEO in 2026 and turns a screen reader into a spam machine. It is the single most user-hostile thing you can do with this attribute.
  • Leaving the filename. alt="DSC_0042.jpg" is worse than an empty alt.
  • Describing the wrong thing. In a chart, the content is what the chart shows (“revenue tripled between 2023 and 2025”), not what it is (“a bar chart with blue bars”).
  • Ignoring text inside the image. If your image contains words — a quote card, a poster, a screenshot of a tweet — those words are the content. They belong in the alt text, because the person who cannot see the image cannot read them either.

Try it on your own images

Free, no account, and your images never leave your browser.

Open PicsTag