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.

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
- WebAIM (2026). The WebAIM Million
- WebAIM (2024). Screen Reader User Survey #10
- W3C (October 5, 2023, updated December 12, 2024). Web Content Accessibility Guidelines 2.2
- W3C WAI. What’s New in WCAG 2.2
- W3C WAI (October 21, 2025). WCAG 2.2 Approved as an ISO Standard
- EUR-Lex (April 17, 2019). Directive (EU) 2019/882 on the accessibility requirements for products and services
- European Commission. European Accessibility Act
- AccessibleEU (September 7, 2026). The European accessibility standard EN 301 549 has been updated
- DGCCRF (November 13, 2025). Professionnels : vos produits et services doivent être conformes à la directive Accessibilité
- DINUM. RGAA, scope of application
- DINUM (March 2, 2026). RGAA 5
- Tribunal judiciaire de Caen (June 4, 2026). Summary order, ApiDV and Droit Pluriel v. Carrefour France
- Intérêt à Agir (June 10, 2026). Une décision majeure pour l’accessibilité numérique
- Le Monde, Anne-Aël Durand (June 10, 2026). Carrefour condamné pour l’inaccessibilité des courses en ligne aux malvoyants
- Village de la Justice, Simon Parier (June 12, 2026). Accessibilité numérique du e-commerce aux personnes en situation de handicap : « sans préjudice » … pour qui ?
- FTC (April 22, 2025). FTC Approves Final Order Requiring accessiBe to Pay $1 Million
- Overlay Fact Sheet. Overlay Fact Sheet
- European Disability Forum and IAAP (May 17, 2023). Accessibility overlays don’t guarantee compliance with European legislation
- WordPress Developer Resources. Accessibility Coding Standards
- Make WordPress Themes (May 2026). Accessibility-Ready Theme Requirements
- WP Accessibility Knowledge Base. Skip to content link
- Gutenberg Times, Birgit Pauli-Haack (August 12, 2026). WordPress 7.1 Source of Truth
- GitHub, Gutenberg (August 2026). Issue 82002, Mark as decorative
- W3C WAI. Selecting Web Accessibility Evaluation Tools
- W3C WAI. ARIA Authoring Practices Guide, Dialog (Modal) Pattern
- W3C WAI. ARIA Authoring Practices Guide, Example Disclosure Navigation Menu
- WebAIM. WAVE Web Accessibility Evaluation Tools
- Chrome for Developers. Lighthouse accessibility scoring
- WordPress.org. Web Accessibility by Elementor
LaFactory designs, builds and maintains WordPress and WooCommerce sites, accessibility work included, and develops its own plugins. Talk to us about your WordPress project.
