Most sellers think of accessibility as a website problem — keyboard navigation, form labels, focus rings. It is also an image problem, and since June 2025 it is a legal one for anyone selling into the EU. Product photos carry a huge share of the information on a listing: colour, size, what is in the box, the discount, the bundle contents. If that information exists only as pixels, a shopper using a screen reader gets nothing, and increasingly neither does an AI shopping assistant.
This guide covers what actually changed, the four image failures that cause almost all of the problems, where you can and cannot write alt text on each platform, and the contrast numbers to hit when you overlay text on a photo.
What changed: the European Accessibility Act
The European Accessibility Act (EAA) became enforceable across EU member states on 28 June 2025, and e-commerce is explicitly one of the covered service categories. The practical yardstick is the harmonised standard EN 301 549, which in turn points at WCAG 2.2 Level AA.
Three things are worth knowing before you panic:
- New digital offerings had to be compliant from day one. Anything already live when the Act landed generally has a transitional period running to 28 June 2030.
- There is a microenterprise exemption — for services only. It applies if you have fewer than 10 employees AND annual turnover or balance sheet total of no more than EUR 2 million. Both conditions must be met, and the exemption evaporates the moment you outgrow them.
- Selling through a marketplace does not fully transfer the obligation. Amazon or Zalando owns the platform's own accessibility, but the content you supply — images, descriptions, alt text on A+ modules — is yours.
Even if you sell nowhere near Europe, the same fixes reduce returns and help every shopper on a small phone screen in bright sunlight. Treat the law as the deadline, not the reason.
The four image failures that cause most of the trouble
1. Missing or useless alt text
An empty alt attribute on a product photo means a screen reader announces nothing, or worse, reads out the file name — "I M G underscore 4 7 2 2 dot J P G". Auto-generated alt text like "product image" or a repeated product title on all eight gallery photos is barely better: the shopper learns that eight images exist and nothing about what they show.
2. Information that exists only inside the image
This is the big one for marketplace sellers. "Buy 2 free 1", "Ships from Singapore", "Includes 3 filters", "Local warranty" — if that text is baked into a JPEG and appears nowhere in the title, description or bullet points, it does not exist for anyone who cannot see the image. WCAG's 1.4.5 (Images of Text) discourages images of text in the first place; where a marketplace forces you to use them, the rule is simple: duplicate every claim in real text.
3. Low-contrast overlays
White sans-serif text dropped onto a pale product shot looks elegant in your editor and disappears on a phone outdoors. WCAG 2.2 Level AA asks for a contrast ratio of 4.5:1 for normal text and 3:1 for large text (18pt and above, or 14pt bold and above) — and text inside an image is held to the same ratio as live text.
4. Colour as the only cue
A row of unlabelled colour swatches, a size chart where "available" is green and "sold out" is red with no other marker, a diagram where the only difference between two parts is hue. Roughly one in twelve men has some form of colour vision deficiency. Every colour distinction needs a second signal: a label, a pattern, a shape, a text note.
Where you can actually write alt text
Alt text support varies wildly by channel, and it is worth knowing which fields exist before you plan a catalogue-wide project.
| Platform | Seller-controlled alt text? | Limit | Notes |
|---|---|---|---|
| Shopify | Yes, per image | 512 characters (aim for 125 or fewer) | Also available on theme, collection and banner images |
| Amazon A+ Content | Yes — and mandatory | 100 characters | Modules will not submit without it |
| Amazon main gallery | No | n/a | Amazon derives it; your title and bullets do the heavy lifting |
| Etsy | Yes, per listing photo | 250 characters | Editable on web and in the Etsy Seller app |
| Shopee, Lazada, Qoo10, Carousell | No seller-facing field | n/a | Put every image claim into the description text |
| eBay | No dedicated field | n/a | Custom HTML descriptions can carry alt attributes |
| Your own site (WooCommerce, BigCommerce) | Yes, per media item | No hard cap | Same 125-character guidance applies |
The pattern is clear: on your own storefront and on Etsy or Amazon A+, alt text is the fix. On the SEA marketplaces, where no alt field exists, the fix is never letting the image be the only place a fact lives.
How to write alt text that is genuinely useful
Screen readers commonly truncate around 125 characters, and Google weights the opening words most heavily, so front-load the description. A reliable formula:
[colour] [material] [product type] [angle or context]
- Weak: "handbag"
- Weak: "leather handbag women bag shoulder bag tote bag crossbody" (keyword stuffing; reads as noise aloud)
- Good: "Tan leather crossbody handbag with gold hardware, front view"
Vary it across the gallery. If a listing has six photos, write six different descriptions — front, back, strap detail, scale next to a phone, on-model, packaging. Repeating one string six times is technically compliant and practically useless.
Three rules that catch most mistakes:
- Describe the function, not just the file. For a size chart, the alt text should point to the chart data in text form rather than saying "size chart".
- Purely decorative images get an empty alt attribute (
alt=""), not a description. A background texture strip does not need narrating. - Do not start with "image of" or "photo of". The screen reader already announces that it is an image.
Contrast: the numbers to design to
If you produce infographic images, promo banners or feature callouts, check the overlay text against the background it actually sits on — not against a swatch you picked in isolation.
| Element | Minimum ratio (AA) |
|---|---|
| Normal text, including text inside images (under 18pt, or under 14pt bold) | 4.5:1 |
| Large text (18pt+, or 14pt+ bold) | 3:1 |
| Parts of a graphic needed to understand it (arrows, callout lines, chart segments) | 3:1 |
Practical fixes: put text on a solid colour block rather than on the photo, add a subtle scrim behind the text, or increase the font weight and size so the 3:1 large-text threshold applies. Free contrast checkers such as WebAIM's will give you the ratio in seconds — sample the lightest pixel under your text, not the average.
Fitting this into a real workflow
For a catalogue of a few hundred SKUs, do not try to retrofit everything at once. Work in this order:
- Top 20 revenue SKUs first. These get hand-written alt text on every gallery image.
- Audit for text-in-image. Pull your promo and infographic images and list every claim baked into them. Anything not repeated in the description gets added.
- Fix contrast on templates, not files. Most sellers reuse three or four overlay templates. Correcting the templates fixes every future image.
- Standardise sizes as you go. Re-exporting a catalogue is the natural moment to get every channel's dimensions right in one pass; a batch tool like PixelPrep handles the Shopify, Shopee, Lazada, Amazon and Qoo10 sizes from one master file so you are not doing the accessibility pass twice.
- Write alt text at upload time from now on. Retrofitting is expensive; a 20-second habit at upload costs nothing.
Your accessible image checklist
- Every product image on your own site and Etsy has unique, descriptive alt text under 125 characters
- Amazon A+ modules have alt text within the 100-character limit on every image
- No claim, spec, promo or warranty statement lives only inside a JPEG
- Overlay text hits 4.5:1 contrast (or 3:1 if it is large text), checked against the actual background
- Graphic elements needed to understand a diagram hit 3:1
- Colour variants are labelled in text, not just shown as swatches
- Size charts exist as real text, not only as an image
- Decorative images use an empty alt attribute rather than filler text
- You know whether the microenterprise exemption applies to you — and have a plan for when it stops
None of this requires new photography. It requires deciding that the information in your images should also exist as words — which, conveniently, is exactly what search engines and AI shopping agents have been asking for anyway.