Alt Text Checker

Audit image alt text in HTML: missing, empty, file names and links.

About this tool

Paste HTML from view-source, a template or your CMS. Every image, image input, image-map area and role="img" element is listed with its alt text and a verdict (good, decorative, to improve or problem), plus a summary count.

Writing alt text that works

Alt text replaces an image for people using screen readers, appears when images fail to load, and helps search engines understand images. WCAG 1.1.1 requires a text alternative for every meaningful image. The checker flags the common failures. A missing alt attribute may make screen readers read out the file name. File names and placeholders such as "IMG_2041", "image" or "logo.png" tell listeners nothing. "Image ofโ€ฆ" prefixes are redundant, because screen readers already announce an image. Very long descriptions belong in a caption or nearby text. Worst of all is a linked image with no text, such as an icon link with alt="", which leaves the link with no accessible name. An empty alt="" is right for purely decorative images like dividers and background flourishes, so those are marked decorative rather than wrong. For SVGs used as images, role="img" needs an aria-label or a <title>. Good alt text describes an image's purpose in context: for a linked image, where the link goes, and for a chart, its key takeaway. Honest limits: software can't judge whether an alt actually matches the picture, so review the list in context. CSS background images aren't checked. The heading structure checker, the contrast checker and the SEO meta analyzer are related.

Frequently asked questions

When should alt text be empty?

For purely decorative images that add no information. Use alt="" so screen readers skip them.

How long should alt text be?

Usually a short sentence. Put longer descriptions in a caption or the surrounding text.

Should alt text start with 'image of'?

No. Screen readers already announce that it's an image.

Is anything uploaded or fetched?

No. What you paste is processed in your browser, and nothing is fetched, stored or sent.