Image Alt Auditor
Paste one page of HTML and get every image that fails the alt check, split into real WCAG errors and cosmetic warnings, with paste-ready fixes.
22.1% of the 104 live sites in our public audit fail the image-alt check, and most failures are not a missing attribute — they are alt="hero.jpg", "image of …", or an empty alt on the only content of a link. Paste one page's HTML and this separates real accessibility errors from cosmetic ones.
How to use
Open one page in your browser, View Source, select all and copy the markup, then paste it into the box and press Check images. The tool counts every img element, flags the ones with no alt attribute at all, the ones whose alt is really a file name or a generic word such as logo, the ones that start with image of, the ones over 125 characters, and the ones that repeat alt text already used earlier in the page. Each problem is listed with its number, its src and a one-line explanation, followed by a suggested alt attribute you can paste back into the source. The score subtracts ten points per error and three per warning, and the checkbox decides whether an empty alt counts as decoration or as a warning.
FAQ
Why is alt="" sometimes fine? An empty alt is the correct way to mark a purely decorative image, and screen readers skip it. It only becomes an error when the image is the entire content of a link, because then the link has no accessible name at all. Why is my alt text reported as a file name? If the alt matches the src file name, or is one of the generic words like logo, icon or banner, it carries no information, which is the same outcome for a screen-reader user as having no alt. What is wrong with image of a dog? Screen readers already announce the element as an image, so the prefix is read twice; the alt should describe the content directly. Does this check img elements inside picture or svg? It reads img tags in the markup you paste; inline svg needs role="img" plus a title child, which is a different fix. Why do I get no img elements found? Some frameworks render images from JavaScript, so the raw source has none; use Inspect, Copy outerHTML on the rendered container instead.
Privacy: every calculation runs inside your browser. Your files and text never leave your device.