Empty is not missing
This is the distinction that causes the most trouble, so it is worth stating twice. alt="" is an alt attribute whose value is an empty string. It is a deliberate signal that the image carries nothing a reader needs, and assistive technology skips past it in silence. An img element with no alt attribute at all is a different situation: there is no instruction, so software has to guess, and the common guess is to announce the image and read out the file name. A page of decorative dividers marked up correctly is silent. The same page with the attributes deleted reads out a list of file names.
So the decorative case does not mean "leave it out". It means write the attribute and leave the value empty.
Decide the role before writing a word
Alt text has no single correct form because images do different jobs. A photograph illustrating a paragraph needs a description. A logo that links to the front page needs the destination, because a reader who hears the company name learns nothing about where the link goes. A quotation set as an image needs the words transcribed, not summarised. A chart needs a short name in the alt and the actual content somewhere everybody can read it. Picking the role first turns a vague writing task into a narrow one.
The awkward middle case is an image with a visible caption. If the caption already says everything, repeating it in the alt means hearing it twice in a row. Either empty the alt, or use it for what the caption leaves out.
What the flags on this page are for
They catch patterns, not meaning. Starting with "image of" is redundant because the technology has already said the word image. A file extension in the alt is a leftover. Text in capitals is spelled out letter by letter by some software. Alt text over about 150 characters is heard as one long run with no way to skim, so detail beyond that is better placed in the page where sighted readers get it too. Repeating a keyword three times is the fingerprint of alt text written for a search engine rather than a person, and it fails at both.
None of that tells you whether the description is accurate or whether it captures what the image is there to convey. A perfectly formed sentence describing the wrong thing passes every check on this page.
A working method
Cover the image and read the paragraph around it. Ask what you would have lost. If the answer is nothing, it is decorative. If the answer is a fact, write the fact. If the answer is a mood or an impression, one clause carries it — "two workers screeding a slab in bright sun" does more than a hundred words of inventory.
Then read the alt text aloud immediately after the sentence that precedes the image. That is the sequence a screen reader user hears, and duplication, redundant openings and abrupt endings all become obvious the moment you say them in order. It takes about ten seconds per image and finds more than any automated check.
Related pages
Alt text sits inside a wider structural picture: the heading structure checker covers how a page is navigated, and color contrast checker covers whether the text on it can be read. For images you are preparing at the same time, image resizer and image compressor handle the file, and image metadata stripper takes the location data out before it is published. If the image is a chart you are describing, keyword density checker is a reasonable way to see whether the description repeats itself.
Questions people ask
How long should alt text be?
Long enough to convey what the image contributes and no longer. Most useful alt text lands between about ten and twenty-five words. The 150 character mark used here is a prompt rather than a limit — when a description needs more than that, it is usually describing something complex enough to deserve a full description in the page body, where sighted readers benefit too and where the text can be structured instead of being read as one continuous run.
What do I write for a purely decorative image?
Write alt="" — the attribute present, the value empty. That marks the image as decoration and assistive technology passes over it. The test for decorative is simple: cover the image and reread the passage. If nothing is lost, it is decoration. Background textures, dividers, and stock photography chosen to break up a wall of text almost always qualify.
Should the alt text repeat the caption?
No. A reader using a screen reader will hear both, one after the other, and a word for word repeat is just noise. If the caption covers the image completely, an empty alt is defensible. If the image contains something the caption skips — the colour of a component, the state of a machine, the text on a sign — that is what the alt is for.
Does alt text help search ranking?
It is one signal among many and a weak one, and writing for it produces worse alt text. Keyword-stuffed alt attributes read badly aloud, which harms the people the attribute exists for, and search engines have long since learned to weigh the surrounding page more heavily. Describe the image accurately and any search benefit follows from that.
Is this a compliance check?
No. It looks for recurring drafting mistakes in a single piece of text. Whether an image is adequately described depends on what the page is trying to say and what the image contributes to it, which is a judgement no pattern matcher makes. Read the Web Content Accessibility Guidelines and the associated techniques for the reasoning, and test with a real screen reader on real pages.