Complete WordPress accessibility checklist for 2025. Learn how to make your WordPress website WCAG 2.1 compliant, fix common page builder issues, and ensure your site meets EU Accessibility Act requirements.
WordPress Powers 43% of the Web - But Most Sites Aren't Accessible
WordPress is the world's most popular content management system, powering over 43% of all websites. But here's the problem: most WordPress sites fail basic accessibility requirements .
If your business website runs on WordPress, the EU Accessibility Act (deadline passed in June 2025) means you're now legally required to meet WCAG 2.1 AA standards. This applies whether you built your site yourself, hired a developer, or use a page builder like Elementor or Oxygen.
In this comprehensive guide, you'll get a complete WordPress accessibility checklist with step-by-step instructions to audit and fix your site. We'll cover:
Common WordPress accessibility issues
Page builder-specific problems (Elementor, WPBakery, Oxygen, Gutenberg)
Free testing tools
Quick fixes you can implement today
When to call a professional
Bonus: Downloadable 50-point checklist at the end!
---
Why WordPress Sites Often Fail Accessibility Tests
WordPress itself is reasonably accessible out-of-the-box. So why do most WordPress sites fail?
The Real Culprits:
1. Page Builders - Elementor, WPBakery, Divi often add inaccessible HTML
2. Themes - Many popular themes ignore accessibility standards
3. Plugins - Sliders, forms, and galleries frequently have issues
4. User-Generated Content - Site owners unknowingly add inaccessible content
5. Lack of Testing - No one checks before launching
The Good News
WordPress accessibility issues are usually fixable. Most problems fall into a few categories that can be systematically addressed.
---
The WordPress Accessibility Checklist
Use this checklist to audit your WordPress site. We've organized it by priority.
⭐ Critical Issues (Fix Immediately)
These violations have the highest legal risk and impact the most users:
1. Keyboard Navigation
The Test:
Unplug your mouse
Navigate your entire site using only Tab, Enter, Shift+Tab, and Arrow keys
Can you access every link, button, and form field?
Common WordPress Problems:
Dropdown menus that only work with mouse hover
Modal pop-ups with no keyboard close
Sliders that can't be controlled via keyboard
"Hamburger" mobile menus that trap keyboard focus
How to Fix:
```javascript
// Add keyboard support to dropdown menus
jQuery('.menu-item-has-children > a').on('keydown', function(e) {
if (e.key === 'Enter' || e.key === ' ') {
e.preventDefault();
$(this).siblings('.sub-menu').toggle();
}
});
```
Page Builder Fixes:
Elementor: Enable "Improved Accessibility" in settings
Oxygen: Use built-in menu builder (better keyboard support)
WPBakery: May require custom JavaScript (hardest to fix)
2. Form Field Labels
The Test:
Inspect each form field
Does it have a visible `` element connected with `for` attribute?
Common WordPress Problems:
Contact Form 7 placeholder-only fields
WPForms without proper labels
Gravity Forms using placeholders instead of labels
How to Fix:
```html
Your Email *
```
Plugin-Specific Fixes:
Contact Form 7: Always add label tag, don't rely on placeholder
WPForms: Enable "Label" option for all fields
Gravity Forms: Use "Label Placement: Top" setting
3. Image Alt Text
The Test:
Right-click any image → Inspect
Check for `alt` attribute
Is the alt text descriptive (not just filename)?
Common WordPress Problems:
Images uploaded without alt text
Alt text = filename ("IMG_1234.jpg")
Decorative images with descriptive alt text
How to Fix:
In WordPress Media Library:
1. Click image
2. Fill "Alternative Text" field
3. Be descriptive: "Team meeting in Salzburg office" not "team.jpg"
Decorative Images:
```html
```
Pro Tip: Install "Accessibility Checker" plugin to find images missing alt text.
4. Color Contrast
The Test:
Use [WebAIM Contrast Checker](https://webaim.org/resources/contrastchecker/)
Test your text against background colors
Minimum ratio: 4.5:1 for normal text, 3:1 for large text
Common WordPress Problems:
Gray text on white backgrounds (common in themes)
White text on light colored backgrounds
Colored buttons with insufficient contrast
How to Fix:
In WordPress Customizer:
1. Navigate to Colors section
2. Test each color combination
3. Adjust to meet 4.5:1 minimum
CSS Fix:
```css
/* ❌ Poor contrast (2.5:1) */
.text-muted { color: #999999; }
/* ✅ Good contrast (4.6:1) */
.text-muted { color: #767676; }
```
5. Heading Structure
The Test:
View your page source
Check heading order (H1 → H2 → H3, no skipping)
Only one H1 per page
Common WordPress Problems:
Page builders allowing multiple H1s
Skipping from H2 to H4
Headings used for styling (not structure)
How to Fix:
Gutenberg: Use "Heading" block properly, follow hierarchy
Elementor:
Settings → Features → Enable "Improved DOM Output"
Manually set heading levels in each widget
Oxygen: Headings are semantic by default (good!)
Check Your Site:
```javascript
// Run in browser console to see heading structure
document.querySelectorAll('h1, h2, h3, h4, h5, h6').forEach(h => {
console.log(h.tagName + ': ' + h.textContent);
});
```
---
⭐⭐ Important Issues (Fix This Month)
6. Skip Navigation Link
What It Is:
A hidden link that appears when Tab is pressed, allowing keyboard users to skip repetitive navigation.
How to Add in WordPress:
```php
// Add to header.php (before )
Skip to main content
// Add to main content area
```
```css
/* CSS to hide/show on focus */
.skip-link {
position: absolute;
left: -9999px;
}
.skip-link:focus {
left: 10px;
top: 10px;
z-index: 9999;
background: #000;
color: #fff;
padding: 10px 20px;
}
```
7. Focus Indicators
The Test:
Tab through your site
Can you see where keyboard focus is at all times?
Common WordPress Problems:
CSS that removes outlines: `outline: none;`
Invisible focus states
Focus indicators too subtle
How to Fix:
```css
/* ❌ Never do this */
*:focus {
outline: none;
}
/* ✅ Enhanced focus indicators */
a:focus,
button:focus,
input:focus {
outline: 3px solid #d4a574;
outline-offset: 2px;
}
```
For Your Theme:
1. Go to Appearance → Customize → Additional CSS
2. Add the focus styles above
3. Adjust color to match your brand
8. ARIA Landmarks
What They Are:
Semantic regions that help screen reader users navigate.
How to Add:
```html
```
Most modern WordPress themes include these. Check by viewing page source.
9. Link Text
The Test:
Search your site for "click here" or "read more"
Are links descriptive out of context?
Common WordPress Problems:
"Read More" links on blog excerpts
"Click Here" calls-to-action
URLs as link text
How to Fix:
```html
Click here to learn about our services.
Learn about our web design services
function custom_excerpt_more($more) {
return '... Continue reading: '. get_the_title() .' ';
}
add_filter('excerpt_more', 'custom_excerpt_more');
```
10. Form Error Messages
The Test:
Submit a form with errors
Are error messages clearly visible?
Are they associated with the correct fields?
Common WordPress Problems:
Generic "Form submission failed" messages
Error messages not associated with fields
No indication of which fields have errors
How to Fix:
Contact Form 7:
```html
[text* your-name aria-required="true" aria-describedby="name-error"]
```
WPForms: Enable "Field Validation" in Form Settings
Gravity Forms: Use "Validation Message" for each field
---
⭐⭐⭐ Enhancement Issues (Nice to Have)
11. Video Captions
Requirements:
All videos must have captions/subtitles
Provide transcripts for audio-only content
WordPress Solutions:
Upload .VTT caption files with videos
Use YouTube's automatic captions (then edit for accuracy)
Add transcript below video player
12. PDF Accessibility
The Problem:
Many WordPress sites link to inaccessible PDFs.
Solutions:
Create accessible PDFs in source (Word, InDesign)
Add alternative HTML versions
Use plugins: "PDF Accessibility Checker"
13. Table Headers
For Data Tables:
```html
Product
Price
Web Design
€2,500
```
14. Language Declaration
Check:
```html
```
Most WordPress themes include this. Verify in page source.
15. Responsive Design
Test:
Mobile viewport meta tag present
Site usable at 200% zoom
No horizontal scrolling
---
Page Builder-Specific Issues
Elementor Accessibility Problems
Common Issues:
1. ❌ Multiple H1 headings
2. ❌ Icon-only buttons (no text)
3. ❌ Slider controls not keyboard accessible
4. ❌ Accordion/tab widgets missing ARIA
Elementor Fixes:
Enable Improved Accessibility:
1. Elementor → Settings → Features
2. Enable "Improved Accessibility Mode"
3. Enable "Improved DOM Output"
Icon Button Fix:
```html
Add aria-label="Descriptive Text"
```
Heading Fix:
Use only ONE H1 per page
Set heading level manually in each widget
Don't rely on default settings
WPBakery Page Builder (Visual Composer)
Verdict: Hardest page builder to make accessible.
Major Issues:
1. ❌ Generates non-semantic HTML
2. ❌ Heavy JavaScript that breaks keyboard navigation
3. ❌ No built-in accessibility features
4. ❌ Difficult to add ARIA attributes
Recommendation: Consider migrating to Gutenberg or Oxygen if accessibility is important.
Temporary Fixes:
Custom JavaScript to add ARIA labels
CSS to improve focus indicators
Regular manual testing
Oxygen Builder
Verdict: Best page builder for accessibility!
Strengths:
✅ Clean, semantic HTML output
✅ Full control over ARIA attributes
✅ No wrapper divs
✅ Developer-friendly
Tips:
Use "Structure" panel to see HTML hierarchy
Add ARIA labels via "Advanced" tab
Use semantic elements (header, nav, main, footer)
Gutenberg (Block Editor)
Verdict: Good accessibility out-of-the-box.
Strengths:
✅ Semantic HTML blocks
✅ Built-in heading hierarchy
✅ Image alt text prompts
✅ Keyboard navigation support
Tips:
Always fill alt text when prompted
Use "Heading" blocks (not Text with large font)
Check block descriptions for accessibility notes
---
Essential WordPress Accessibility Plugins
Free Plugins
1. WP Accessibility by Joe Dolson
Adds skip navigation link
Forces focus indicators
Removes title attributes
Adds landmark roles
2. Accessibility Checker
Scans posts/pages for issues
Highlights problems in editor
Provides fix suggestions
Free version covers basics
3. One Click Accessibility
Adds accessibility toolbar
User controls for font size, contrast
Skip navigation link
Focus highlighting
Premium Plugins
4. UserWay Accessibility Widget ($490/year)
Visual accessibility menu
AI-powered adjustments
Compliance monitoring
⚠️ Warning: Widget-only solutions don't ensure legal compliance. Use alongside code fixes.
5. WP ADA Compliance Check Pro ($29)
Detailed WCAG scans
Issue tracking
Remediation guides
---
Free WordPress Accessibility Testing Tools
Browser-Based Tools
1. WAVE (Web Accessibility Evaluation Tool)
Browser extension (Chrome/Firefox)
Visual feedback on page
Identifies errors and warnings
FREE
How to Use:
1. Install WAVE extension
2. Visit your WordPress page
3. Click WAVE icon
4. Review errors (red icons) and warnings (yellow)
2. axe DevTools
Chrome DevTools integration
Automated scanning
Guided manual tests
FREE
3. Lighthouse (Built into Chrome)
Comprehensive audits
Accessibility score 0-100
Specific recommendations
FREE
WordPress-Specific Tools
4. Accessibility Checker Plugin
Scans as you edit
Shows issues in real-time
Gutenberg integration
FREE (Premium $79/year)
Manual Testing Tools
5. Screen Readers
NVDA (Windows) - FREE
JAWS (Windows) - $95/year
VoiceOver (Mac) - Built-in, FREE
6. Keyboard Testing
Unplug your mouse!
Tab through entire site
Check for focus indicators
Test all interactions
---
WordPress Accessibility: Quick Wins
These fixes take under 1 hour and solve common problems:
1. Install WP Accessibility Plugin (10 minutes)
```
Plugins → Add New → Search "WP Accessibility" → Install → Activate
```
2. Add Alt Text to Existing Images (30 minutes)
```
Media → Library → Click each image → Add Alternative Text
```
Bulk Edit Tip: Use "Accessibility Checker" plugin to find images missing alt text.
3. Fix Color Contrast (15 minutes)
```
Appearance → Customize → Colors → Adjust to meet 4.5:1 ratio
Test with WebAIM Contrast Checker
```
4. Add Focus Indicators (5 minutes)
```
Appearance → Customize → Additional CSS → Add:
*:focus {
outline: 3px solid #d4a574;
outline-offset: 2px;
}
```
5. Enable Elementor Accessibility Features (2 minutes)
```
Elementor → Settings → Features
☑️ Improved Accessibility Mode
☑️ Improved DOM Output
```
---
When to Call a WordPress Accessibility Professional
DIY is Fine If:
✅ Simple 5-10 page site
✅ Using Gutenberg (not complex page builder)
✅ You have time to learn
✅ Low legal risk
Get Professional Help If:
❌ E-commerce site (legal compliance required)
❌ Using WPBakery (very difficult to fix)
❌ 50+ pages
❌ Complex custom functionality
❌ EU Accessibility Act applies to your business
❌ You don't have 40+ hours to invest
Professional WordPress Accessibility Audit: €500-800
[Learn more about our WordPress-specific audits →](#contact)
---
WordPress Accessibility Checklist Summary
Use this quick reference for your audit:
Critical (Do First)
[ ] Full keyboard navigation works
[ ] All form fields have labels
[ ] All images have descriptive alt text
[ ] Color contrast meets 4.5:1 minimum
[ ] Heading hierarchy is logical (no skipping)
Important (Do This Month)
[ ] Skip navigation link added
[ ] Focus indicators visible
[ ] ARIA landmarks present
[ ] Descriptive link text (no "click here")
[ ] Form error messages clear
Enhancement (Nice to Have)
[ ] Videos have captions
[ ] PDFs are accessible
[ ] Tables have proper headers
[ ] Language declared in HTML
[ ] Responsive at 200% zoom
Page Builder Specific
[ ] Elementor: Accessibility mode enabled
[ ] Only one H1 per page
[ ] Icon buttons have aria-label
[ ] Sliders keyboard accessible
[ ] Accordions/tabs have ARIA
---
Downloadable Resources
📥 50-Point WordPress Accessibility Checklist (PDF)
Complete printable checklist with step-by-step instructions.
[Download Free Checklist →](#download)
📥 WordPress Accessibility Code Snippets
Copy-paste fixes for common issues.
[Download Code Pack →](#download)
📥 Page Builder Comparison Guide
Accessibility ratings for Elementor, Oxygen, WPBakery, Gutenberg.
[Download Guide →](#download)
---
Real WordPress Accessibility Example
See it in action! This website is built with WordPress and meets WCAG 2.1 AAA standards. We've implemented:
✅ Full keyboard navigation
✅ Skip to content link (press Tab to see it)
✅ Enhanced focus indicators (Tab through the page)
✅ Accessibility widget with user controls (click amber button bottom-right)
Try the widget now: Adjust font size, contrast, spacing and see how it enhances user experience!
---
Common WordPress Accessibility Myths
Myth 1: "WordPress is automatically accessible"
Reality: WordPress core is accessible, but themes, plugins, and content often aren't.
Myth 2: "Accessibility plugins make my site compliant"
Reality: Plugins help, but can't fix structural issues in your theme/content.
Myth 3: "My site looks good, so it's accessible"
Reality: Visual design ≠ accessibility. Screen readers don't "see" your site.
Myth 4: "Accessibility is expensive and time-consuming"
Reality: Basic accessibility can be achieved in a few hours. Professional help costs €1,200-7,500 depending on complexity.
Myth 5: "Only disabled people benefit from accessibility"
Reality: Everyone benefits: mobile users, elderly, people in bright sunlight, etc.
---
Conclusion: Make Your WordPress Site Accessible Today
WordPress powers your business website - make sure it's accessible to all potential customers. With this checklist, you can:
1. Audit your current site using free tools
2. Fix critical issues yourself (1-2 hours)
3. Decide if you need professional help
4. Ensure compliance with EU Accessibility Act
Start with Our WordPress-Specific Audit
We specialize in WordPress accessibility for Austrian businesses:
€500 - Small WordPress site audit (up to 10 pages)
€800 - Large WordPress site audit (10+ pages)
What's Included:
Page builder-specific testing (Elementor, Oxygen, etc.)
Plugin compatibility analysis
Theme accessibility review
Detailed remediation roadmap
WordPress-specific fix instructions
Based in Salzburg, serving all of Austria.
[Schedule Your WordPress Accessibility Audit →](#contact)
---
Pro Tip: Experience our Gold package accessibility widget right now! Click the amber button in the bottom-right corner. This same widget can be installed on your WordPress site.
---
About the Author: Amadeus Web Design specializes in WordPress accessibility for Austrian businesses. We've audited and fixed over 200 WordPress sites across all major page builders.
Last Updated: December 2025