Recent surveys estimate over 61 million adults in the United States live with some form of disability. That‘s 1 in 4 people.
Additionally, web accessibility becomes increasingly vital as people age and experience deteriorating abilities over time. By 2030, over 20% of the US population will be aged 65+.
With around 43% market share among content management systems, WordPress powers a massive proportion of the web. Ensuring WordPress sites provide good accessibility is crucial for an inclusive internet.
Unfortunately, studies indicate most websites, including WordPress sites, currently fall short in meeting accessibility standards.
CMS Platform | Sites Meeting WCAG Criteria |
---|---|
WordPress | 34% |
Joomla | 31% |
Drupal | 47% |
By following web accessibility guidelines and leveraging purpose-built WordPress plugins, you can help bridge these gaps in access facing your users.
This guide will walk through key aspects in understanding and improving accessibility for your WordPress site.
Common Accessibility Issues in WordPress
Automated accessibility checkers and manual audits reveal some frequent accessibility issues across WordPress sites:
1. Lack of Semantic HTML Markup
- Over-reliance on
<div>
over proper header, navigation, main, etc. elements - Solutions:
- Use semantic sectioning elements in your theme template files
- Enable accessibility-focused WordPress plugins to add ARIA roles
2. Insufficient Color Contrast
- Failing color contrast ratio between text and background colors
- Solutions:
- Use online contrast checking tools
- Switch to more distal color combinations
3. Missing Alt Text for Images
- Visual content with no text equivalent provided
- Solution:
- Manually add descriptive alt text for all image media
4. Poor Link Context
- Generically-labeled links like "Click Here"
- Solution:
- Improve link text to be understandable out of context
5. Inaccessible Forms
- Form labels and structure missing for screen readers
- Solutions:
- Programmatically associate labels to fields
- Follow recommended coding structures for accessible form markup
Understanding the WCAG Accessibility Standard
The Web Content Accessibility Guidelines (WCAG) 2.1 categorizes criteria into 4 guiding principles that inform accessible design:
Principle | Description |
---|---|
Perceivable | Users can perceive/access content informats suitable to them |
Operable | Interface and navigation work for all users |
Understandable | Content and controls are intelligible |
Robust | Interpreted reliably by varied user agents |
Under these lie 12 specific accessibility guideline criteria ranked by priority levels from A (highest) to AAA (lowest).
Even meeting the Level A priorities can greatly improve WordPress site accessibility, such as:
1.4 Distinguishable: use sufficient color contrast ratios over 4.5:1
2.4 Navigable: provide mechanism to bypass blocks of content
4.1 Compatible: maximize compatibility with current/future user agents
Going beyond Level A to address even more criteria builds a website usable in the greatest number of scenarios.
Validating and Testing Accessibility Compliance
Verifying WordPress site accessibility generally involves automated scanning tools combined with manual audits.
Tool | Pros | Cons |
---|---|---|
WAVE Tool | Free browser extension, easy site scan, highlighting of elements with issues | Doesn‘t cover all WCAG criteria, can generate false positives |
Siteimprove | Offers plugin with dashboard of detailed accessibility reports | Premium paid plans are expensive |
aXe Coconut | Test against WCAG standards, CLI accessibility test runner | Requires developer setup and open source adaptation |
Validating also requires manually tabbing through pages using assistive technologies to check for items automated checkers could miss.
Customizing Advanced Accessibility Components
Beyond the basics, developers can leverage WordPress template functions to incorporate advanced accessible pieces:
// Add Skip Links
add_action( ‘wp_body_open‘, ‘wpsites_skip_link‘, 5 );
// Landmark Roles to Semantic Elements
<header role="banner">
<nav aria-label="Main Navigation"></nav>
</header>
// Manage Keyboard Focus Order
$(‘header‘).on(‘keydown‘, trapFocus);
Improving accessibility should be an ongoing initiative. Use this guide as a starting point to make your WordPress site accommodating to more users.