The purpose, not the pixels
Alt text exists to convey the purpose of an image when the image itself can't be perceived. That's it. Not a detailed visual inventory. Not a paragraph of SEO keywords. The purpose, what the image communicates in context.
A photo of a ripe tomato in a recipe means something different than the same photo in a seed catalog. The alt text should reflect that difference, because the context changes what the image is for.
The spectrum of failure
Missing alt text
No alt attribute at all. The screen reader announces the filename: IMG underscore 4582 dot jpeg, and the user learns nothing. This is the most common image accessibility failure on the web, and tools like eiSEO flag it instantly.
Empty alt text on meaningful images
An empty alt="" tells assistive technology to skip the image entirely. That's correct for decorative images: background textures, visual separators, ornamental icons. It's wrong for any image that conveys information or context. If removing the image would change the meaning of the page, it needs real alt text.
Keyword-stuffed alt text
The SEO world spent a decade teaching people to cram keywords into alt attributes. Screen reader users pay the price: "Best organic farm fresh tomatoes buy organic tomatoes online farm fresh produce delivery." That's not alt text. That's spam with an accessibility violation attached.
Over-description
The opposite extreme: "A close-up photograph of a large red beefsteak tomato sitting on a weathered wooden cutting board next to a chef's knife with a wooden handle, with soft natural window light coming from the upper left." Unless this is on a photography tutorial, the user doesn't need a shot list. They need to know it's a fresh tomato ready to be sliced.
How to write it well
Good alt text follows a few principles:
- Be concise. One sentence, occasionally two. Screen readers process alt text linearly, so shorter is faster.
- Convey function, not form. A chart showing revenue growth needs alt text about the growth, not about the chart's colors and axes.
- Match the context. The same headshot might be "Sarah Chen, VP of Engineering" on a team page and "The author" in a blog sidebar.
- Skip "image of" or "photo of." Screen readers already announce the element as an image. Adding it to the alt text is redundant.
- Use empty alt for decoration. Background patterns, divider lines, and purely ornamental graphics should get
alt=""so screen readers skip them cleanly.
Complex images need more
Some images carry too much information for a short alt attribute. Infographics, data visualizations, and detailed diagrams need a longer description, either in surrounding body text or via an aria-describedby reference to a visually hidden paragraph. The alt attribute provides the summary; the long description provides the detail.
Write for a person, not a crawler
The best test for alt text is simple: read it aloud to someone who can't see the image. If they understand what the image contributes to the page, you've written good alt text. If they're confused or overwhelmed, revise. The harvest is only valuable if people can actually use it.