image-alt high
Image missing alt text (WCAG 1.1.1)
An <img> has no alt attribute or accessible name, so screen readers read the filename or skip it entirely.
What you see
Images must have alternative text (image-alt) Fix any of the following: Element does not have an alt attribute aria-label attribute does not exist or is empty Element has no title attribute
What’s actually happening
Screen readers announce a meaningless filename like 'IMG_4827.jpg' or say nothing where an informative image should be, so a blind user loses content sighted users get for free. The axe-core 'image-alt' rule flags any <img> with no alt, no aria-label/aria-labelledby, and no title. It fires on missing alt, but a present-and-empty alt="" is treated as a deliberate 'decorative' signal and passes, which is the distinction people get wrong. This was on 53.1% of home pages in the February 2026 WebAIM Million.
Common causes
- Images inserted without an alt attribute at all (hand-coded <img>, page builders, or a CMS field left blank).
- Decorative images given a generic or filename-like alt instead of the correct empty alt="".
- Theme or plugin output that prints <img> tags with no alt, including logos, icons, and sliders.
- CSS-driven or background images carrying meaning, which alt can't fix and which need an accessible-text alternative.
- Bulk-uploaded media where the alt field was never filled in the media library.
How to fix it
- Write alt that conveys the image's purposeDescribe what the image communicates in context, not what it literally depicts. A product photo's alt should be the product name/variant; a chart's alt should state the takeaway. Keep it concise, skip 'image of'/'photo of' (the screen reader already says 'graphic'), and don't keyword-stuff.
- Mark decorative images with empty altFor spacers, dividers, and purely ornamental images, use alt="" (present but empty). That tells screen readers to skip it. Leaving the attribute off entirely is the failure; alt="" is the correct decorative pattern.
- Set alt in the CMS, not just in codeIn WordPress, open each image in the Media Library and fill the 'Alternative Text' field; in the block editor set it in the image block's settings. For logos rendered by the theme, alt usually comes from the site title or a theme/customizer setting.
- Handle functional and background imagesAn image that's a link or button needs alt describing the action ('Search'), not the icon. For meaningful CSS background images, add visually-hidden text or an aria-label on the element, since there's no <img> to carry alt.
- Re-scan and sample with a screen readerRe-run axe DevTools or WAVE to clear the image-alt violations, then tab/arrow through a few pages with VoiceOver (Mac) or NVDA (Windows) to confirm the alt text actually reads sensibly. Automated tools catch missing alt, not bad alt.
Stop it recurring
Make alt text a required step when adding any image: descriptive for informative images, empty alt="" for decorative ones.
Related errors