All posts
·8 min read·accessibility · alt text · images

IMG_4821.jpg is not alt text: the three alt text mistakes a scan catches

Fix the three image alt text mistakes a scan flags most: no alt at all, a file name like IMG_4821.jpg, and a paragraph of keywords. Here is what each one sounds like.

Open the source of almost any small business homepage and search for alt=. Somewhere in the results you will likely find a photo described as IMG_4821.jpg, a row of team headshots with no alt attribute at all, or a hero image carrying three sentences of service keywords. All three look fine on screen. All three fail the people who depend on image alt text to know what the page shows.

The post on what a screen reader finds that you won't covered alt text as one item in a list. This is the full walkthrough: the three mistakes a scan flags, what each sounds like, and how to clear it.

What a screen reader does with an image

When a screen reader reaches an <img> tag, there are three possibilities:

  • The alt attribute has text. The screen reader announces an image, then reads the text: "Image, technician replacing a water heater."
  • The alt attribute is empty (alt=""). The screen reader skips the image entirely, as if it were not there.
  • There is no alt attribute. The screen reader has nothing to work with, so it guesses. Depending on the software, the listener hears the file name, a fragment of the image URL, or just "unlabeled image."

Those last two are not the same thing, and the MDN reference for the img element spells out the difference: an empty alt marks the image as not part of the content, while a missing alt says no text equivalent exists at all.

Mistake one: no alt attribute at all

This is the critical one. An <img> with no alt attribute fails WCAG success criterion 1.1.1, Non-text Content, which sits at Level A, the baseline every site is expected to meet. A scan reports it at critical severity for that reason.

It usually starts in a template: a theme field never wired to an alt value, a logo strip from a page builder, a hand-coded slider. So one missing alt usually means a dozen.

The listener's experience: six staff photos with no alt become six URLs or six rounds of "unlabeled image," with no way to tell the owner from the front desk. If the image sits inside a link, like a logo that goes home, the link has no name either. They hear "link" and nothing else.

What to do:

  • Fix the template that renders the image, not just the one instance you noticed.
  • Decide, image by image, whether it carries information (write a description) or is decoration (use alt="").
  • For an image inside a link, describe where the link goes. A logo that links home should read as your business name plus "home," not "blue circle logo."

When empty alt is the right answer

Not every image needs words. A divider line, a decorative flourish, or a stock photo beside a heading that already says everything: describing those adds noise. For these, alt="" is correct, and a scan does not flag it, because only you can know whether an image is decorative.

The W3C alt decision tree settles most cases in a few questions. Is the image in a link or button? Describe the destination or action. Does it add meaning the surrounding text does not? Describe it. Is it purely decorative? Use an empty alt.

The trap: alt="" on an image that does carry information, like a chart or a graphic with text baked in. The markup looks correct, so no automated check can catch it. That one needs a human pass.

Mistake two: the file name became the alt text

IMG_4821.jpg. DSC_0093.JPG. screenshot-2026-03-14.png. These are the names cameras, phones, and screenshot tools give files by default, and they land in alt attributes far more often than anyone types them there.

The platform usually fills the gap. WordPress sets each upload's title from its file name, and some themes and plugins use that title as alt text when the field is blank. Wix gallery images use their title as alt text by default.

The listener hears something like "image, IMG underscore 4821 dot jpg." That is arguably worse than silence: it takes time, sounds like content, and says nothing.

How a scan spots it: the check flags alt text that ends in an image file extension (.jpg, .png, .webp, .svg and others) or starts with a camera or upload prefix like IMG, DSC, DCIM, or "screenshot." It also catches alt text that opens with generic words like "image," "photo," or "picture," which is how many auto-generated values begin. That doubles as a writing rule: never start alt text with "image of" or "photo of." The screen reader has already announced that it is an image. The finding is reported as serious, with up to five of the offending tags listed.

What to do:

  • Replace each value with a description of what the image shows, in context.
  • Rename files before you upload them: crew-installing-gutter-guard.jpg, not IMG_4821.jpg. A good file name is not alt text, but when a platform falls back to the file name, the fallback is at least readable.

Mistake three: a paragraph stuffed into the alt

The opposite failure. Someone heard that alt text matters for search and wrote: "Professional residential and commercial roof repair and replacement services, best roofing contractor, affordable roofers, free estimates, licensed and insured roofing company."

A screen reader reads alt text as one unbroken announcement, with no way to skim. A 200-character alt on a hero image means a run of keywords before the listener reaches the first real line of the page.

It does not help search either. Google's image SEO best practices warn that filling alt attributes with keywords creates a negative user experience and may cause your site to be seen as spam.

A scan flags alt text over 150 characters at moderate severity. That is not a WCAG rule, it is a practical ceiling: past 150 characters, the alt almost always holds something that belongs on the page itself, like a caption or a data table.

What to do:

  • Cut the alt to what the image shows: "Roofer nailing architectural shingles on a two-story home."
  • If an image truly needs a long explanation, like a chart or a diagram, keep the alt short and put the detail in visible text nearby, or connect it with aria-describedby.

What good alt text sounds like

A few rules cover nearly every image on a business site:

  • Describe what the image shows and why it is on this page. The same storefront photo might be "Front entrance with wheelchair ramp" on an accessibility page and "Storefront at dusk" on an about page.
  • Keep it to one sentence, well under 150 characters.
  • If the image contains text, like a promo banner, the alt should contain that text.
  • For linked images, name the destination.

The one-pass fix in WordPress, Squarespace and Wix

Most alt problems live in the media library, so fixing them there fixes them at the source:

  • WordPress: Go to Media, then Library, select an image, and fill in the Alternative Text field. Images already placed in a post keep the alt they had when inserted, so also update the image block's settings in the editor.
  • Squarespace: Alt text is set per image in each block's or gallery item's settings, and the field's location varies by block type. A blank field can fall back to the file name, so fill it in rather than trusting the default.
  • Wix: Select the image, open its settings, and fill in "What's in the image?" In galleries, rename any titles that are still file names, since the title becomes the alt text.

On any platform, confirm the result on the live page, not in the editor. The rendered markup is what the screen reader reads.

Check what your pages actually say

You can audit alt text by hand: view source, search for <img, and read every alt value. Across a site with thirty pages, that gets slow.

The AcuityScan accessibility check reads every <img> tag on a page and reports all three mistakes: no alt attribute, a file name as alt text, and alt text over 150 characters, with the offending tags listed so you can find them. It also flags placeholder images from services like placehold.co and picsum.photos that never got swapped out before launch. For the performance side of the same images, see the four image problems on your homepage.

To check alt text alongside everything else, run a full scan at acuityscan.com. It runs 350+ checks across 8 modules, from accessibility and performance to security headers and email deliverability, and explains each finding in plain English.

Scan your own site

See what 350+ checks find on your domain.

Free, no signup, 60 seconds. Email auth · DNS · SSL · Performance · SEO · Accessibility · Privacy · Mobile.