WCAGdesk
axe-core: image-alt · WCAG 1.1.1 Non-text Content · Level A

How to fix the “image-alt” accessibility issue

The axe-core image-alt rule fails when an <img> has no alt attribute and no accessible name. Screen readers then announce the file name or nothing — WCAG 2.2 Level A (1.1.1) requires a text alternative, and BFSG/EAA inherit it through EN 301 549.

What axe-core checks

axe-core fails any <img> that has no alt, no aria-label/aria-labelledby, and no role="presentation". An empty alt="" is valid for purely decorative images.

Which standard this maps to

WCAG 2.21.1.1 Non-text Content (Level A)
EN 301 5499.1.1.1
BFSG / EAABFSG § 12 via EN 301 549 · EAA Annex I
CategoryImages & Alt

Why it matters

Product images without alt text make a shop unusable on a screen reader — the buyer cannot tell what they are adding to the cart. It is a Level A failure, the most basic conformance tier, which makes it a clear-cut point in any BFSG complaint.

Common causes

  • Uploaded product images with no alt field filled in
  • Icon images conveying meaning (e.g. a “sale” badge) with no alt
  • CMS templates that drop the alt attribute
  • Decorative images given descriptive alt instead of alt=""

How to fix it

Add a concise alt describing the image's purpose. For decorative images, use an empty alt="" so screen readers skip them.

<!-- Informative image -->
<img src="/shoe.jpg" alt="Red running shoe, side view">

<!-- Decorative image -->
<img src="/divider.svg" alt="">

FAQ

What makes good alt text?

Describe the function or content, not the fact that it is an image. Keep it short; skip “image of”.

When should alt be empty?

When the image is purely decorative and adds no information — use alt="" so it is skipped.

Find every issue like this on your site

Run a free WCAG 2.2 AA scan — real axe-core engine, no signup. Or get a timestamped evidence report for €29.