---
title: "Image without `alt` (lint/missing-alt)"
description: "lint/missing-alt: Screen readers announce the file name (or nothing), image search can't index it and Lighthouse/axe fail the page."
canonical: https://void-design.vercel.app/rules/lint/missing-alt
lastModified: 2026-09-16
---

# Image without `alt`

`lint/missing-alt` · severity **error** · category Lint · detected by `void lint` and `void audit`

## Why it matters

Screen readers announce the file name (or nothing), image search can't index it and Lighthouse/axe fail the page. `next/image` also warns at runtime.

## How to fix it

Describe what the image communicates in `alt`. Use `alt=""` only for purely decorative images.

## Example

```tsx
<Image src={chart} alt="Revenue grew 42% quarter over quarter" />
<img src="/divider.svg" alt="" />
```

## References

- https://www.w3.org/WAI/tutorials/images/decision-tree/

## More lint rules

`void lint` reports 67 rules in this category. Static source checks with no browser: Tailwind v4 silent failures, Next.js 16 API traps, React render-body bugs, accessibility markup, SEO files and motion hygiene.

- `heavy-import` Heavy dependency imported into client code — [lint/heavy-import](https://void-design.vercel.app/rules/lint/heavy-import)
- `img-raw` Raw `<img>` in a Next.js app — [lint/img-raw](https://void-design.vercel.app/rules/lint/img-raw)
- `img-missing-dimensions` Image without width/height (or fill / aspect-ratio) — [lint/img-missing-dimensions](https://void-design.vercel.app/rules/lint/img-missing-dimensions)
- `image-priority-deprecated` `priority` on `next/image` is deprecated in Next 16 — [lint/image-priority-deprecated](https://void-design.vercel.app/rules/lint/image-priority-deprecated)
- `google-fonts-link` Google Fonts loaded via `<link>` / `@import` — [lint/google-fonts-link](https://void-design.vercel.app/rules/lint/google-fonts-link)
- `font-display` `@font-face` without `font-display` — [lint/font-display](https://void-design.vercel.app/rules/lint/font-display)
- `too-many-font-families` More than 3 font families loaded — [lint/too-many-font-families](https://void-design.vercel.app/rules/lint/too-many-font-families)
- `script-strategy` Third-party script loads too early — [lint/script-strategy](https://void-design.vercel.app/rules/lint/script-strategy)

Detected by `void lint` and `void audit`. Explain it in a terminal: `void rules lint/missing-alt`
