Skip to content

Images missing alt text

One or more images are missing the alt attribute entirely. This is different from alt="" — an empty attribute is a valid way to mark a decorative image, telling screen readers to skip it. A completely absent alt is an error.

Google cannot understand what an image contains without alt text, so those images are excluded from Google Image search results. Missing alt also fails WCAG 1.1.1, meaning screen reader users receive no information about the image content.

For every image, decide whether it conveys meaning or is purely decorative, then handle it accordingly.

Meaningful image — describe the content:

<img src="/team/sarah-chen.jpg" alt="Sarah Chen, Head of Design" />

Decorative image — add an empty alt explicitly:

<img src="/decorative-wave.svg" alt="" />

Framework-specific examples follow the same logic with different components:

import Image from 'next/image'
// Meaningful — the alt prop is required by Next.js TypeScript types
<Image src="/team/sarah-chen.jpg" alt="Sarah Chen, Head of Design" width={400} height={400} />
// Decorative — pass an empty string
<Image src="/wave.svg" alt="" width={200} height={50} />
<!-- Meaningful -->
<img src="/team/sarah-chen.jpg" alt="Sarah Chen, Head of Design" />
<!-- Or using the Astro Image component -->
<Image src={sarahChenImage} alt="Sarah Chen, Head of Design" />
<!-- Decorative -->
<img src="/wave.svg" alt="" />
<!-- Meaningful -->
<img src="/team/sarah-chen.jpg" alt="Sarah Chen, Head of Design" />
<!-- Meaningful — using enhanced:img -->
<enhanced:img src="/team/sarah-chen.jpg" alt="Sarah Chen, Head of Design" />
<!-- Decorative -->
<img src="/wave.svg" alt="" />
<!-- Meaningful -->
<NuxtImg src="/team/sarah-chen.jpg" alt="Sarah Chen, Head of Design" />
<!-- Decorative — plain img is fine for SVG icons -->
<img src="/wave.svg" alt="" />
<!-- Meaningful -->
<img src="/team/sarah-chen.jpg" alt="Sarah Chen, Head of Design" />
<!-- Decorative -->
<img src="/wave.svg" alt="" />

Re-run the audit:

Terminal window
npx orino audit https://yourdomain.com

The check finds every <img> on the homepage where the alt attribute is absent. Once all images carry an explicit alt (even alt=""), the check passes.