Image Alt Text Template Generator
Build alt text templates that describe images for accessibility and image search. Edit them to match the actual photo.
Runs in your browser. Nothing you enter is uploaded.
Overview
Alt text has two audiences that want the same thing. Someone using a screen reader needs to know what the image conveys; a crawler needs to know what the image is about. Both are served by a short, specific, honest description - and neither is served by a keyword list or by the filename the camera assigned.
This tool builds alt text from templates. Enter a product or page name and optional keywords, and it assembles a set of candidate phrasings by combining them in various orders. A bulk field takes one name per line and produces a first-pass description for each.
The word to hold onto is candidate. These are string combinations, not descriptions - nothing here has looked at your image - and the honest way to use them is as a starting structure that you then correct against what is actually in the picture.
Templates as a floor, not a finish
A templated description gets you above the worst outcome, which is no alt attribute at all or an attribute containing "IMG_4471.jpg". For a catalogue of two hundred product shots that all look broadly alike - object, white background, front three-quarter view - a template is very close to what a human would have written, and generating it in one pass is a legitimate use of an afternoon.
It stops being adequate the moment the images differ from each other in ways that matter. A lifestyle photograph of the same product in use, a size-comparison shot, a detail crop of the stitching, and a packaging shot all deserve different descriptions, and giving them the same templated string tells a screen-reader user that four identical images are present when in fact each carries different information.
So the workflow that respects both audiences is: template the bulk, then rewrite the ones that carry unique information. In practice that is usually the hero image, anything containing text, anything where the image is making an argument the surrounding copy does not make, and any diagram or chart.
- Describe what the image conveys in context, not everything visible in it.
- Skip "image of" and "photo of" - assistive technology already announces that it is an image.
- Aim for roughly 8 to 15 words; long descriptions get truncated by some screen readers.
- Purely decorative images should carry an empty alt attribute, not a description.
The bulk column and where it earns its keep
The bulk field takes filenames or names one per line and returns one description each, using the same first template for every row. That uniformity is the point - it produces a consistent, predictable string you can paste into a spreadsheet column and import, which is how alt text actually gets applied at scale in a product catalogue or a content management system.
What it means in practice is that the keywords you enter apply to the whole batch. That works when the batch genuinely shares attributes: forty photographs of the same product in different colours, or a set of images all belonging to one category. It fails when you paste a mixed list, because "noise cancelling, over-ear, black" will be appended to a description of your office building.
Split the work by batch rather than by tool, then. Group images that share attributes, run each group with its own keywords, and handle the one-off images individually. That is more passes through the tool and considerably less rewriting afterwards.
How the template list is assembled from a name and keywords
Five base phrasings are built from the name alone - the name followed by "product photo", the name followed by "image", "Photo of" plus the name, the name with a high-quality-product-image suffix, and the name on a white background. These exist so that a name with no keywords still yields a usable set.
Your keywords are then split on commas, semicolons, and newlines, trimmed, and emptied of blanks. For each keyword, three further phrasings are added: the name joined to the keyword with a dash, the keyword joined to the name with a dash reversed, and the name and keyword followed by "product photo". If there are two or more keywords, one additional phrasing joins the first two with "and". The whole list is then deduplicated, so a keyword that happens to repeat a word in the name does not produce two identical entries.
The bulk column runs the same builder for each line and takes the first result - the "product photo" phrasing - falling back to that construction directly if the builder returns nothing. There is no model, no image analysis, and no network request: the tool has no access to the image files at all and is combining strings you typed.
One product name expanded into a template set
Input
Name: Wireless Bluetooth Headphones Keywords: noise cancelling, over-ear
Output
Wireless Bluetooth Headphones product photo Wireless Bluetooth Headphones image Photo of Wireless Bluetooth Headphones Wireless Bluetooth Headphones - high quality product image Wireless Bluetooth Headphones on white background Wireless Bluetooth Headphones - noise cancelling noise cancelling - Wireless Bluetooth Headphones Wireless Bluetooth Headphones noise cancelling product photo Wireless Bluetooth Headphones - over-ear over-ear - Wireless Bluetooth Headphones Wireless Bluetooth Headphones over-ear product photo Wireless Bluetooth Headphones - noise cancelling and over-ear
Twelve candidates, and the two worth anything are the last one and a rewrite. "Photo of" and "image" are redundant because a screen reader already announces an image. "high quality" is a claim, not a description. The reversed forms read as machine output. What a person would actually write, taking the combined phrasing as a starting point, is "Black over-ear noise-cancelling headphones, ear cups folded flat" - which describes the photograph rather than the product listing, and which no string combination could have produced without seeing the image.
Limitations
- No image is analysed. The tool combines the text you type and has no access to what the picture contains.
- Output describes a product name rather than a photograph, so it cannot mention colour, angle, setting, or state unless you supply those as keywords.
- Several base templates include redundant phrasing like "image" and "Photo of" that assistive technology already announces.
- The bulk mode applies one phrasing and one keyword set to every row, so mixed batches produce inaccurate descriptions.
- Nothing checks length, and no guidance is enforced about the roughly 125-character point where some screen readers truncate.
- Decorative images need an empty alt attribute rather than a description, and the tool has no way to express that.
When not to use this tool
- For a hero image, a chart, or any image carrying information the surrounding text does not, write the description by hand - templates cannot see what makes it distinct.
- For images that are purely decorative, use an empty alt attribute instead of generating a description for them.
How to use it
- 1
Group your images into batches that genuinely share attributes before generating anything.
- 2
Enter the name and the keywords that apply to the whole batch, then paste the batch into the bulk field.
- 3
Rewrite the generated strings to describe the photograph rather than the product listing, dropping "image of" and "photo of".
- 4
Handle hero images, charts, and anything carrying unique information by hand, and set an empty alt attribute on decorative images.
Questions
How long should alt text be?
Roughly 8 to 15 words for most images. Some screen readers truncate around 125 characters, and a description longer than that is usually trying to do the job of a caption or an adjacent long description. If the image genuinely needs more, put the detail in visible text and keep the alt attribute short.
Should keywords go in alt text?
Only where they are an honest description of the image. Alt text is read aloud to people, so a keyword that does not describe what is pictured is both a poor accessibility outcome and the kind of stuffing search engines discount. If the accurate description happens to contain your keyword, that is ideal; forcing it in is not.
What about images that are purely decorative?
Give them an empty alt attribute - alt="" - which tells assistive technology to skip them entirely. Omitting the attribute altogether is different and worse, because some screen readers then read the filename aloud. This is the one case where the right answer is no description.
Does the filename matter as well as the alt text?
It carries a small amount of weight and costs nothing to get right. A descriptive hyphenated filename is a weak additional signal about the image subject; a camera default like DSC_0413 is a wasted one. It is not a substitute for alt text, which is what actually gets read to a person.
Related tools
Related guides
Related tools
