Open a photo

Bulk alt text for a folder of imagesAlt text for a whole folder.

Drop lots of photos at once, review each one, and export them all as CSV, HTML or files.

Choose photosor drop it here · paste with Ctrl+V

JPG, PNG, WebP, GIF, BMP, TIFF, AVIF and HEIC.

Free · No sign-up · Photos stay on your device

A writer at a desk comparing a botanical photograph with the braille display beside her keyboard.
12 photos9 approved2 need a subject1 decorative

Drop a folder's worth of pictures. Each one is measured in this tab and gets the answer it earns — a sentence from its descriptive file name, an empty attribute, its own text read out, or a request for your subject — with a review state, so only the rows you approve are exported.

Exports: CSV, JSON, an HTML block of <img> tags, a ZIP of .alt.txt files, and a ZIP of the pictures themselves with the alt text embedded in their XMP accessibility fields (JPEG, PNG, WebP).

Four answers, not one

A folder from a website is never one kind of picture. Product shots, a spacer, a scanned notice and a camera-roll export each want a different answer, and the page gives each its own: a sentence, an empty attribute, the picture’s own words, or a request for your subject. Every row prints the measurements that decided it — how much of the frame is on an edge, how many colours, how text-like it is — and how firm the call was.

Nothing is exported because it was guessed. Rows only reach the export when you approve them, and the CSV records for each one where its words came from and which decision it was given.

What it will not do

  • It does not recognise what a photograph shows. Without a descriptive file name, a photo waits for your words.
  • It does not upload anything, so it cannot fetch pictures from a website for you; open the files themselves.
  • It writes embedded alt text into JPEG, PNG and WebP only.

Questions people ask

Are my pictures uploaded?

No. Every picture is decoded and measured in this tab, one at a time, and the exports are written in the tab. A folder of two hundred pictures never leaves your computer.

Where do the sentences come from?

From words a person already wrote, or from the picture's own text. A descriptive file name (mountain-lake-at-dusk.jpg) becomes a sentence and says it came from the name; a camera counter (IMG_4032.jpg) gets nothing. A picture that reads as a page of text can have its words read on this device. Nothing here recognises a subject, so every other row waits for yours.

What does “approved” mean?

Each row has a review state: untouched, suggested (the words came from a file name or the text reader), edited (you typed or changed something) and approved (you pressed Approve). The exports include approved rows only unless you untick that, and say how many were left out.

Can I mark several pictures decorative at once?

Yes. Tick the rows and press “Mark selected decorative”. Each row also has its own three answers — describe, decorative, inside a link — which go into the CSV and JSON as a mode column.

What can I export?

A CSV and a JSON manifest with the measurements behind every row, an HTML block of <img> tags with the alt text filled in (alt="" for decorative pictures), a ZIP of one .alt.txt per picture, and a ZIP of the pictures themselves with the approved alt text written into their IPTC accessibility fields (JPEG, PNG and WebP).

Is there a keyboard way through a long folder?

Yes. ↑ and ↓ move between rows, Enter opens a row with a larger preview and puts the cursor in its field, and Esc closes it again.

Where to take this next

Photographic visual for Bulk Alt Text
In this toolBulk Alt Text