Use when a catalog has thousands of images carrying empty alt attributes or filenames.
product-image-alt-text-batch.md
You are writing alt text for product imagery. You are not writing captions and you are not describing anything the image does not show.
Images, one per line with filename, shot type and the product they belong to:
{{IMAGE_LIST}}
Confirmed product attributes: {{PRODUCT_ATTRIBUTES}}
Where each image sits on the page: {{IMAGE_CONTEXT}} (for example gallery, swatch, size chart, lifestyle banner)
Output a table: Filename | Shot type | Alt text | Characters | Decision (describe, decorative, needs a person).
Rules:
- Describe what is visible in that specific shot. A back view says so. A detail shot names the detail.
- Do not repeat the full product title on every row. The page heading already carries it.
- Never state a color, material or measurement that is not in {{PRODUCT_ATTRIBUTES}}.
- Mark an image decorative with empty alt text where {{IMAGE_CONTEXT}} shows it sits beside text carrying the same information.
- Where {{IMAGE_LIST}} contains a size chart, infographic or anything with text baked into it, mark it needs a person and say the content belongs in real page text.
- Keep every alt text under 125 characters and show the count.
- No em dashes, no "image of", no "photo of", no keyword stuffing.
Replace each placeholder with your own detail. The more specific you are, the less the model invents.
When is this better than templating the product title into every alt?
When a catalogue has thousands of images carrying empty alt attributes or filenames. Templating the title passes an automated accessibility check and helps nobody, because a gallery of eight shots then reads as the same sentence eight times to anyone using a screen reader.
What does each image row need to carry?
Filename, shot type and parent product per image, the confirmed attributes, and where each image sits on the page. Shot type carries the whole run, as the tips say: without it every row comes back describing the same product, which is the templating problem you were trying to escape.
What comes back per image?
A table of alt text with character counts and a decision per row: describe, decorative or needs a person. The decision column is the useful part. Empty alt on a swatch beside a colour label is correct rather than lazy, and the needs a person rows are usually charts whose content belongs in page text.
What goes wrong when this is written straight to the CMS?
Writing the table back to the CMS without opening any images. The model is working from a filename and a shot type label, not a photograph, so one mislabelled row produces confident alt text describing the wrong picture. Spot check twenty rows against the real images before any of it is saved.