image-alt · WCAG 1.1.1 Non-text Content · Level AHow 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.2 | 1.1.1 Non-text Content (Level A) |
| EN 301 549 | 9.1.1.1 |
| BFSG / EAA | BFSG § 12 via EN 301 549 · EAA Annex I |
| Category | Images & 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
Describe the function or content, not the fact that it is an image. Keep it short; skip “image of”.
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.