Open a photo

Check alt text you already haveIs your alt text any good?

Paste the alt text you already have. See what’s wrong and exactly how to fix it — no photo needed.

0 characters
More optionsfile name, caption, decorative

Used for one check: whether the alt text and the file name are the same string.

Used for one check: whether a listener hears the same sentence twice in a row.

The reading

Nothing typed yet. The findings appear as you write, not after a button.

No grade yet

Stops the image working1
  • Stops the image workingThe image has no text alternative at all.Either describe what the image tells the reader, or mark it decorative and ship alt="". Those are the only two correct answers, and a missing attribute is neither.Rule empty

Measured against WCAG 2.1 success criterion 1.1.1 Non-text Content (Level A), which is the criterion GIGW 3.0 inherits when it asks an Indian government site to meet WCAG 2.1 Level AA.

Free · No sign-up · Your text stays in this tab

A writer at a desk comparing a botanical photograph with the braille display beside her keyboard.
Alt text checkBefore: Image of IMG_4021.jpg, photoAfter: A writer comparing a flower print with her braille display.Fixed: file name and “Image of” removed
Checked in this tab. No photo and no alt text is sent.

Paste the value of an alt attribute and read what is wrong with it. Every finding says what the problem is and what to put instead, and the grade is the sum of those findings rather than a score handed down on its own.

Many at once

Paste one alt per line, or a CSV whose first line names an alt column (and a filename column, if you have one) — an export from a CMS or an audit sheet. Every row is graded by the same checker. Up to 2,000 rows; nothing leaves the page.

5 rows read as CSV · A 1 · B 0 · C 2 · D 0 · E 2
Graded alt text, one row per string
Alt textFirst finding and fix
1IMG_4021.jpgIMG_4021.jpgE1This is a file name, not a description.Say what is in the frame. A listener hearing IMG underscore four thousand and twenty-one learns nothing except that nobody wrote the alt text.Rule filename
2harbour.jpgImage of fishing boats in a harbour at dawnC0"Image of" is announced twice.A screen reader says "graphic" or "image" from the element itself before it reads a word of your text, so the listener hears the category, then hears it again. Start at the subject.Rule redundant-prefix
3team.jpgOur team, office, Pune, staff, meetingC05 comma-separated fragments and no verb between them.This reads out as a keyword list, one item at a time, with no sentence to hold them together. Write what is happening in the picture instead; the keywords survive inside the sentence.Rule keyword-list
4kite.jpgA boy flying a red kite on a beach at sunset.A0
5divider.png(empty)E1The image has no text alternative at all.Either describe what the image tells the reader, or mark it decorative and ship alt="". Those are the only two correct answers, and a missing attribute is neither.Rule empty

What a checker can see from the string alone

Quite a lot, as it turns out, and all of it is the sort of thing that survives a careful proofread. Alt text is invisible in a browser. It is not spell-checked by the CMS, it is not reviewed by the designer, and the person who wrote it has almost never heard it read aloud. So the failures that persist are not failures of care — they are failures nobody is in a position to notice.

The checks here divide into three. Some are about what a screen reader adds by itself: the element announces its own role before your text, so an opening that names the image again is heard twice. Some are about how a string is spoken rather than seen: a run of capitals is spelled out by several configurations, a missing full stop removes the pause before the next sentence, a comma-separated list is read as a list. And some are about what the attribute is for at all — a file name, a placeholder, or a description on an image that should have been announced as nothing.

The three findings worth arguing with

Sentence case, the terminal full stop and the character guideline are conventions, and the checker grades them as conventions. It is entirely reasonable to ship alt text with no full stop, and it is entirely reasonable to run to two hundred characters when the picture is a chart. What is not reasonable is doing either by accident, which is the whole argument for saying it out loud and giving it the lowest weight there is.

The 125-character figure is the one most often quoted as though it were law. It appears in no success criterion. It comes from what older screen-reader configurations would read before breaking, and it is a good default for the same reason most defaults are good: it is right more often than it is wrong. The page on length sets out where it came from and which cases are allowed to ignore it.

What this route cannot tell you

  • Whether the description is true. There is no image on this page — only the string you pasted — so a beautifully constructed sentence about the wrong photograph gets an A. The checker measures the shape of the writing, and the shape of the writing is not the same question as whether it matches the picture.
  • Whether the image needed alt text at all. That decision belongs to the page the image sits on: the same photograph is informative next to a paragraph that refers to it and decorative next to one that does not. The decorative switch lets you tell the checker which case you are in; it cannot work that out on its own, and a tool that guessed would be guessing about your page rather than about your string.

Questions people ask

Can I check a whole list of alt text at once?

Yes. In the Many at once section under the checker, paste one alt per line, or a CSV with filename and alt columns exported from a CMS or an audit sheet. Every row is graded with its blocker count, its first finding and the fix; the table sorts by grade, and the findings download as a CSV. Nothing leaves the browser.

What does the grade actually add up from?

A hundred points, minus sixty for anything that stops the image working, eighteen for anything that costs the listener time, and six for a convention. A is ninety and above, E is under forty-five. The numbers are a presentation of the findings and nothing else, so if you disagree with a finding you should disagree with the grade too.

It flagged my alt text and I still think it is right. Now what?

Then it is probably right. Three of the checks here are conventions rather than rules — sentence case, the terminal full stop, the 125-character guideline — and a note is exactly what a convention deserves. The three graded as blockers are a different matter: a file name, a placeholder word and a missing alternative are not stylistic disagreements.

Does it check whether the description is accurate?

It cannot. There is no picture on this route at all — you are pasting a string and getting a reading of the string. Accuracy is the one thing that needs eyes on the image, and it stays a human job here.

Where to take this next

Photographic visual for Check
In this toolCheck