Top 10 WCAG 2.1 Violations We Found Scanning 174 Websites

By Accessalyze · April 30, 2026 · Original research from our public scan database

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
Key finding: Every single one of the top 10 violations appeared on at least 7.5% of sites. The most common — empty links — affected more than 1 in 3 websites we scanned.

Summary: The 10 Most Common WCAG Violations

# Violation WCAG Rule ID Impact Sites Affected
1Links with no discernible textlink-nameSerious36.2%
2Content outside landmarksregionModerate34.5%
3Images missing alt textimage-altCritical20.1%
4Incorrect heading orderheading-orderModerate19.0%
5No main landmarklandmark-one-mainModerate16.7%
6Duplicate landmarkslandmark-uniqueModerate15.5%
7Insufficient color contrastcolor-contrastSerious12.1%
8HTML missing lang attributehtml-has-langSerious11.5%
9Buttons with no discernible textbutton-nameCritical7.5%
10No H1 headingpage-has-heading-oneModerate7.5%

Each violation below includes what it is, who it affects, a real-world example, and a code-level fix.

#1

Links with No Discernible Text

Serious link-name WCAG 2.4.4 (Level A)
36.2%
of sites — 63 out of 174 scanned

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.

Common patterns that trigger this violation

<!-- 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>
Fix: Add an 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>
#2

Content Outside Landmark Regions

Moderate region WCAG 1.3.6 (Level AAA) / best practice
34.5%
of sites — 60 out of 174 scanned

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.

Fix: Ensure all meaningful content lives inside a landmark element.
<!-- 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>
#3

Images Missing Alt Text

Critical image-alt WCAG 1.1.1 (Level A)
20.1%
of sites — 35 out of 174 scanned

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.

Fix: Add descriptive alt text to all informative images. Use an empty 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>
#4

Incorrect Heading Order

Moderate heading-order WCAG 1.3.1 (Level A)
19.0%
of sites — 33 out of 174 scanned

Headings (h1h6) 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.

Fix: Use headings to express document structure, not visual size. Never skip heading levels.
<!-- 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.
#5

No Main Landmark

Moderate landmark-one-main WCAG 1.3.6 / best practice
16.7%
of sites — 29 out of 174 scanned

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.

Fix: Wrap your primary page content in a <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>
#6

Duplicate Landmark Regions

Moderate landmark-unique WCAG 1.3.6 / best practice
15.5%
of sites — 27 out of 174 scanned

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.

Fix: Label each duplicate landmark with a unique aria-label or aria-labelledby.
<nav aria-label="Primary navigation">...</nav>
<nav aria-label="Breadcrumb">...</nav>
<nav aria-label="Footer links">...</nav>
#7

Insufficient Color Contrast

Serious color-contrast WCAG 1.4.3 (Level AA)
12.1%
of sites — 21 out of 174 scanned

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.

Fix: Check contrast ratios with a tool like the WebAIM Contrast Checker. WCAG AA requires 4.5:1 for body text.
/* 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 */
#8

HTML Missing Lang Attribute

Serious html-has-lang WCAG 3.1.1 (Level A)
11.5%
of sites — 20 out of 174 scanned

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.

Fix: Add the correct language code to your <html> tag.
<!-- Wrong -->
<html>

<!-- Right -->
<html lang="en">

<!-- For pages with multiple languages -->
<html lang="en">
  <p lang="es">Bienvenidos</p>
</html>
#9

Buttons with No Discernible Text

Critical button-name WCAG 4.1.2 (Level A)
7.5%
of sites — 13 out of 174 scanned

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.

Fix: Add 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>
#10

No H1 Heading

Moderate page-has-heading-one WCAG 2.4.6 / best practice
7.5%
of sites — 13 out of 174 scanned

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.

Fix: Add exactly one <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>

What This Data Tells Us

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).

How to Check Your Own Site

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.

Find Your WCAG Violations

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 →

Methodology

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.

Check your website accessibility score free Scan Now →