How to Improve Accessibility on Your WordPress Site

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 PlatformSites Meeting WCAG Criteria
WordPress34%
Joomla31%
Drupal47%

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:

PrincipleDescription
PerceivableUsers can perceive/access content informats suitable to them
OperableInterface and navigation work for all users
UnderstandableContent and controls are intelligible
RobustInterpreted 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.

ToolProsCons
WAVE ToolFree browser extension, easy site scan, highlighting of elements with issuesDoesn‘t cover all WCAG criteria, can generate false positives
SiteimproveOffers plugin with dashboard of detailed accessibility reportsPremium paid plans are expensive
aXe CoconutTest against WCAG standards, CLI accessibility test runnerRequires 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.

We will be happy to hear your thoughts

      Leave a reply

      TechUseful