Alt texts

Image descriptions for Google and screen readers — generated, from a template or by hand, and translated.

The walkthrough for this topic is being recorded. Until then, the text below covers everything.

Where alt texts live

You edit alt texts on the image in the Image Variant Manager, in the editor for collection and article images, and collectively in the bulk editor, where every row of the Images row type is one image — product images as well as images from your file library.

An alt text you type in the Image Variant Manager is not saved when you leave the field: it stays a draft until you press “Save” at the top, like every other change on the page. “Discard” takes it back. If saving fails for an image, the info box tells you why, your text stays in the field and is sent again with the next “Save”. If you already gave an alt text to an image you have only just added, the same “Save” saves it too, as soon as Shopify has created the image. If you switch language, market or product while alt texts are unsaved, the app asks first; while an alt text you accepted or translated with an AI button is still being saved, the app does not switch but asks you to wait a moment and then switch again. Alt texts you sent with “Save” do not hold up a switch — they finish saving for the product, language and market you sent them for. In the main language the alt texts apply to every market, so switching the market there does not ask. If you delete an image, its unsaved alt text goes with it. A YouTube/Vimeo link or a 3D model added to a variant has no alt text — its box says so instead.

With AI

The AI writes one alt text per image and shows it as a suggestion under the alt text field — exactly as for every other field. Nothing is saved yet: “Accept” saves that one alt text for the image straight away, “Accept & Translate” (main language only) saves it and then translates it into all other languages — the translation only starts once the saving has worked — and “Decline” throws the suggestion away. The suggestion belongs to the image, language and market where you generated it and disappears when you switch product. A translation into the language that is open is saved for that one image straight away, without a suggestion; alt texts you typed for other images stay drafts. For an image that has not been saved itself yet, these buttons are locked until you save it. “Translate” in another language always starts from the saved main-language alt text, not from what is in the field — so it stays locked, with a hint, for an image that has no main-language alt text yet. For a library file that only sits in a variant gallery the page does not know its alt text: there the button stays usable, and if the main-language alt text is missing, the info box says so. “Translate to all languages” writes to the other languages straight away — which is why that button is only available while the main-language alt text has no unsaved changes. With image sharing on, it sees exactly that one image — and does not describe one that merely happens to sit next to it.

With templates

Alt text templates define a text per image position and language, such as “Elegant {Color} ceramic flower pot” for the main image, and apply it to every variant in one pass.

Translating

Alt texts are translated into every language like any other field, and refreshed by the same rules when the original changes. With a market selected in the editor, the Image Manager shows that market's alt texts (the language's own text where the market has none) and saves changes for that market only. “Translate to all languages” always writes the language's own text, which markets without their own text also use.

Only an alt text that exists in the main language can be translated. Where an image has none there yet, its alt text field is locked in the other languages and says so — enter it in the main language first and save.

For an image from your file library that belongs to no product — for example one you picked into a variant gallery — a changed main-language alt text removes its translations in all other languages, because they would describe text that no longer exists. Enter the translations again afterwards. If you have switched off deleting translations when the original changes (Settings → Translations), they are kept.