We didn't pull these numbers from a survey or a report. We scanned 174 real websites — from airbnb.com to alabama.gov — using our automated WCAG 2.1 checker, and analyzed every violation we found.
The result: a ranked list of the 10 accessibility failures that appear most often, with the exact percentage of sites affected, what each violation means for real users, and how to fix it.
See how 321 websites scored →
View the 2026 Report| # | Violation | WCAG Rule ID | Impact | Sites Affected |
|---|---|---|---|---|
| 1 | Links with no discernible text | link-name | Serious | 36.2% |
| 2 | Content outside landmarks | region | Moderate | 34.5% |
| 3 | Images missing alt text | image-alt | Critical | 20.1% |
| 4 | Incorrect heading order | heading-order | Moderate | 19.0% |
| 5 | No main landmark | landmark-one-main | Moderate | 16.7% |
| 6 | Duplicate landmarks | landmark-unique | Moderate | 15.5% |
| 7 | Insufficient color contrast | color-contrast | Serious | 12.1% |
| 8 | HTML missing lang attribute | html-has-lang | Serious | 11.5% |
| 9 | Buttons with no discernible text | button-name | Critical | 7.5% |
| 10 | No H1 heading | page-has-heading-one | Moderate | 7.5% |
Each violation below includes what it is, who it affects, a real-world example, and a code-level fix.
A link needs a text label that describes its purpose. When a link wraps only an icon, image, or SVG with no accessible name, screen readers announce it as "link" with nothing else — making it impossible for a blind user to know where it leads.
This is the most common WCAG violation we found, appearing on more than one-third of all sites we scanned. It's especially prevalent in navigation icons (hamburger menus, social media links, breadcrumb arrows) and footer icon rows.
<!-- Icon-only link with no label --> <a href="https://twitter.com/example"> <svg>...</svg> </a> <!-- Image link with empty alt --> <a href="/"><img src="logo.png" alt=""></a>
aria-label describing the destination, or include visually hidden text.
<a href="https://twitter.com/example" aria-label="Follow us on Twitter"> <svg aria-hidden="true">...</svg> </a> <!-- Or use visually hidden text --> <a href="https://twitter.com/example"> <svg aria-hidden="true">...</svg> <span class="sr-only">Follow us on Twitter</span> </a>
Landmark regions (<header>, <main>, <nav>, <footer>, <aside>) act as navigation waypoints for screen reader users. When significant content is placed outside any landmark, keyboard users cannot easily jump to it using their assistive technology's landmark navigation shortcut.
This violation often appears when content is added directly to <body>, before or after main landmark containers, or inside wrapper <div>s that have no ARIA role.
<!-- Before -->
<body>
<div class="announcement">Site maintenance tomorrow.</div>
<main>...</main>
</body>
<!-- After -->
<body>
<header>
<div class="announcement">Site maintenance tomorrow.</div>
</header>
<main>...</main>
</body>
This is the most famous accessibility violation — and it still affects 1 in 5 sites. Every <img> element must have an alt attribute. Screen readers announce the image filename when alt is absent, which is confusing and useless. Missing alt text is also a frequent target in ADA litigation.
Critically, "missing alt text" and "empty alt text" are different: an empty alt="" is correct for decorative images. The violation fires only when the attribute is absent entirely.
alt="" for decorative images.
<!-- Informative image --> <img src="dashboard-screenshot.png" alt="Accessalyze dashboard showing 3 critical violations"> <!-- Decorative image (no screen reader announcement needed) --> <img src="divider-wave.svg" alt=""> <!-- Linked image (describe the destination) --> <a href="/"><img src="logo.png" alt="Accessalyze home"></a>
Headings (h1–h6) are the primary way screen reader users navigate a page — like a table of contents. When headings skip levels (e.g. jumping from h2 to h4), the document outline breaks, making it hard to understand the page's structure.
This commonly occurs when developers use heading tags for visual styling instead of document structure, or when CMS components use their own hard-coded heading levels without regard for context.
<!-- Wrong --> <h1>Page Title</h1> <h4>First Section</h4> <!-- skips h2 and h3 --> <!-- Right --> <h1>Page Title</h1> <h2>First Section</h2> <h3>Subsection</h3>Use CSS to control visual size:
h2 { font-size: 0.9rem; } — never swap heading tags for styling.
Every page should have exactly one <main> landmark. This is the element keyboard users jump to with a "skip to main content" link — and the first place a screen reader user lands when they want to bypass repeated navigation. Without it, they're forced to tab through every nav link every time they load a new page.
<main> element (or <div role="main">).
<body>
<header>...navigation...</header>
<main id="main-content">
<!-- Page-specific content here -->
</main>
<footer>...</footer>
</body>
Add a skip link at the top: <a href="#main-content" class="skip-link">Skip to main content</a>
When a page has multiple <nav>, <aside>, or <section> elements with the same accessible name, screen reader users can't distinguish between them. They all appear as "navigation" in the landmarks menu with no way to tell them apart.
aria-label or aria-labelledby.
<nav aria-label="Primary navigation">...</nav> <nav aria-label="Breadcrumb">...</nav> <nav aria-label="Footer links">...</nav>
Text must have a contrast ratio of at least 4.5:1 against its background (3:1 for large text). Low contrast text is hard to read for users with low vision, color blindness, or anyone in a bright-light environment. Color contrast failures are also among the most commonly cited violations in ADA lawsuits.
Note: only 12.1% of sites flagged this in our top-violations scan, but this doesn't mean contrast issues are rare — they may appear on far more sites as lower-priority or secondary violations not captured in each site's top findings.
/* Common failure: light gray on white */ color: #999999; /* contrast ratio: 2.85:1 — FAIL */ /* Fix: darken the text */ color: #595959; /* contrast ratio: 7.0:1 — PASS */
The lang attribute on <html> tells screen readers and translation tools what language the page is in. Without it, screen readers may mispronounce or misread the content entirely — applying the wrong phonetic rules. This is a Level A violation, the most basic level of WCAG compliance.
This is also one of the easiest fixes possible. It takes three seconds to add and has zero visual effect on the page.
<html> tag.
<!-- Wrong --> <html> <!-- Right --> <html lang="en"> <!-- For pages with multiple languages --> <html lang="en"> <p lang="es">Bienvenidos</p> </html>
Like links, buttons that contain only icons or SVGs with no accessible label are announced as "button" with no purpose. This makes icon-only controls (close buttons, expand/collapse toggles, play/pause buttons) completely unusable for screen reader users. This is a critical WCAG violation.
aria-label to icon-only buttons, or include hidden text.
<!-- Close button with no text --> <button type="button"><svg>...</svg></button> <!-- Fixed --> <button type="button" aria-label="Close dialog"> <svg aria-hidden="true">...</svg> </button>
Every page should have a single <h1> that identifies the page's primary topic. Screen reader users often jump directly to the h1 to orient themselves. Without one, they have to infer context from whatever heading they find first — or the page title — which is a poor experience.
This also has SEO implications: search engines use the h1 as a primary relevance signal for the page's topic.
<h1> per page that describes the page's main purpose.
<main> <h1>WCAG 2.1 Compliance Guide for E-Commerce</h1> <p>Introduction...</p> <h2>Why E-Commerce Sites Are Targeted</h2> ... </main>
A few patterns stand out from scanning 174 sites:
Landmark structure is widely neglected. Three of the top 10 violations are about landmark regions — region, landmark-one-main, and landmark-unique. Together they affect nearly half of all sites scanned. Semantic HTML structure is still not a default priority in web development.
Icon-only interactives remain a widespread problem. Both link-name (#1) and button-name (#9) share the same root cause: interactive elements with no accessible text. As icon-heavy UIs have become standard, this class of violation has proliferated.
Some easy wins are still being missed. html-has-lang is the world's simplest accessibility fix — add five characters to one line of HTML. Yet it appeared on 11.5% of sites. image-alt, which has been a known requirement for 25 years, still appeared on 20% of sites.
Critical violations are less common but still present. image-alt and button-name are both rated critical — they block access entirely for screen reader users, not just make it harder. Combined, they affected more than a quarter of all sites we scanned (27.6% had at least one critical violation in the top 10).
You can run a free WCAG 2.1 scan on any website at accessalyze.com. No signup required. The scan checks for all 10 violations on this list — plus dozens more — and returns a prioritized report with fix guidance.
Scan any website free. Instant results. See exactly which of these 10 violations your site has — and how to fix them.
Scan My Website Free →We scanned 174 publicly accessible websites using Accessalyze's automated WCAG 2.1 checker (built on axe-core). Sites were selected to represent a range of industries, sizes, and government domains. Each site was scanned from its homepage. Violation data was collected from each site's top reported violations and aggregated across all scans.
Automated tools detect approximately 30–40% of all WCAG issues. Manual testing with screen readers can find violations that automated tools miss. The violation counts in this report reflect only what can be detected programmatically.
For questions about our methodology or to request the underlying data, contact us.
Try it yourself
Enter your website URL to get a free accessibility score.