How to write accessible ALT text?

Still have a question, spotted an error, or have a better explanation or a source we should cite?

Good alt text answers one question: if someone can't see this image, what do they need to know? For a product photo, that's the product name and key details. For a decorative divider or spacer, the answer is nothing. That's when you use empty alt (alt="").

Here's what makes alt text work. Be concise. Aim for under 125 characters, but don't sacrifice meaning to hit that number. Describe the function first. "Buy now button" beats "blue rectangle." Include key information that changes the meaning. A price, a product name, a call-to-action. Skip the obvious. Don't start with "Image of" or "Photo of." Your screen reader already says it's an image. For purely decorative elements. dividers, spacers, flourishes. use empty alt (alt="") so screen readers skip them. And here's what kills accessibility: omitting the alt attribute entirely. That's worse than leaving it empty.

Alt text is content strategy. You're deciding what information matters for understanding the email without seeing the image. A hero banner might need substantial alt text. An icon next to a word might just clarify function. A decorative element needs nothing.

Next step: Open one of your recent emails. Find every image. Ask yourself: if this image didn't load, would the reader still understand the message? If no, write alt text. If yes, use alt="" for decoration. Test it by previewing the email with images off in your email client.

Related: email accessibility, screen readers.

Contributors

Who worked on this answer

Every name links to their profile. Every company links to their site. Real people, real accountability.

Ask an AI · tailored to your setup

Get alt text examples for your email type.

I read about writing alt text on the Email Almanac. Key takeaway: Alt text answers the question 'If this image didn't load, what would the reader miss?' For a product image: include the product name and key details. For a decorative element: use empty alt (alt=""). Keep it under 125 characters. Start with function, not appearance. Now help me do this for MY emails: 1. What's a good alt text example for my product type? 2. Should I write alt text differently for email vs. web? 3. How do I know if my alt text is actually being read by screen readers? 4. What's the fastest way to audit existing images in my templates? --- My details: - Email platform/ESP: Mailchimp / SendGrid / HubSpot / Klaviyo / other - Image types you use: product photos / promotional banners / icons / mixed - Current challenge: [don't know what to write / can't test / templates are old] - Template tool: ESP builder / MJML / custom HTML

Edit the yellow boxes, then send to the AI of your choice.