Skip to main content
WCAGrules
Quick navigation

Non-text Content

Every piece of non-text content that carries meaning needs a text alternative serving the same purpose. That is the opening line of WCAG 1.1.1. Then the rule names six situations where the bar moves, and five of them lower it. A control or an input takes a name describing what it does. Audio and video files, a test question, and anything built to create a sensory experience take a short descriptive label instead. A full equivalent there would be impossible, or would hand over the answer. A CAPTCHA takes two things at once, a text alternative saying what it is for and a second version using a different sense. Pure decoration takes the opposite treatment. Mark it so assistive technology can skip it, which for an image usually means an empty alt attribute, written alt="". And non-text content reaches wider than pictures. Audio files, video files, emoji, ASCII art and images of text all sit inside this rule.

Why it matters

Information locked inside an image is not there at all for someone who cannot see it. A screen reader has nothing to read out. A braille display has nothing to render. The customer is left guessing. Picture a store where every product photo has no words attached. The photography could be beautiful and a blind shopper still could not tell one ring from another. The other half of the job is judgment, because alt text is a function of the page rather than of the picture. A photo of the world is "International Travel" on a travel site and "International Campuses" on a university one. Same image, different sentence. The page is about something different, so the description is too. The words you write are also the only version of that image a search engine can read, so a described image is a findable one.

Who this rule protects

Blind and screen reader users meet this rule first, because for them the alt text is the image. Deafblind users read the same words on a braille display, which makes the text the only route in. People browsing with images switched off on a slow connection get whatever you wrote and nothing else. So does anyone having the page read aloud by a voice assistant.

How to check it yourself

  1. Turn on a screen reader and move through the page. Every image carrying meaning should be announced with words you could use in place of the picture. VoiceOver opens on a Mac with Cmd+F5.
  2. Read the alt text on product and hero images and ask whether it names the item and the variant on screen. If the sentence would work as a replacement for the photo, it passes. Judge what it says rather than how it is spelled, because a file name that happens to describe the picture is fine and a hand-written sentence that describes nothing is not.
  3. Check every icon that acts as a control, such as search, cart and close. Each one has to be named for what it does rather than for what it looks like.
  4. Confirm decorative images are marked so assistive technology skips them. For an image element that means alt="". A purely decorative graphic can move into a CSS background instead.
  5. Find any chart or diagram and look for two things. A short label naming it, and a longer description nearby carrying the trend and the numbers.
  6. Find any CAPTCHA and check both halves. It needs text saying what it is for, and a second version using a different sense, such as audio alongside the visual puzzle.
  7. Check the alt text is written in the same language as the page around it. An English description on a French page is a conformance problem rather than a style one.

Failures we see most often

  • Product photos ship with no alt attribute at all, so a screen reader falls back to the file name and every product sounds the same.
  • A decorative divider carries alt="decorative-line-final-v2" instead of an empty alt, so the same noise is read out on every page of the site.
  • An icon-only cart button has no accessible name, so it is announced as "button" and nothing more.
  • A status badge is drawn with a CSS background image, which cannot carry a text alternative, and nothing else in the markup says what the status is, so it reaches sighted users only.
  • A chart carries alt="chart", which describes nothing, and the data stays visible to sighted readers alone.
  • An editor swaps the image in the CMS and leaves the old alt text behind, so the description now belongs to a picture that has gone.
  • A price is spelled out in ASCII art, or with look-alike characters borrowed from another alphabet, so a screen reader reads it as noise.
  • A CAPTCHA offers wavy letters and nothing else, which shuts out anyone who cannot read them.

Who this one is for

Read from this rule's own note above, so the grouping and the note cannot disagree.

How this one is tested

We list 8 ACT rules against 1.1.1. Each one defines exactly what a checker looks at, which is how automated tools decide what to flag. Each one also checks a slice, so passing every rule here is not the same as meeting the criterion, and a rule can be proposed rather than approved or need a person to finish it. The note beside each says which.

How to fix it

  • Write alt text by asking what you would say out loud instead of showing the image, on this page, in this sentence. For a product, name the item and the variant on screen, such as the color or the size.
  • Name a functional icon for its job rather than its drawing. A search button described as "Search" tells a user what pressing it does. "Magnifying glass" only describes the picture.
  • Use alt="" for decoration, or move the graphic into a CSS background so there is nothing left for assistive technology to announce.
  • Give a complex chart two alternatives. A short one that names it, and a longer description nearby carrying the trend and the implications, with the actual data in a table wherever that is practical.
  • For an inline SVG icon, add a role of img alongside the accessible name. Some browser and screen reader pairings skip the name on an svg element without it.
  • Label your CAPTCHA and offer a second route through it, such as an audio version. Then give people a way to reach a human when both routes fail.
Step-by-step fix guides (39)

Passes vs. fails

A general illustration of the pattern rather than a test of 1.1.1. Passes: alt text names the product. Fails: the file name is all there is.

Passes

The image ships as <img src="ring-2041.jpg" alt="Gold twist ring, size 7">, so a screen reader announces "Gold twist ring, size 7, image" and the shopper knows what it is.

Fails

The image ships as <img src="ring-2041.jpg"> with no alt attribute, so a screen reader announces "ring-2041.jpg, image" and the shopper learns nothing.

In audits and lawsuits

WebAIM's 2026 survey of a million home pages found missing alternative text on 53.1% of them, second only to low contrast. It is usually the first thing an automated scanner flags, so it sets the tone for how thorough the rest of an audit looks. One nuance settles a lot of arguments about scanner output. What fails is alt text that tells you nothing, not alt text that happens to carry a file extension. A photograph of a dog described as "dog.jpg" loses nothing at all. A ring described as "IMG_2041.jpg" loses the product. In our audits this turns up on nearly every unaudited store, and almost always on the images that matter most. Product photos, icon buttons, promotional banners.

Go somewhere useful

Find tools, resources and your workspace.

29 destinations