Top 10 Accessibility Fixes for WordPress Sites (WCAG 2.2, European Accessibility Act)

by Francis Rozange | Oct 1, 2026 | WordPress

On June 4, 2026, the Caen court in France ordered Carrefour France to make its online grocery site accessible to people with disabilities. The retailer’s own accessibility statement claimed a 71% conformity rate. The judge ruled that an online store cannot be only somewhat accessible.

The context has changed. Since June 28, 2025, the European Accessibility Act has applied to e-commerce services provided to consumers. And according to the annual WebAIM Million study, 96% of the home pages of the million most visited sites still had automatically detectable accessibility errors in early 2026.

The good news is that these errors look alike. Six error types account for almost everything tools detect, and most can be fixed in the theme or in the content. Here are the ten priority fixes for a WordPress site, ranked first by how often they appear on real sites, then by how much they hinder users, with how to check each one.

What the European Accessibility Act really requires

Who is covered since June 28, 2025

Directive (EU) 2019/882 covers a specific list of services provided to consumers, including e-commerce services: services provided at a distance, through a website or an app, with a view to concluding a contract with a consumer. A store that only sells to businesses falls outside that definition, and public sector sites come primarily under a different directive, 2016/2102, although their online sales services remain subject to the European Accessibility Act.

Microenterprises providing services are exempt: fewer than ten people, and annual turnover or a balance sheet total not exceeding two million euros. The transition period to 2030 does not protect existing online stores either: according to France’s consumer protection authority, the DGCCRF, a website is not a product within the meaning of the directive.

Which standard to follow in October 2026

The directive does not name WCAG, the W3C’s accessibility guidelines. It sets functional requirements, and conformity is presumed through harmonized European standards, in practice EN 301 549. The reference version is still 3.2.1, based on WCAG 2.1 level AA. Version 4.1.1, aligned with WCAG 2.2, was published in September 2026 but had not yet been cited in the Official Journal of the EU.

In France, RGAA 4.1.2 remains the assessment framework, and an RGAA 5 incorporating WCAG 2.2 is announced for the end of 2026. Our advice is simple: aim for WCAG 2.2 level AA, the W3C’s current standard, also adopted by ISO in 2025, and the one WordPress’s own code now targets.

What enforcement looks like in France

In France, the DGCCRF checks online stores. Breaches are fifth-class petty offenses, with fines of up to 7,500 euros for a company that add up per offense, on top of injunctions with daily penalties. The directive also requires publishing information about the service’s accessibility, in the terms and conditions or an equivalent document.

How we ranked these ten fixes

The first five fixes follow the frequency of errors recorded by the WebAIM Million 2026, the benchmark study of the most common errors, across a million home pages. The following ones complete the list with problems automated tools measure poorly, such as keyboard navigation or menu behavior, and with two simple defects, the skip link and the document language. To judge how much they hinder users, we draw on WebAIM’s survey of 1,539 screen reader users.

In that survey, the top obstacle cited is still CAPTCHA, a topic covered in our guide to stopping spam on WordPress. The second concerns menus, tabs and dialogs that do not behave as expected.

1. Text contrast: the most widespread defect

Why it matters

Light gray text on a white background is unreadable for a person with low vision, and hard for everyone in bright sunlight. According to the WebAIM Million 2026, nearly 84% of home pages have low-contrast text, with more than thirty instances per page on average. WCAG requires a contrast ratio of at least 4.5 to 1 for regular text, and 3 to 1 for large text and interface components.

How to fix it in WordPress

Colors come from the theme palette: from the theme.json file and global styles in a block theme, from the Customizer in a classic theme, and from each page builder’s own settings. Fix the palette at the source rather than block by block. Links inside a paragraph must also stand out from the text, ideally with an underline.

How to check

WebAIM’s contrast checker gives the exact ratio for a pair of colors. The WAVE and axe extensions spot problems page by page, but hover and focus states have to be checked by hand.

2. Image alternative text

Why it matters

A screen reader reads the alternative text in place of the image. Without it, it announces a file name, or nothing. The WebAIM Million 2026 finds missing alternative text on more than half of home pages, and questionable text such as “image” or a file name on 10.8% of the images that have some.

How to fix it in WordPress

Alternative text is entered in the Media Library or in the Image block sidebar. Describe what the image contributes to the content, not what it looks like. WordPress 7.1 added an option to mark an image as decorative, which hides it from screen readers: keep it for purely ornamental images.

Beware of a trap reported in August 2026: ticking that option wipes the existing alternative text and caption, and unticking it does not restore them: only undo (Ctrl+Z) and revisions bring them back. The issue was closed with no fix planned. So check before you click.

How to check

WAVE flags images without alternative text. Extensions such as Editoria11y do it directly in the editor, while writing. Whether the text is relevant can only be judged by a human.

3. Form labels

Why it matters

A field without a label is a silent field for a screen reader: the user does not know what to enter. According to WebAIM, half of home pages have at least one unlabeled field, and a third of fields are not properly labeled. The usual culprits on WordPress are the search field, the newsletter signup and page builder forms.

How to fix it in WordPress

Every field needs a visible label tied to it in the code. Placeholder text in the field does not replace a label: it disappears as soon as you type. Our comparison of WordPress form plugins compares their default accessibility. The WP Accessibility plugin can also add labels to the search and comment fields of a faulty theme.

What WCAG 2.2 adds

Two criteria in version 2.2 directly concern forms: do not ask again for information already provided in the same process, and do not require a cognitive test, such as memorizing a code, to log in without offering an alternative.

4. Empty links and buttons

Why it matters

A social media icon, a slider arrow or a three-line menu button often has no accessible name. The screen reader then announces “link” or “button”, without saying where it leads. The WebAIM Million finds empty links on nearly half of home pages, and empty buttons on nearly a third, a share that has risen since 2019.

How to fix it in WordPress

Give every control a name: visually hidden text with the screen-reader-text class, or an aria-label attribute. Avoid “Read more” or “Click here” links with no context, which WebAIM finds on one page in seven. Page builders often add icon buttons: our comparison of WordPress page builders helps you choose. WordPress 7.1 also introduced functions to create accessible tooltips.

How to check

WAVE and axe flag empty links and buttons. For clear wording, have a screen reader display the list of links: each one should make sense out of context.

5. Heading structure

Why it matters

According to WebAIM’s survey, seven in ten screen reader users start by jumping from heading to heading on a long page. Headings chosen for their size rather than their level blur that map. The WebAIM Million finds skipped heading levels on more than four pages in ten, and several first-level headings on nearly one page in five.

How to fix it in WordPress

Choose the Heading block’s level according to the content’s hierarchy, and set the size separately in the styles. Check the theme templates: the site title should not be a first-level heading on every page. WCAG does not formally require strictly consecutive levels, but a structure that reflects the content.

How to check

WAVE shows the page’s heading outline, and Editoria11y and Accessibility Checker both flag skipped levels in the editor.

Glowing glass scales of justice, a cube on one side and small keys on the other

The Carrefour case: what a judge has already required of an online store

The order issued in Caen on June 4, 2026 is one of the first French decisions applying the new accessibility rules to e-commerce. Its full text, published by the legal collective Intérêt à Agir, reads like a list of fixes.

The parties and the procedure

In early July 2025, two associations, ApiDV, which supports people with visual impairments, and Droit Pluriel, which works on access to justice for disabled people, sent formal notices to four retailers: Auchan, Carrefour, E.Leclerc and Picard. In November, they brought these retailers before the courts in summary proceedings. The Carrefour case was heard on April 9, 2026 in Caen, the court with jurisdiction over Carrefour France’s head office in Mondeville.

Carrefour’s defense

Carrefour did not dispute being subject to the obligation. It argued that the remaining non-conformities did not amount to a manifestly unlawful disturbance, that accessibility should be assessed globally rather than criterion by criterion, and that it had committed significant resources. Its own accessibility statement showed 71.21% conformity with RGAA, and it produced a multi-year accessibility plan for 2024 to 2026.

What the judge noted

The associations produced audits, three user testimonies and video captures. The order lists the barriers still present according to Carrefour’s own accessibility statement, and many of them match the fixes listed here: irrelevant alternative text, insufficient contrast, unclear link text, elements not keyboard accessible, focus not visible enough, information not structured with headings, forms without labels, repeated blocks that cannot be bypassed.

The judge rejected the overall-rate argument: an online store must be fully accessible. She pointed out that companies had 28 months between transposition and the rules taking effect, and rejected the disproportionate burden argument as not demonstrated.

The decision

Carrefour must comply, under a penalty of 500 euros per day that only starts running six months after the order. It must pay the associations a provisional award of 10,000 euros toward their non-pecuniary damage, plus 3,000 euros toward their legal fees, and bear the court costs. The judge did, however, refuse to suspend the site, which would deprive all other consumers, and to order the decision published.

Carrefour said it reserved the right to appeal, and announced it aimed for full compliance by the end of 2026. We found no trace of an appeal as of October 1, 2026.

The Lille counterpoint

A month earlier, on May 5, 2026, the Lille court had dismissed the same associations’ claim against Auchan E-Commerce, finding that the 250-million-euro turnover threshold of France’s 2005 law still applied, and that this subsidiary fell below it. The associations appealed to the Douai Court of Appeal. The question therefore remains open for mid-sized merchants, while the DGCCRF, on company size alone, exempts only microenterprises.

What to take away

A conformity rate is not a defense: the judge requires every applicable criterion. The accessibility statement you publish can be used as evidence against you. A multi-year plan does not suspend the obligation once the date has passed: it only justified the six-month delay before the penalty. Above all, the barriers judged are ordinary ones: the ones covered here, fixable in a theme and in the content.

6. Keyboard navigation and visible focus

Why it matters

Many people browse without a mouse: with the keyboard, a switch or voice control. If a menu, a button or a form cannot be reached by keyboard, it does not exist for them. And if the focus, the outline that shows the active element, is invisible, they get lost on the page. The Caen order notes exactly these two defects.

How to fix it in WordPress

Look in the theme or the page builder for CSS rules that remove the focus outline, such as outline: none, and replace them with a visible, contrasted outline. WCAG 2.2 adds two useful requirements: an element that receives focus must not be entirely hidden by a sticky header, a cookie banner or a chat widget, and click targets must measure at least 24 pixels square, with some exceptions.

How to check

Unplug the mouse and move through the page with the Tab key: every interactive element should be reached in a logical order, with focus always visible, and no trap you cannot get out of.

7. Skip links and landmarks

Why it matters

A skip link, often labeled “Skip to content”, lets users jump over the menu repeated on every page. According to the WebAIM Million, only one home page in six offers one, and one in ten is broken. Page landmarks, such as the main area or the navigation, offer another way to jump over these blocks.

How to fix it in WordPress

Block themes get a skip link added by WordPress core, provided the template contains a main element. Classic themes must provide their own: it must be the first element reached by keyboard, appear on focus and take the user to the main content area. The WP Accessibility plugin can add one to a theme that lacks it.

How to check

Load a page and press Tab once: the skip link should appear. Activate it: focus should move to the main content. Test on every template, not just the home page.

8. Accessible menus and modal dialogs

Why it matters

It is the second source of frustration for screen reader users: menus, tabs and dialogs that do not behave as expected. On WordPress, this concerns dropdown menus, the mobile menu, cookie banners, popups and the mini-cart.

How to fix it in WordPress

For a modal dialog, the W3C’s ARIA Authoring Practices Guide is clear: focus moves into the dialog when it opens, tabbing stays inside, the Escape key closes it and returns focus to the element that opened it. For site navigation, the W3C advises against the ARIA menu role and recommends simple buttons that state whether they are expanded.

WordPress’s Navigation block can open submenus on click rather than on hover, and WordPress 7.1 added a Tabs block that follows the W3C keyboard pattern. In a store, adding to cart must be announced to screen readers, and the checkout tested with the keyboard, on top of the settings covered in our guide to WooCommerce checkout optimization.

How to check

Open every menu and dialog with the keyboard, then with a screen reader: the open or closed state should be announced, and closing should bring you back where you were.

9. Document language

Why it matters

A screen reader picks its voice and pronunciation from the page’s declared language. Without it, it may read French text with an English accent. The WebAIM Million finds a missing language on about one home page in seven. It is the easiest error to fix on this list.

How to fix it in WordPress

WordPress declares the language from the site language setting, provided the theme uses the dedicated function in its html tag. A hard-coded header or a misconfigured multilingual plugin can remove or falsify it. Check that each language version declares the right language.

How to check

View the source and check the lang attribute of the html tag, on one page per language.

10. Remove the overlay and test for real

Why overlays do not make a site compliant

Overlays are the widgets that promise to make a site accessible with one line of code. In April 2025, the US Federal Trade Commission finalized an order requiring the vendor accessiBe to pay one million dollars: according to the FTC’s complaint, its widget did not make all sites WCAG-compliant, and its claims were false, misleading or unsubstantiated. The complaint cited keyboard traps and missing alternative text on sites running it.

In Europe, the European Disability Forum stated as early as 2023 that overlays do not make a site compliant with European legislation. The most installed overlay plugin on WordPress, from Elementor, itself says it is not intended to make a site fully compliant. Fixes have to be made in the theme and the content.

How to test for real

Automated tools are essential but partial. WebAIM’s WAVE uses the same engine as the WebAIM Million, which points out that the absence of detected errors does not prove a page is accessible. Lighthouse, in Chrome, excludes manual checks from its score: a 100 is not conformance.

Complement them with a keyboard test and a screen reader: NVDA is free on Windows, and VoiceOver is built into Apple devices. In WordPress, Accessibility Checker and Editoria11y flag problems while you write, which keeps you from publishing them.

How to prioritize on an existing site

Start with the theme, which carries the errors repeated on every page: color palette, focus, skip link, language, menus. Then fix the templates, then the content: alternative text, headings, link text. A theme with the “accessibility-ready” tag offers a baseline reviewed by the WordPress theme team, but guarantees nothing for the content and plugins you add. Our selection of free WordPress block themes shows which ones carry it.

Finally, if your site falls under the directive, publish the required accessibility information. And train the people who publish: poorly structured content undoes the work of an accessible theme.

Summary table

Fix WCAG criterion Where to fix How to check
Contrast 1.4.3, 1.4.11 Theme palette Contrast checker, WAVE
Alternative text 1.1.1 Media Library, Image block WAVE, human review
Form labels 1.3.1, 3.3.2 Form plugin, theme WAVE, axe
Empty links and buttons 2.4.4, 4.1.2 Theme, page builder WAVE, links list
Heading structure 1.3.1, 2.4.6 Content, templates Heading outline
Keyboard and focus 2.1.1, 2.4.7, 2.4.11 Theme CSS Browsing without a mouse
Skip link 2.4.1 Theme First Tab press
Menus and modals 2.1.2, 4.1.2, 4.1.3 Navigation block, plugins Keyboard, screen reader
Document language 3.1.1 Settings, theme lang attribute
Real testing All Process NVDA, VoiceOver, keyboard

Frequently asked questions

Is my site covered by the European Accessibility Act?

If you sell online to consumers and are not a microenterprise, yes. A brochure site with no sales, a business-only store or a service microenterprise is excluded. In France, the turnover threshold question for mid-sized merchants is still being argued in court.

Is an accessibility plugin enough?

No. Overlays do not make a site compliant, as the FTC and the European Disability Forum have pointed out. Checker plugins help find problems, but the fixes are made in the theme and the content.

Should I aim for WCAG 2.1 or 2.2?

The European legal reference still relies on WCAG 2.1, but the new European standard and the upcoming RGAA 5 move to WCAG 2.2. Aim straight for version 2.2: it adds few criteria, all useful, and will spare you a second upgrade.

Is an “accessibility-ready” theme enough?

It provides a reviewed baseline: skip link, keyboard navigation, contrast, structure. But the content you publish and the plugins you add can undo that work.

How can I test without being an expert?

Install the WAVE extension, browse your main pages with the keyboard, then listen to one with NVDA or VoiceOver. These three steps already reveal most of the problems covered here.

Conclusion

Accessibility is no longer just good practice for an online store: it is a legal obligation, and a judge has already shown that a partial conformity rate is not enough. The errors at stake are well known and repetitive: contrast, alternative text, labels, empty links, headings, focus.

Fix them at the source, in the theme, then in the content, and test with a keyboard and a screen reader rather than with a widget. It is the only way to make a site truly usable by everyone, and defensible if the question ever comes up.

Sources


LaFactory designs, builds and maintains WordPress and WooCommerce sites, accessibility work included, and develops its own plugins. Talk to us about your WordPress project.

Francis Rozange

Former section editor at Libération, he runs LaFactory, an international web agency since 1996.

Cart