Image descriptions

Alt text writing in English, German and Turkish for shops, websites and documents

Alt text is the short text alternative a screen reader speaks instead of an image, and what shows when the image fails to load. I write alt text and longer image descriptions in English, German and Turkish for e-commerce catalogues, websites and documents, following the W3C WAI images tutorial: informative, decorative or functional, and always written for the context where the image appears. You receive them as a CSV ready for your shop or developer, and an honest note on what automated checkers can and cannot confirm.

In short

What I do

  • Write alt text for product images, category and banner images, blog and news images, and icons that act as links or buttons — in English, German and Turkish.
  • Decide per image whether it is informative, decorative or functional, and write accordingly — including alt="" where silence is the right answer.
  • Write longer descriptions for charts, diagrams and infographics, and alt text for images in Word, PowerPoint and PDF documents.
  • Review existing alt texts and flag file names, duplicates of captions, keyword lists and descriptions that no longer match the image.
  • Deliver everything as a CSV or spreadsheet keyed to your file names, SKUs or URLs, with a short style note for your team.

Not part of this service

  • Entering the texts into your shop or CMS. The CSV is ready for import by your developer; for WordPress and WooCommerce I can quote the entry separately.
  • Product copy and translation of other content. I write the image alternatives, not product descriptions or page text.
  • Testing with screen-reader users. My work follows the W3C guidance and is checked with automated tools; user testing is a separate discipline.
  • Legal advice. Whether the European Accessibility Act applies to your shop is for your lawyer to decide.

Is this page for you?

This page is for you if one of these describes your situation:

  • You run an online shop selling to consumers in the EU and hundreds or thousands of product images have empty or missing alt attributes.
  • Your alt texts were filled automatically with file names, product titles or keyword lists, and an audit or a customer pointed it out.
  • You sell in more than one language and the alt texts exist only in one — or were machine-translated without anyone looking at the images.
  • An accessibility checker reports “images must have alternative text” and you need the texts, not just the error count.
  • You publish reports, catalogues or presentations with charts and diagrams that need a real description.

Check your own product page in one minute

Open one of your product pages, right-click the main product image and choose “Inspect”. The highlighted code shows the alt attribute.

  • No alt at all: a screen reader may read out the file name or the image address instead.
  • alt="IMG_4521.jpg" or alt="image": present, useless, and accepted by automated checkers — see the worked example below.
  • Alt text identical to the product name in the heading above it: the listener hears the name twice and learns nothing about the product’s look.

An alt text that says what the product looks like — colour, material, shape, what is included — is a good sign. Do the same for one image in a blog post and one decorative banner.

Read on for the detail. Below: how good alt text is decided, a measured before-and-after example with the axe-core results and the CSV deliverable, what checkers cannot judge, and what the European Accessibility Act says about online shops. To skip ahead, send ten images with their page links; I will tell you what is wrong with the current texts and write a few of them as a sample.

How good alt text writing works

Good alt text answers one question: what does this image contribute here? The W3C WAI alt decision tree sorts images into a few types, and each type gets a different kind of text.

Informative images

A photo or illustration that carries information gets a short description of that information. On a product page, that means the product as a buyer sees it; in an article, the detail the paragraph is about. No “image of”, no repetition of the text next to it.

Decorative images

Background textures, dividers and mood images that add nothing to the content get an empty alt attribute, alt="". The screen reader then skips them. A text alt on a decorative strip is noise on every page load.

Functional images

An image that is the only content of a link or button describes the action or destination, not the picture: “Search”, not “magnifying glass”; “Read the post: Night launch at Cape Canaveral”, not “rocket”.

Complex images and images of text

Charts, diagrams and maps need a short alt text plus a longer description nearby, carrying the same data. Images of text should contain the same words in their alt text — or, better, be replaced by real text.

Context decides the text

The same photograph can need two different alt texts. In the worked example, one coffee photo appears on a product page and in an article about espresso crema — and gets a different text in each place, in all three languages.

The same coffee photo in two contexts
LanguageProduct page (describes the product)Article about crema (describes the crema)
EnglishRed glazed cup with a white inside on its matching saucer, filled with espresso, steel teaspoon beside itFreshly pulled espresso with an even, hazelnut-brown crema covering the surface
GermanRot glasierte Tasse mit weißer Innenseite auf passender Untertasse, mit Espresso gefüllt, Teelöffel aus Edelstahl danebenFrisch gezogener Espresso mit gleichmäßiger, haselnussbrauner Crema auf der Oberfläche
TurkishBeyaz iç yüzeyli kırmızı sırlı fincan, aynı renk tabağıyla; içinde espresso, tabakta çelik çay kaşığıYeni çekilmiş espresso; yüzeyi eşit, fındık rengi bir kremayla kaplı

Each language version is written from the image and the page in that language, not translated word by word: German product texts follow German catalogue habits, Turkish ones Turkish usage.

Evidence: one demo page, before and after

This is a measured worked example on a fictional shop page with public-domain and CC0 photographs — not a client job. I built a typical “before” page with the usual alt-text mistakes and an “after” page with corrected alternatives, and ran the axe-core accessibility engine on both. Both pages, the axe results and the CSV can be downloaded below.

Source and license

The five photographs ship with the open-source library scikit-image 0.26.0, whose documentation states the license of each: a coffee cup (CC0, photographer Rachel Michetti), a cat (CC0, Stefan van der Walt), a rocket on the launch pad (SpaceX, public domain), a NASA astronaut portrait (public domain) and a brick texture (CC0). The shop “Örnek Kafe”, its product, price and articles are fictional and labelled as such on the pages. The search icon is a small drawing I made for the page.

What was wrong, and how it was fixed

Eight image uses on the demo page
Image useBeforeAfter
Product photo (coffee cup)no alt attributedescribes the product: colour, glaze, saucer, spoon
Same photo in the crema articlealt="coffee"describes the crema the paragraph is about
Cat photo in an articlealt="image123.jpg"short description of the cat
Astronaut portrait with a captionalt repeated the caption word for wordadds what is visible; the caption keeps name and date
Brick strip in the headeralt="decorative brick wall texture background image"alt="" (decorative)
Rocket hero image (div role="img")no accessible namearia-label with a description
Rocket thumbnail as the only content of a linkno alt attributestates the link destination
Search icon in an otherwise empty buttonSVG with no accessible name“Search”

What axe-core reports

axe-core 4.13.0, run in headless Chromium 141 with its default rule set, found 5 violated rules on 6 elements on the before page, and none on the after page.

axe-core 4.13.0 results, measured on 28 September 2026
RuleImpactBeforeAfter
image-altcritical2 elements0
button-namecritical1 element0
link-nameserious1 element0
role-img-altserious1 element0
svg-img-altserious1 element0
Total5 rules, 6 elements0 violations; 42 rules passed
Summary of axe-core 4.13.0 results. Before: 5 rules and 6 elements — button-name critical 1, image-alt critical 2, link-name serious 1, role-img-alt serious 1, svg-img-alt serious 1. After: 0 violations. A note below lists the bad alt texts axe did not flag.
Summary I generated from the two axe JSON results; the complete results are in the downloads.

What axe-core does not report

On the before page, axe’s image-alt rule passed four alt texts that are plainly wrong. A checker can confirm that an alternative exists; it cannot tell whether it is right.

File names

alt="image123.jpg" passed. A screen reader reads it aloud, digits and all.

Empty words

alt="coffee" passed. It is not wrong, just useless for a paragraph about crema.

Caption duplicates

An alt text that repeats the visible caption passed. The listener hears the same sentence twice.

Decorative images with text

The brick strip’s long alt text passed. Whether an image should be decorative is a judgement, not a rule a checker can run.

Checkers also cannot judge accuracy (does the text match the image?), context (does it say what matters on this page?), language, or whether a chart description carries the same data as the chart. That is the part of the work a person does. I did not test the pages with a screen reader; the pages are in English, with the German and Turkish texts delivered in the CSV.

The deliverable: one CSV row per image use

The CSV has one row per image use — 8 in the example — with the columns filename, context, image_type, alt_tr, alt_de, alt_en, decorative, the “before” value, source and license, and notes explaining each decision. In your project the key column is whatever your system uses: file name, SKU, media ID or page URL.

Alt text worked example — downloads
FileWhat it isSize
Worked example (ZIP)Before and after HTML pages (images embedded), both axe-core JSON results, the CSV, web-size images, findings695 KB
Alt text deliverable (CSV)8 rows, English, German and Turkish, UTF-84.9 KB
axe-core summary (PNG)Before and after results side by side123 KB

What you receive

You receive finished alt texts in the languages you need, in a file your system can take, with the reasoning written down.

  • A CSV or spreadsheet with one row per image use: key column, context, image type, alt text per language, a decorative flag and notes.
  • Longer descriptions for charts, diagrams and infographics, placed where your page or document can show them.
  • A review list of existing alt texts that should change, and why.
  • A one-page style note for your team: length, tone, what to leave out, how to handle new products.
  • An axe-core check of sample pages before and after, if the texts are already live.

How the work runs

You send a small real sample first; the price is fixed before the full set starts.

  1. Send ten images with their page links — or a product export with image URLs. I review the current texts and write a few as a sample in the languages you need.
  2. You receive a scope and a fixed price for the full set, before anything starts.
  3. I write the texts. You receive a preview CSV marked as such, to check with your product or content team.
  4. Your approval releases the final file and the style note.

Pricing

I price each job after I have seen the material. A series of similar packshots goes faster than a mix of lifestyle photos, infographics and charts, and each additional language adds real writing, not a copy. You get a fixed price for the set before any work starts — no hourly meter.

Why this matters now

Since 28 June 2025, e-commerce services offered to consumers in the EU fall under the European Accessibility Act, and missing text alternatives are among the most common failures. What that means for a particular shop is a legal question; this page covers the technical side.

Shops outside the EU — in Türkiye, the UK, the US — meet this through their sales to EU consumers. And alt text is not only for screen readers: it is shown when images fail to load and is read by search engines to understand what an image shows.

Frequently asked questions

Our site passes an automated accessibility check. Are our alt texts fine?

Not necessarily. Automated checkers confirm that an alternative exists, not that it is right. In the worked example, axe-core accepted alt="image123.jpg", alt="coffee", a copy of the caption and a text alt on a decorative image.

How long should an alt text be?

As short as possible while still carrying what the image contributes; WCAG sets no character limit. In the worked example the English alt texts for informative photos are 79 to 106 characters, and the functional link text is 45. Complex images get a short alt text plus a longer description.

Should alt texts contain SEO keywords?

They should describe the image accurately, in the words your customers use. An accurate description of a product usually contains its natural search terms anyway. Keyword lists in alt text make the page worse for screen-reader users.

Does the same image always get the same alt text?

No. Alt text depends on why the image is on the page. In the worked example, one coffee photo gets a product description on the product page and a description of the crema in the article.

When should the alt text be empty?

When the image is decorative, or when the same information is already in text right next to it — for example an image inside a link that also contains the link text. Then alt="" is correct; leaving the attribute out entirely is not.

Do you translate alt texts, or write each language?

I write each language from the image and the page in that language. The facts stay the same across languages, but word order, catalogue terms and length follow each language’s own habits.

Can you deliver in a format our shop can import?

Yes. I deliver CSV or a spreadsheet keyed to whatever your system uses — file name, SKU, media ID or URL — with the columns your developer asks for. Importing the file is usually done by your developer; for WordPress and WooCommerce I can quote it separately.

Related services

Send me ten images

Ten images with their page links — ideally a mix of product photos, article images and the banner nobody thinks about. You get back a straight account of what is wrong with the current alt texts, and a few rewritten as a sample in the languages you need.

Ali Karabüyük · Tekirdağ, Türkiye · working remotely with clients worldwide · document and image production since 2004, professional practice since 2008.