Image without alt text (image-alt)

The image-alt rule flags <img> elements that have no text alternative at all, so assistive technology has nothing to announce but "image" or the file name. The fix is an alt attribute on every image: a short description when the image carries information, and an empty alt="" when it is pure decoration.

What the rule means

WCAG 1.1.1 requires a text alternative for every piece of non-text content that conveys something. For an <img>, that is almost always the alt attribute. The alternative should say what the image contributes in its place on the page – not describe every pixel.

axe accepts any of these as a text alternative: an alt attribute (including an empty one), aria-label, aria-labelledby, a title attribute, or role="none"/role="presentation". It reports an image that has none of them, and an alt that holds only a space – screen readers do not all ignore that. Images hidden with aria-hidden="true" or display: none are skipped.

What axe cannot do is read the image. alt="IMG_2041.jpg", alt="picture" or a description of the wrong photo all pass the rule. Whether the text is right stays a human judgement, which is why the fact box above says "partly".

Who is affected

Blind people using a screen reader or a braille display hear "image" or a file name instead of the content. People on slow connections or with images switched off see the alternative text in place of the picture, and voice-control users cannot name an image link that has no text. Missing alternative text is the second most common failure on the web: the WebAIM Million 2026 found it on 53.1% of the top one million home pages [3].

Why the check fails

  • CMS uploads where the "alternative text" field is optional and left empty – the template then prints <img> with no alt at all.
  • Theme templates and page builders that output product, teaser or team images without an alt attribute, even when the editor filled one in.
  • Sliders, galleries and lazy-loading scripts that build <img> elements in JavaScript and drop the attribute.
  • Linked images – a logo or product tile inside <a> with no alt, which also leaves the link without a name.
  • Tracking pixels and spacer images (1 × 1 px), which are visible to axe and need alt="".

How to fix it

  1. Decide per image: does it carry information the text around it does not? If yes, describe that information in a short phrase. If no, use alt="".
  2. For a linked image, the alt names where the link goes ("Home", "Running shoe Aero 3 – details"), not what the picture shows.
  3. Fix it where the markup comes from – the template or component – and make the alternative text field required in the CMS for content images.
<!-- Before: no alt – screen readers announce the file name -->
<img class="team-photo" src="/images/team-berlin.jpg" width="640" height="360">
<!-- A decorative divider, also without alt -->
<img class="divider" src="/images/divider-wave.svg" width="200" height="12">
<!-- After: the photo is described in its context -->
<img class="team-photo" src="/images/team-berlin.jpg" width="640" height="360"
     alt="Our six-person support team at the Berlin office">
<!-- Decorative: alt="" tells screen readers to skip it -->
<img class="divider" src="/images/divider-wave.svg" width="200" height="12" alt="">

A complex image such as a chart gets a short alt plus the full information in the text next to it or in a data table, not a 300-word attribute.

How to test it manually

  1. Open the page and list its images – in Firefox's accessibility inspector or with the free WAVE browser tool, which shows each image's alternative next to it.
  2. For every image, read the alternative text without looking at the picture. Does it tell you what you need at that point on the page?
  3. Check linked images and image buttons: does the alternative say where the link leads or what the button does?
  4. Turn on a screen reader (NVDA on Windows, VoiceOver on macOS) and move through the page. Listen for file names, "graphic", or descriptions that repeat the caption word for word.

1.1.1 Non-text Content, Level A. Related: 2.4.4 Link Purpose (In Context) for images that are the only content of a link, and 1.4.5 Images of Text for text set as a picture.

How Reviseberg reports it

Reviseberg runs image-alt on every crawled page at 1280px. The issue list shows the rule with its severity, WCAG criterion and level, the number of images and pages affected, and the points you get back by fixing it. The detail view gives the CSS selector, the HTML snippet and every page the image appears on – a logo in the header shows up once per page, and one template change fixes all of them.

For missing alt text, Reviseberg can also propose alt text with AI. A proposal is a suggestion: a person reads it, edits it and accepts or rejects it, and nothing is written into your site automatically. Findings you disagree with can be marked "ignore", "can't fix" or "false positive" with a reason; every decision is logged. A clean result here never marks 1.1.1 as passed: only a person can confirm the alternatives are right.

  • undefined – image buttons (<input type="image">) without a text alternative.
  • undefined – elements with role="img" that have no name.
  • undefined – inline SVG graphics without a text alternative.
  • undefined – links with no text, often an image link without alt.

Find every image without alt text on your site – get a free scan

Frequently asked questions

Is an empty alt attribute allowed?

Yes, and for decorative images it is the right answer. alt="" tells assistive technology to skip the image. Leaving the attribute out is what fails: then many screen readers read the file name instead.

How long should alt text be?

As short as it can be while still doing its job – usually a phrase or one sentence. Don't start with "Image of"; screen readers already say it is an image.

Does the alt text of a logo need the word "logo"?

Usually the company name is enough, for example alt="Example Ltd". If the logo links to the home page, alt="Example Ltd – home" says where it goes.

Can AI write alt text for me?

It can propose a starting point. Only a person who knows why the image is on the page can tell whether it is decorative or what it needs to say, which is why Reviseberg treats AI alt text as a suggestion to review, never as a fix.

Sources

  1. W3C, Understanding SC 1.1.1 Non-text Content – https://www.w3.org/WAI/WCAG22/Understanding/non-text-content
  2. Deque University, axe-core 4.13 rule image-alt – https://dequeuniversity.com/rules/axe/4.13/image-alt
  3. WebAIM, The WebAIM Million (2026) – https://webaim.org/projects/million/
  4. W3C WAI, Images Tutorial: an alt decision tree – https://www.w3.org/WAI/tutorials/images/decision-tree/
  5. WHATWG, HTML Standard: requirements for providing text to act as an alternative for images – https://html.spec.whatwg.org/multipage/images.html#alt

See what a scan finds on your site

One page in about thirty seconds, no email needed. The full report covers up to 100 pages and a keyboard journey.