BXUP Track progress & test yourself — free
Frontend & Mobile · Playbook · Foundation · ~5 min read
FRONTEND & MOBILE · PLAYBOOK · FOUNDATION

Alt-Text and Media-Description Pipeline with Editorial Control

Your product has four thousand images with empty or filename alt text, and new media lands daily. Multimodal models can draft descriptions at scale — but raw model output shipped as alt text produces verbose, redundant, sometimes wrong descriptions. The pipeline is: triage, draft, edit, ship, with a human owning the editorial gate.

Tier: Foundation · Workflow area: Accessibility

This playbook builds that pipeline for both the backlog and the ongoing flow, whether images live in a CMS, a product catalog, or component code.

When to use

  • An audit (or axe scan) surfaced a large volume of missing, empty-but-meaningful, or junk (IMG_2041.jpg) alt text.
  • Content authors ship images through a CMS and skip the alt field because writing descriptions is slow.
  • Your product renders user-relevant imagery — product photos, charts, diagrams, thumbnails — where descriptions genuinely carry information.
  • You are adding video or audio and need description and transcript drafting to keep pace.

Skip it for a codebase whose images are overwhelmingly decorative — there the fix is alt="" and a lint rule, not a description pipeline.

Prerequisites

  • An inventory: where images live (CMS fields, database columns, src props), how many lack useful alt text, and where descriptions get rendered.
  • A multimodal model reachable from a script or workflow tool (Claude or Gemini vision via API), with image rights and privacy cleared for whatever you send.
  • A written house style for descriptions: target length, tone, terminology, what to do with text-in-image. One paragraph is enough to start.
  • A named editorial owner — content designer, editor, or the accessibility lead. The pipeline has a human gate or it is not this playbook.

The workflow

  1. Triage decorative vs informative first, mechanically. Most alt-text volume disappears here. Write the triage rules down before any drafting:

    • Purely decorative (ambiance, spacers, duplicated-by-adjacent-text): alt="", no description drafted.
    • Functional (image is the control — logo-link, icon button): alt states the destination or action, not the picture ("Home", not "company logo").
    • Informative (photo, product shot): concise description of what matters in context.
    • Complex (chart, diagram, screenshot): short alt plus a long description path (adjacent text, figure caption, or details link).

    Have the model do a first-pass classification in batches, with a human spot-checking a sample of each class before the classes drive anything.

  2. Draft with context, not just pixels. Alt text depends on what the image is for. Feed the model the surrounding content, and force brevity:

    You write alt text following our style guide (attached). For each image
    you get: the image, the page title, and the surrounding paragraph.
    Rules:
    - Informative images: one sentence, <=120 characters, no "image of"/
      "picture of", present tense.
    - Describe what matters for THIS context, not everything visible.
    - If the image contains text, include the text verbatim.
    - Complex images (charts/diagrams): 1-sentence alt PLUS a structured
      long description: what it shows, axes/units, and the 2-3 takeaways.
    - If you cannot determine the subject confidently, output NEEDS-HUMAN
      instead of guessing.
    
  3. Route every draft through the editorial gate. Load drafts into a review queue — a CMS draft state, a spreadsheet, or a PR if alt lives in code. The editor's job is fast verb-level editing: fix wrong specifics (models misread brands, counts, directions, and text-in-image), cut verbosity, align terminology with the product's vocabulary. Reviewing a draft is 5–10x faster than writing from scratch; that speed is the pipeline's whole economic case.

  4. Ship into the right slot and prevent regression. Write approved text into the CMS field, database column, or component prop. Then close the loop for new media: make the alt field required-with-assist in the authoring flow — the model drafts on upload, the author confirms or edits before publish. Add a lint/CI rule (jsx-a11y/alt-text, CMS validation) so undescribed informative images cannot ship again.

  5. Extend to time-based media. For video: model-drafted transcript from the audio track, human-corrected, plus a description of essential visual-only information. For audio: transcript with speaker labels. The same draft-edit-ship gate applies; auto-captions unedited are not compliance.

Key Takeaway:

The model's job is volume; the editor's job is truth and brevity. Triage kills most of the work, context-fed drafting handles the rest at scale, and nothing reaches users without a human having read it.

Tool variants

  • Claude / Gemini vision via API: the batch engine for backlogs; both handle context-plus-image prompts well. Batch endpoints cut cost for thousand-image sweeps.
  • CMS-integrated AI fields (many CMSes now ship alt-suggestion buttons): fine for the ongoing flow if — and only if — the suggestion lands in an editable field the author must confirm, not silently into the published document.
  • Chat assistant, no API: for small backlogs (<200 images), paste images with context in batches of 10–20; same prompt, manual transfer.

Verification

  • A random sample (5–10%) of shipped descriptions is re-checked by someone other than the original editor each cycle: accurate, concise, on-style.
  • Screen-reader spot-check: navigate a media-heavy page with NVDA or VoiceOver — announcements are informative, non-redundant with adjacent text, and decorative images are silent.
  • The scanner metric moved: missing-alt count from axe/Lighthouse approaches zero and stays there.
  • Every NEEDS-HUMAN flag was resolved by a person, not deleted.

Pitfalls

  • Shipping raw model output. Unedited drafts trend verbose ("An image showing…"), occasionally wrong, and stylistically alien. The editorial gate is the difference between an accessibility improvement and confident noise at scale.
  • Describing everything. Alt-texting decorative images adds screen-reader clutter that makes pages worse. Triage is step one for a reason.
  • Context-free drafting. The same product photo needs different alt on a listing page ("Trail runner in blue, side view") vs a sizing guide ("Sole thickness 32mm at heel"). Pixels alone cannot tell the model which.
  • Model guessing under uncertainty. Without an explicit NEEDS-HUMAN escape, models fabricate specifics — names, numbers, team jerseys — with total confidence.
  • Fixing the backlog but not the flow. If upload still allows empty alt, you have scheduled the next backlog.

Restricted-environment variant

Product imagery can be NDA'd (unreleased hardware, client data in screenshots) or contain personal data (user photos, medical imagery).

  • In-tenant vision models (Bedrock, Azure OpenAI, Vertex inside the client boundary): same pipeline, same prompts.
  • Local vision model (LLaVA-class via Ollama): usable for simple product/UI imagery; expect a higher edit rate and keep the human gate strict.
  • Segregate by sensitivity: route public marketing imagery through the cloud pipeline and sensitive classes through the local or human-only lane — the triage step is where routing happens.
Warning

Never send user-uploaded photos, identifiable people, or regulated content (medical, minors, documents) to an external API without an explicit legal basis. The accessibility win does not amortize a privacy incident.

Success criteria

  • Backlog cleared: informative images carry approved descriptions; decorative ones carry alt="" deliberately.
  • New media cannot publish without confirmed alt text, and authors report the assist makes the field faster, not slower.
  • Editorial throughput: an editor clears drafts at several times hand-writing speed with a low correction-miss rate on sampling.
  • Screen-reader users can complete image-dependent tasks (choose a product, read a chart's takeaway) without sighted help.
This is the free reading view. Open BXUP to track your progress, run the hands-on labs, and prove it with original, exam-pattern assessments.
© Anvi Innovate · BXUP — Be Exponentially Upskilled · BXUP is an independent learning platform, not affiliated with or endorsed by AWS, Microsoft, Google, NVIDIA, IBM, Salesforce, Databricks, Oracle or Anthropic. All trademarks belong to their respective owners. · bxup.in