Personalized Images and Accessibility: Why Generic Alt Text Fails

Every guide to email images tells you to write alt text. Almost none of them mention what happens when the image is different for every recipient.

If your banner says "Welcome back, Sarah" and your alt text says "welcome banner", then Sarah - if she uses a screen reader, or if her client blocks images - receives a generic email. The personalization you paid for is invisible to precisely the people who most need the message to work without pictures.

This is a specific failure mode of personalized images, and it is straightforward to fix once you see it.

The problem in one line

Personalization that exists only in pixels does not exist for everyone.

A screen reader cannot read text inside an image. Neither can a person whose client blocked the image, which on Outlook desktop is the default. For both groups, the alt text is the email.

So when the image is personalized and the alt text is not, the personalization simply does not reach them. Worse, the message may not make sense at all - if the image carried the greeting, the offer or the call to action, the alt text needs to carry it too.

Write alt text that personalizes

The fix is to put the same merge tags in the alt attribute that you put in the image URL.

Instead of:

<img src="https://media.okzest.com/img?c=...&name={{ first_name }}" alt="Welcome banner" />

Write:

<img src="https://media.okzest.com/img?c=...&name={{ first_name }}"
     alt="Welcome back, {{ first_name }}"
     width="600" />

The alt text now delivers the same message as the image. A screen reader announces it, an images-blocked reader sees it, and both get the personalization rather than a description of a graphic they cannot see.

Use the same fallback you used in the URL. If your image URL has {{ first_name|default:'there' }}, your alt text needs it too - otherwise you fix the picture and break the description.

What good alt text looks like

Describe the message, not the picture. The purpose of alt text is to convey what the image communicates, not what it looks like. "Welcome back, Sarah - your dashboard is ready" is useful. "Blue banner with white text and a logo" is not.

Do not start with "Image of" or "Picture of". Screen readers already announce that it is an image. Adding it wastes the listener's time on every single image.

Keep it to a sentence. Alt text is announced in one continuous run with no punctuation pauses to speak of. Long alt text is exhausting to listen to.

Use alt="" for genuinely decorative images. A divider line or a background flourish should be explicitly marked empty so screen readers skip it. An empty alt attribute is meaningfully different from a missing one - a missing alt may cause some screen readers to read out the filename or URL, which for a personalized image URL is a long string of parameters.

Do not repeat adjacent text. If the paragraph underneath already says "Welcome back, Sarah", the alt text saying the same thing means it is announced twice.

The wider accessibility picture

Alt text is the personalized-image-specific issue, but it sits inside a larger one.

Do not put essential information only in an image. The offer, the code, the deadline, the call to action - if any of those exist only as pixels, a proportion of your audience never receives them. Put them in HTML text as well. This also solves the Outlook problem and the discount code problem covered in our coupon codes article.

Avoid all-image emails. An email that is a single large graphic is inaccessible to screen readers, invisible with images blocked, and unreadable when scaled on a small screen. It is also the pattern most associated with bulk marketing by filtering systems.

Check contrast in the image. Text rendered inside your template needs sufficient contrast against its background - the usual guidance is at least 4.5:1 for body-size text. This is easy to lose when a personalized name sits over a photographic background that varies.

Watch text size. Text inside an image does not reflow or scale with the reader's settings the way HTML text does. Someone who has increased their font size gets no benefit from your image. Another reason not to put the important words in it.

Use real HTML structure around the image. Headings, lists and links as actual elements rather than baked into graphics.

There is now a regulatory dimension

The European Accessibility Act has applied since 28 June 2025. It requires businesses above a small-company threshold selling into the EU to make digital services accessible, and marketing email falls within scope for organisations it covers.

Practically, the expectations align with what is already good practice: descriptive alt text on meaningful images, empty alt on decorative ones, sufficient contrast, proper heading structure, and not relying on images to carry the message.

This is general information rather than legal advice - if you sell into the EU it is worth taking proper advice on whether and how it applies to you.

The useful framing is that accessibility work is not compliance overhead. Everything on the list above also improves the email for people with images blocked, people on slow connections, people scanning on a phone, and people reading in bright sunlight. It is the same work.

Testing it

Send yourself a test and turn images off. The fastest, cheapest check there is. Does the email still make sense? Does it still feel personalized?

Read the alt text aloud. If it sounds strange spoken, it sounds strange announced.

Try an actual screen reader. VoiceOver is built into macOS and iOS, Narrator into Windows, and NVDA is free. Ten minutes with one is more instructive than any checklist.

Check with a long name and a missing name. Both should produce sensible alt text, not a gap or a raw merge tag.

Check contrast on the rendered image, particularly where personalized text sits over a photograph.

Frequently asked questions

What should the alt text be for a personalized image? The message the image conveys, including the personalization. Use the same merge tags in the alt attribute as in the image URL, with the same fallback values - so alt="Welcome back, {{ first_name|default:'there' }}" rather than alt="welcome banner".

Can screen readers read text inside an image? No. Text rendered as part of an image is invisible to screen readers. Only the alt text is announced, which is why generic alt text on a personalized image loses the personalization entirely.

Should decorative images have alt text? They should have an explicitly empty alt attribute, alt="", so screen readers skip them. That is different from omitting the attribute, which can cause some readers to announce the filename or URL.

How long should alt text be? About a sentence. It is announced in one continuous run, so long alt text is tiring to listen to. If you need more than a sentence, the information probably belongs in the email body.

Does the European Accessibility Act apply to marketing email? It has applied since 28 June 2025 to businesses above a small-company threshold providing services in the EU, and marketing email falls within scope for organisations it covers. Whether and how it applies to you specifically is a question for legal advice.

Is an all-image email ever acceptable? Rarely. It is inaccessible to screen readers, blank when images are blocked, hard to read scaled on a phone, and the pattern most associated with bulk mail by filtering systems.

What contrast ratio should text in my image have? At least 4.5:1 against its background for body-size text is the usual guidance. Worth checking specifically where personalized text sits over a photographic background, since contrast can vary across the image.

Does accessible email hurt design? No. The constraints - readable contrast, real text for important content, meaningful alt text - are the same ones that make an email work when images are blocked or read on a phone in sunlight.

Start by turning images off

The single most useful thing you can do is send yourself your next campaign and view it with images disabled. That takes a minute and shows you exactly what a large share of your audience receives.

If the email still makes sense and still feels addressed to the reader, your alt text is doing its job. If it reads as a generic template, that is what those recipients are getting.

OKZest generates the image; the alt text is yours to write, and it is worth writing properly. Put the same merge tags in it that you put in the URL.

Create a free account, no credit card required.


Sources


Related reading: how personalized images behave across email clients, unique coupon codes in email images, put every recipient's name inside your email image.