Never ship images without a text alternative
F65 is a documented failure under the non-text content rule, and it is cited more than any other failure in accessibility reporting. It covers img elements, area elements and image inputs with no text alternative at all. The precision most summaries drop is that the alt attribute is not the only way to provide one. The published test checks four things in turn. Whether alt is present, whether aria-labelledby is present and points at real ids, whether aria-label is present, and whether title is present. Each route has to be supported by the software people actually use before it counts, and we would not rely on title for a name at all, because it never reaches keyboard-only or touch-only users. So an image button carrying an aria-label and no alt attribute is not F65. There is still a missing attribute to fix. It is just not this failure. Alt is still the preferred route and it is the one to write.
How we find it in an audit
Automated scans list every img, area and image input with no alt attribute, with certainty, which is why this appears on every scan report ever produced. That list is the start. A reviewer then checks whether a name arrives another way, and sorts what is left by what the image was doing, because a missing alt on a checkout button is a blocked task and a missing alt on a flourish is noise. Image maps get a pass of their own, since area elements are in scope and almost nobody tests them.
How affected users experience it
With no alternative at all, assistive technology guesses. Usually the filename. Sometimes silence. On an image that carries information the reader loses a fact and never knows it. On an image button they lose the ability to act, because the control announces itself as "unlabeled button" or as a filename, and there is no way to tell the search button from the delete button except by pressing one. Nobody should have to make that choice on somebody else's checkout.
Passes vs. fails
Passes
<img src="chart-q3.png" alt="Q3 revenue by region. Europe leads at $2.1M">
<input type="image" src="btn-go-v3.png" alt="Search">Fails
<img src="chart-q3.png">
<input type="image" src="btn-go-v3.png">How this gets tested
The W3C publishes test rules that define what a checker looks for here.
- Element marked as decorative is not exposedA tool can check this
- Image accessible name is descriptiveA tool finds candidates, you decide
- Image button has non-empty accessible nameA tool can check this
- Image has non-empty accessible nameA tool can check this
- Link has non-empty accessible nameA tool can check this
- Object element rendering non-text content has non-empty accessible nameA tool can check this
- SVG element with explicit role has non-empty accessible nameA tool can check this
- Image not in the accessibility tree is decorativeA tool can check this
The other techniques filed under this rule
39 guides on this site are filed under 1.1.1 Non-text Content. W3C documents this one as a failure of that rule, so it describes a way the rule gets broken rather than a way to pass it.
- ARIA6sufficientName icon-only controls with aria-label
- ARIA9sufficientAssemble one label from several text pieces
- ARIA10sufficientName images and charts with aria-labelledby
- ARIA15sufficientLink complex images to longer descriptions
- C9sufficientPut decorative images in CSS backgrounds
- G68sufficientDescribe the purpose of live-only streams
This guide is our interpretation of W3C technique F65: Failure of Success Criterion 1.1.1 due to omitting the alt attribute or text alternative on img elements, area elements, and input elements of type "image". W3C publishes its techniques as guidance rather than as the standard, and says so on every one of them. The success criterion is what conformance is measured against, and a technique is one documented way to meet it.