WCAG alt text: what 1.1.1 requires, and what a scan cannot check

Success criterion 1.1.1 asks for a text alternative serving an equivalent purpose, not a description on every image. What that means, who decides decoration, and why no audit can confirm it.

calendar_today schedule 8 min read update Updated
Christian Ehler Written by Christian Ehler
A machined gray tray on a dark panel holding two identical square recesses, one seating a flat plate and the other a short cylinder, a slim blue thread running between them

WCAG alt text usually reaches a developer as a line on a ticket: images need alt text, add it, close the ticket. The criterion behind that line asks for something narrower and harder than the ticket implies.

It is one sentence with six exceptions. It does not ask for a description on every image, it sets no character limit, and it says nothing at all about search engines.

What follows is the text of the criterion, who gets to call an image decorative, why an automated check cannot tell you whether you passed, what screen reader users actually report, and where the legal requirement lands. Every source is linked and dated.

WCAG alt text in the words of the standard

The whole requirement for images is success criterion 1.1.1, Non-text Content, at Level A. Level A is the floor, so it applies at every conformance level above it as well. The wording has not changed between WCAG 2.0 and WCAG 2.2, which has been a W3C Recommendation since 12 December 2024.

All non-text content that is presented to the user has a text alternative that serves the equivalent purpose, except for the situations listed below.

Two phrases carry it. A text alternative replaces the image rather than labelling it, and equivalent purpose means the replacement has to do the same job the image was doing on that page.

So one photograph can need three different alt values on three different pages, and a description can be accurate and still fail. Accuracy is a fact about the picture. Equivalence is a fact about the page.

The six situations named in 1.1.1, and what each asks for
Situation in the criterion What the criterion asks for What that looks like in HTML
Controls and input A name that describes the purpose of the control On a linked or button image, alt names the destination or the action, not the picture
Time-based media At least descriptive identification of the media A poster frame is identified; the real alternative is the captions or transcript
Test or exercise Descriptive identification, where text would invalidate the test The image is identified rather than solved in the alt attribute
Sensory experience Descriptive identification of the experience A work of visual art is identified; the experience itself is not transcribed
CAPTCHA Identify and describe the purpose, plus a form using another sense The image is described as a CAPTCHA and an audio alternative is offered
Decoration, formatting, invisible Implemented so it can be ignored by assistive technology alt=”” on the img element, or the image moved into CSS

Nothing in the criterion sets a length. There is no character limit in WCAG and none in HTML — the 125-character figure everyone repeats is a convention borrowed from screen reader behavior. Search engines read the same string for their own reasons, covered in the search side of the alt text field, and none of that changes what 1.1.1 asks for.

Who gets to decide that an image is decorative

The decoration exception is the one people reach for most, and the one that needs information the image does not contain. The W3C is blunt about where that information lives.

Whether to treat an image as decorative or informative is a judgment that only the author can make, based on the reason for including the image on the page.

The consequence is concrete. A product photograph on a shop page carries information no text on that page supplies. The same file running across a category header, beside a paragraph that already describes the product, carries none.

one-file-three-purposes.html
HTML
<!-- Informative: the photo carries what no text on the page says -->
<img src="chair-walnut.jpg"
     alt="Dining chair in oiled walnut with a woven paper cord seat">

<!-- Same file, decorative: the paragraph beside it already says all of that -->
<img src="chair-walnut.jpg" alt="">

<!-- Functional: the image is the link, so alt describes where the link goes -->
<a href="/shop/walnut-chair/">
  <img src="chair-walnut.jpg" alt="Walnut dining chair, product page">
</a>
One file, three correct alt values. The right one is a property of the page, not of the picture.

The W3C publishes a decision tree for exactly this, and it resolves most images in one pass (W3C, An alt Decision Tree, checked 2026-08-16). It asks about function and context first and about the contents of the picture last.

info
An empty attribute is a decision, a missing one is an omission

alt=”” tells assistive technology there is nothing here to announce. Leaving the attribute off leaves that choice to the screen reader, and the W3C notes that some announce the file name instead. An audit that counts images carrying an alt attribute scores those two identically, which is the first sign that coverage is the wrong number to chase.

The plate fits either seat. Which one it belongs in is decided by the page, and by a person who knows why the image is there.

What an automated check settles, and what it leaves open

This is the part that decides how much of the job can be bought. The HTML specification says it outright, in the section addressed to tools that generate markup.

This is intended to avoid markup generators from being pressured into replacing the error of omitting the alt attribute with the even more egregious error of providing phony alternative text, because state-of-the-art automated conformance checkers cannot distinguish phony alternative text from correct alternative text.

Read that as a product requirement rather than a footnote. The specification would rather a generator leave the attribute off than write something plausible and wrong, because nothing downstream can tell the two apart.

One image, two kinds of question
Question about the image An automated check A person
Is the alt attribute present Answers it reliably, at any scale Not needed
Is the value empty Answers it reliably Decides whether empty was the right answer
Is the value a file name or the word image Catches the common patterns Catches the plausible sentence that happens to be wrong
Does the description match the picture cancel Looks at the image
Does it serve the same purpose as the image on this page cancel Knows why the image was put there
Should this image be decorative cancel The author’s judgment, per the W3C

WebAIM measures both halves once a year. In its February 2026 pass over the top one million home pages, 16.2% of all images were missing alt text, not counting alt=””. Another 10.8% of the images that had it carried questionable or repetitive text: the word image, a file name, or a copy of the text beside it.

WebAIM’s own summary of the two numbers: more than one in four images on popular home pages has missing, questionable, or repetitive alternative text (The WebAIM Million, 2026 report, checked 2026-08-16).

WordPress accounted for 252,302 of those home pages and averaged 52.8 detected errors, against 56.1 across the full sample. Better than average, on a measure where the average home page carries 56 detectable accessibility errors.

warning
Coverage is the easiest accessibility number to move

Write anything into every empty alt attribute and coverage reaches 100% while conformance does not move at all. The report turns green, the scanner stops complaining, and someone using a screen reader hears file names read out as words. The HTML specification calls that outcome the more egregious of the two errors, and it is right.

Both plates pass the gauge, because the gauge reads the outline. Only one of them is finished.

What screen reader users report, and what they never report

Alt text is a real problem and it is not the worst one. In WebAIM’s tenth screen reader user survey, run across December 2023 and January 2024 with 1,539 valid responses, images with missing or improper descriptions ranked sixth of twelve problematic items.

Ahead of it: CAPTCHA, interactive elements that do not behave as expected, links and buttons that make no sense, screens that change unexpectedly, and lack of keyboard access. WebAIM notes that the ordering has been largely unchanged for 14 years.

The number that changes how I plan work is a different one. 85.9% of respondents said more accessible websites would do more for accessibility than better assistive technology — a share that has risen at every survey since 2009.

Then the silence. 44.3% said they contact a site owner about a barrier not very often and 21.7% said never, which is about two thirds who mostly do not report (WebAIM Screen Reader User Survey #10, checked 2026-08-16). WebAIM states that the sample was not controlled, so read it as the best public evidence rather than a census.

That is the practical case for doing this unasked. Nothing in your inbox, your analytics or your error log will ever tell you that an image was unreadable.

The feedback path exists and mostly goes unused. Nobody is going to file the ticket for you.

Where the legal requirement actually applies

Compliance is a jurisdiction question, and both of the regimes people cite are narrower than the summaries suggest. I am a developer rather than a lawyer, so what follows is what the texts say, not advice about your site.

The European Accessibility Act, Directive (EU) 2019/882, applies to a listed set of products and to services provided to consumers after 28 June 2025. The service list is specific: electronic communications, access to audiovisual media, elements of passenger transport, consumer banking, e-books and dedicated software, and e-commerce services.

Article 4(5) exempts microenterprises providing services, and Article 3(23) defines one as an enterprise employing fewer than 10 people with an annual turnover or balance sheet total of no more than EUR 2 million. Plenty of WordPress shops sit inside that exemption and plenty sit outside it.

The directive names no technical standard. Search the text for WCAG and there are no hits — Annex I asks instead for information that is “perceivable, operable, understandable and robust”, and for “supplementing any non-textual content with an alternative presentation” (Directive (EU) 2019/882 on EUR-Lex, checked 2026-08-16). Which standard satisfies that where you are is set by national transposition.

The most-cited US rule is narrower still. The Department of Justice’s Title II rule, published 24 April 2024, sets WCAG 2.1 Level AA for the web content and mobile apps of state and local governments. An interim final rule published 20 April 2026 then moved the compliance dates back (ADA.gov fact sheet on the web rule, checked 2026-08-16).

Two instruments people cite, side by side
How they compare European Accessibility Act ADA Title II web rule
Instrument Directive (EU) 2019/882 US Department of Justice final rule, published 24 April 2024
Who it binds Economic operators placing the listed products and services on the EU market State and local government entities
From when Services provided to consumers after 28 June 2025 26 April 2027 at 50,000 people or more, 26 April 2028 below that and for special district governments
Technical standard named in the text None. The requirements are stated functionally and the word WCAG does not appear WCAG 2.1 Level AA
Exemptions written into it Microenterprises providing services: under 10 people and turnover or balance sheet total of EUR 2 million or less Limited content exceptions, archived web content among them, each with conditions set out in the rule
warning
Most WordPress sites are covered by neither text

A personal blog, a portfolio, a brochure site with no transaction: none appears in the European Accessibility Act’s service list, and none is a US state or local government. That is a statement about these two instruments and nothing more. Other national laws exist, sector rules exist, and public-sector contracts routinely require a conformance level regardless. If the answer carries money, it is a question for a lawyer.

How to write a text alternative that serves the equivalent purpose

Deciding an image before describing it

The first two steps take longer than the writing and remove most of the guesswork from it.

schedule About a minute per image once the habit is there signal_cellular_alt Easy
  1. 1

    Say why the image is on the page

    One sentence, in your own words, before writing anything into the field. If the honest answer is that it breaks up the text or that it looks good, you have a decorative image and the correct alt value is empty.
  2. 2

    Run it through the alt decision tree

    The W3C tree asks whether the image contains text, whether it is a link or a button, and whether the information appears elsewhere on the page. Function and context come first, contents last. Most images resolve on the second question.
  3. 3

    Write the purpose, not the inventory

    For a product photo the purpose is the thing being sold and what distinguishes it. For a chart the purpose is the finding, not the axes. Drop Image of and Photo of, since the element is already announced as an image.
  4. 4

    Turn images off and read the page

    Every browser can disable images, and the page should still make sense end to end. Each place the thread breaks is an image whose purpose never reached the text. This catches more than any scanner and takes about two minutes per page.
  5. 5

    Listen to one page, once

    NVDA on Windows and VoiceOver on macOS and iOS cost nothing and are already installed on two of the three. Ten minutes on your own home page changes how you write the field permanently, which is worth more than any checklist including this one.

Where automation helps, and where it quietly hurts

For a site with a few dozen images, write them yourself. Deciding purpose is most of the work, and once it is decided the sentence takes under a minute. No tool improves on a person who knows why the picture is there.

The arithmetic breaks in the thousands. A library of 4,000 images is roughly two working weeks of typing, which is why the field stays empty on exactly the sites where it matters most.

Typing is the part I can automate, and that is what Image SEO Optimizer does. It sends the image to a provider you hold the key for — Anthropic, Google or OpenAI — and writes the result into the standard WordPress alt field, with the old and new value recorded.

The limits matter more in this article than in an SEO one. The free plugin handles one image at a time and the bulk runner is Pro. AI calls are capped at 100 per user per hour. Alt text is scored against 50 to 125 characters and 10 to 16 words by default, and how the SEO score is calculated reads structure rather than truth.

What a generated description settles, and what it leaves to you

  • check Describes what is inside the frame, in the language you set, for images that are literal photographs
  • check Replaces an empty attribute with something more useful to a listener than a file name
  • check Produces a draft to edit, which most people work through faster than a blank field
  • close Decides whether an image is decorative — nothing in the plugin makes that call
  • close Knows why the image is on the page, which is what equivalent purpose means
  • close Reports whether the description it just wrote is true
  • close Makes a page conform to 1.1.1, or to any level of WCAG

Two things follow from that list. Decorative images have to be excluded before a batch runs rather than corrected after it, and every generated string needs a human read — which is why editing a generated description before it saves is a step and not a setting. Output also varies between runs, so two near-identical photographs come back worded differently.

If the search argument is what you came for, how image SEO actually works covers the field properly. Accessibility does not need that argument to be worth the afternoon.

Frequently asked questions

No. There is no character limit in WCAG and none in HTML. The 125-character figure repeated across every guide is a convention drawn from screen reader behavior, not a requirement, and treating it as a rule pushes people into truncating descriptions that needed the words. When an image genuinely needs more, that information belongs in the page text.
Not by itself. Criterion 1.1.1 requires pure decoration to be implemented so assistive technology can ignore it, and alt=”” is how that is done in HTML. It fails when it sits on an image that carries information. Omitting the attribute altogether is a different outcome, and the W3C notes some screen readers then announce the file name.
No, and no tool can honestly claim otherwise. Equivalent purpose is a judgment about why the image is on the page, which is information the image does not contain. A generated description is a draft that a person confirms or rewrites. Conformance is something a person claims after reviewing, not something a batch job produces.
The wording of 1.1.1 has not changed between WCAG 2.0 and WCAG 2.2, so for images the version question mostly does not bite. Level A is where the criterion sits, which means it applies at A, AA and AAA alike. Where a regulation names a target it is usually Level AA, and the US Title II rule names WCAG 2.1 Level AA specifically.
Yes, as a side effect, and that is the correct order. A description accurate enough to replace the picture for a listener is the description a crawler reads best, so doing the accessibility job properly leaves nothing extra to do for search. Measuring whether it moved anything is a separate exercise: reading image performance in Search Console is covered in the article on measuring image search in Search Console.
Turn images off in the browser and read the page, then run a screen reader over one page start to finish. Automated tools tell you whether the attribute exists and whether it looks like a file name. Whether the sentence does the job the image was doing is not something a scan reports, which is the whole argument of this article.

One thing to do after reading this: open the page you are proudest of, disable images in the browser, and read it from the top. Every place the sense breaks is an image whose purpose never made it into text, and no scanner on the market would have told you.

Image SEO Optimizer Pro

Fill the empty field, keep the judgment

Image SEO Optimizer writes alt text on your own Anthropic, Google or OpenAI key and saves it to the standard WordPress alt field, with the old and new value logged. It does not decide which images are decorative and it does not make a page conform to WCAG. One image at a time in the free plugin; the bulk runner is Pro.

Yearly Lifetime Best value

Free

Single-site license – ideal for personal blogs or small corporate websites

$0
Get Free

Personal

Single-site license – ideal for personal blogs or small websites.

$49 /year
  • check_circle 1 Site License
  • check_circle Bulk Processing
  • check_circle Image Context Generation
  • check_circle Real-time Upload Optimization
  • check_circle Best-in-Class AI Models
Get Personal
Most Popular

Freelancer

License for up to 10 sites – ideal for freelancers and developers.

$99 /year
  • check_circle 10 Sites License
  • check_circle Bulk Processing
  • check_circle Image Context Generation
  • check_circle Real-time Upload Optimization
  • check_circle Best-in-Class AI Models
Get Freelancer

Agency

Unlimited Sites – ideal for digital agencies and corporations.

$149 /year
  • check_circle Unlimited Sites
  • check_circle Bulk Processing
  • check_circle Image Context Generation
  • check_circle Real-time Upload Optimization
  • check_circle Best-in-Class AI Models
Get Agency
Share this article
Christian Ehler

I'm a WordPress developer and technical SEO — in search since 2010, currently traveling the world and working from wherever the coffee and wifi hold up. My focus is building WordPress apps on top of AI: automating the daily SEO workflows nobody has time for and preparing sites in depth for how AI-driven search reads the web. InfyPress is the first piece of that.

arrow_back Previous Google image SEO: reading the numbers in Search Console