10 Most Common Website Accessibility Violations (And How to Fix Them)
If your website has accessibility problems, you're probably not alone — and they're probably not that exotic.
WebAIM's annual analysis of the top one million websites found that 95% have detectable WCAG failures. More striking: the same ten violations show up again and again, across industries and platform types.
The good news is that this list is also a roadmap. Fix these ten issues and you'll resolve the vast majority of the accessibility barriers on most small business websites.
How to Use This Guide
For each violation, we'll cover:
- What it is — The plain-language explanation
- Why it matters — Who it affects and how
- How to fix it — Practical steps, including code examples where relevant
- How to check — How to detect it using free tools
Violation #1: Missing Alt Text on Images
WCAG Criterion: 1.1.1 Non-text Content
Frequency: Found on 56% of websites in WebAIM's analysis
What it is
Every element should have an alt attribute that describes what the image shows. When alt text is missing, screen readers either skip the image entirely or read out the raw file name (e.g., "IMG_20240315_143022.jpg") — which is useless to a blind user.
Why it matters
Screen readers used by blind and low-vision users rely entirely on alt text to convey visual information. Missing alt text also hurts your SEO — search engines can't index images without it.
How to fix it
For meaningful images:
<!-- Wrong -->
<img src="team-photo.jpg">
<!-- Correct -->
<img src="team-photo.jpg" alt="The CheckMyADA founding team at our San Francisco office">
For decorative images (add no information):
<!-- Use empty alt, not missing alt -->
<img src="divider-line.png" alt="">
On WordPress/Squarespace: Add alt text in the image settings panel when uploading or editing any image.
How to check
Run a free scan at checkmyada.com. The report will list every image missing alt text, with its location on the page.
Violation #2: Low Color Contrast
WCAG Criterion: 1.4.3 Contrast (Minimum)
Frequency: Found on 81% of websites (the #1 most common violation)
What it is
Text must have sufficient contrast against its background to be readable by people with low vision or color blindness. WCAG requires:
- Normal text (under 18pt): minimum 4.5:1 contrast ratio
- Large text (18pt+ or bold 14pt+): minimum 3:1 contrast ratio
- UI components (buttons, form borders): minimum 3:1 contrast ratio
Light gray text on white, yellow text on white, or low-saturation color combinations frequently fail this test.
Why it matters
Approximately 8% of men and 0.5% of women have some form of color vision deficiency. Low contrast also affects users reading in bright sunlight, on low-quality screens, or simply getting older.
How to fix it
Use the WebAIM Contrast Checker to test your text/background color combinations.
/* Before: failing contrast (#999 on white = 2.85:1 ratio) */
.subheading {
color: #999999;
background-color: #ffffff;
}
/* After: passing contrast (#767676 on white = 4.54:1 ratio) */
.subheading {
color: #767676;
background-color: #ffffff;
}
For branded colors you can't change, try darkening the text or lightening the background slightly — even small adjustments often bring ratios into compliance.
Violation #3: Missing Form Labels
WCAG Criterion: 1.3.1 Info and Relationships, 4.1.2 Name, Role, Value
Frequency: Found on 41% of websites
What it is
Every form input (, , ) must have a programmatically associated label. Using placeholder text alone doesn't count — once a user starts typing, the placeholder disappears.
Why it matters
Screen reader users navigate forms by listening to labels. Without labels, they hear "edit text" with no indication of what to enter. This affects contact forms, newsletter signups, checkout pages, and login screens.
How to fix it
Option 1: Explicit label element (recommended)
<!-- Wrong: placeholder only -->
<input type="email" placeholder="Your email address">
<!-- Correct: explicit label -->
<label for="email">Email address</label>
<input type="email" id="email" placeholder="you@example.com">
Option 2: aria-label (when visual label isn't needed)
<!-- Search bars where a visible label would clutter the UI -->
<input type="search" aria-label="Search products" placeholder="Search...">
Violation #4: Empty or Non-Descriptive Link Text
WCAG Criterion: 2.4.4 Link Purpose
Frequency: Found on 45% of websites
What it is
Link text should describe the destination or purpose of the link. Phrases like "click here," "read more," or "learn more" are meaningless without surrounding context — and screen reader users often navigate by jumping between links, where context is lost entirely.
Why it matters
Screen readers can pull all links from a page into a list. If 12 links all say "read more," a user has no way to distinguish them.
How to fix it
<!-- Wrong -->
<a href="/blog/ada-guide">Click here</a> to read our ADA guide.
<!-- Correct -->
Read our <a href="/blog/ada-guide">complete ADA compliance guide for small businesses</a>.
<!-- Also acceptable: aria-label for icon links -->
<a href="/blog" aria-label="Visit our accessibility blog">
<img src="blog-icon.svg" alt="">
</a>
Exception: If surrounding text makes the destination clear (e.g., "ADA Guide — Read More"), the link passes. But when in doubt, be descriptive.
Violation #5: Missing Document Language
WCAG Criterion: 3.1.1 Language of Page
Frequency: Found on 19% of websites
What it is
The HTML element should declare the page's primary language using the lang attribute.
Why it matters
Screen readers use the language attribute to select the correct pronunciation rules and voice. Without it, users may hear garbled, mispronounced content.
How to fix it
<!-- Wrong -->
<html>
<!-- Correct -->
<html lang="en">
<!-- For Spanish content -->
<html lang="es">
This is a one-line fix that takes 30 seconds. Check your site's base template or section.
Violation #6: Missing Page Titles
WCAG Criterion: 2.4.2 Page Titled
Frequency: Found on 20% of websites
What it is
Every page needs a descriptive element in the . The title is the first thing screen reader users hear when a page loads — it also appears in browser tabs and search results.
Why it matters
Without a title, users have no way to quickly orient themselves on the page, especially when working with multiple open tabs.
How to fix it
<!-- Wrong: generic or missing title -->
<title>Home</title>
<!-- Correct: descriptive + brand -->
<title>Free Website Accessibility Audit | CheckMyADA</title>
<!-- Blog post title -->
<title>10 Most Common Accessibility Violations | CheckMyADA Blog</title>
Each page should have a unique title that accurately describes its content.
Violation #7: Keyboard Accessibility Failures
WCAG Criterion: 2.1.1 Keyboard, 2.4.7 Focus Visible
Frequency: Affects a significant portion of interactive websites
What it is
All interactive elements — links, buttons, form fields, dropdowns, carousels — must be operable using only a keyboard. This includes:
- Being reachable via the Tab key
- Having a visible focus indicator (the outline that shows which element is active)
- Not creating keyboard traps (where Tab gets stuck inside a component)
Why it matters
Users with motor disabilities often navigate exclusively with keyboards or keyboard-like devices (switch controls, head pointers). Removing focus outlines — a common "design" decision — makes this impossible.
How to fix it
Never do this:
/* Removes focus indicator — accessibility violation */
*:focus {
outline: none;
}
Do this instead:
/* Custom focus style that's both visible and on-brand */
*:focus-visible {
outline: 2px solid #2563EB;
outline-offset: 2px;
border-radius: 3px;
}
For custom interactive components (carousels, accordions, modals), ensure keyboard events are handled correctly using keydown event listeners for Enter and Space keys.
Violation #8: Videos Without Captions
WCAG Criterion: 1.2.2 Captions (Prerecorded)
Frequency: Varies; common on content-heavy sites
What it is
All prerecorded video content with audio must include accurate synchronized captions. Auto-generated captions (YouTube's default) often contain errors and don't meet the standard for compliance.
Why it matters
Captions are essential for Deaf and hard-of-hearing users. They also benefit users watching in noisy environments, users whose primary language differs from the video's, and users with cognitive disabilities who benefit from text reinforcement.
How to fix it
- For YouTube videos: Upload a corrected
.srtcaption file instead of relying on auto-captions - For self-hosted video: Use the
element withkind="captions" - Caption accuracy standard: 99%+ word accuracy (auto-captions typically achieve 80–85%)
<video controls>
<source src="product-demo.mp4" type="video/mp4">
<track src="captions-en.vtt" kind="captions" srclang="en" label="English">
</video>
Violation #9: Missing Skip Navigation Links
WCAG Criterion: 2.4.1 Bypass Blocks
Frequency: Found on a majority of websites without this feature
What it is
A "skip navigation" link allows keyboard users to jump directly to the main content, bypassing the navigation menu that appears at the top of every page. Without it, keyboard users must Tab through every navigation item on every page load.
Why it matters
If your site has 12 navigation links, a keyboard user has to press Tab 12 times just to reach the first piece of content on each page. Multiply that across every page visit — it's exhausting and unnecessary.
How to fix it
<!-- Place this as the very first element in <body> -->
<a href="#main-content" class="skip-link">Skip to main content</a>
<!-- Match the id on your main content container -->
<main id="main-content">
<!-- Page content here -->
</main>
/* Visually hidden until focused (best practice) */
.skip-link {
position: absolute;
top: -40px;
left: 0;
background: #000000;
color: #ffffff;
padding: 8px;
z-index: 100;
}
.skip-link:focus {
top: 0;
}
Violation #10: ARIA Misuse
WCAG Criterion: 4.1.2 Name, Role, Value
Frequency: Increasingly common as JavaScript-heavy sites grow
What it is
ARIA (Accessible Rich Internet Applications) attributes help screen readers understand the purpose of dynamic UI elements. But incorrect ARIA usage can actually make a site less accessible than having no ARIA at all.
Common mistakes include:
- Using
role="button"on awithout adding keyboard support- Missing
aria-expandedstates on dropdowns and accordions- Incorrect
aria-labeltext that doesn't match the visible label- Overusing
aria-hidden="true"and hiding content from screen readers unnecessarilyWhy it matters
Incorrect ARIA can cause screen readers to misannounce elements, skip interactive components, or present a completely different interface to assistive technology users.
How to fix it
Follow the first rule of ARIA: Don't use ARIA if you can use native HTML elements instead.
<!-- Wrong: div with button role but no keyboard handling --> <div role="button" onclick="submitForm()">Submit</div> <!-- Correct: native button element --> <button type="submit" onclick="submitForm()">Submit</button>For complex components (custom dropdowns, tabs, modals), follow the ARIA Authoring Practices Guide from W3C — it includes copy-paste interaction patterns for every common component type.
Summary: Quick Reference Table
# Violation WCAG Criterion Fix Difficulty 1 Missing alt text 1.1.1 Easy 2 Low color contrast 1.4.3 Easy–Medium 3 Missing form labels 1.3.1, 4.1.2 Easy 4 Non-descriptive links 2.4.4 Easy 5 Missing HTML lang 3.1.1 Trivial 6 Missing page titles 2.4.2 Easy 7 Keyboard failures 2.1.1, 2.4.7 Medium 8 Videos without captions 1.2.2 Medium 9 No skip navigation 2.4.1 Easy 10 ARIA misuse 4.1.2 Medium–Hard
Where to Start
If this list feels overwhelming, start with the first five items. They're the most common, they affect the widest range of users, and they're generally fixable in an afternoon of developer time.
Then run a free scan to find out which of these violations your site actually has — and in what quantity.
→ Scan your website free at CheckMyADA
The scan takes 60 seconds. The report organizes violations by severity so you know what to prioritize. No signup required.
A Note on "Complete" Compliance
Fixing these ten violations will significantly improve your site's accessibility and meaningfully reduce your legal exposure. But it won't guarantee legal compliance — that requires addressing the full WCAG 2.1 AA standard, which includes issues that automated tools can't detect.
Think of this list as your high-impact starting point. Use it to build momentum, fix the biggest problems, and establish an ongoing practice of accessibility maintenance.
For more on what automated tools can and can't tell you, read: Free Website Accessibility Audit: What It Can (and Can't) Tell You.
For transparent pricing on ongoing monitoring and compliance tracking, see our pricing page. To understand how CheckMyADA differs from overlay tools, read our honest comparison.
Check Your Website for Free
Get an honest accessibility report in 30 seconds. No overlay. No false promises.
Run Free Scan - Missing