=== EAA Accessibility Statement and Checker ===
Contributors: catcodestudio
Tags: accessibility, eaa, wcag, accessibility statement, barrierefreiheit
Requires at least: 6.2
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

EAA accessibility information for your country and a page check with axe-core. No account, no cloud, no overlay.

== Description ==

Since 28 June 2025 the European Accessibility Act (Directive (EU) 2019/882) applies to e-commerce and other consumer services. A provider has to publish information on how the service meets the accessibility requirements, keep it current and take changes into account. Each country put this into its own law, with its own wording and authority.

This plugin works on any WordPress site, with or without WooCommerce, and helps with two jobs:

1. **Write and publish the information.** A guided form that follows Annex V of the directive in the form of the chosen country: Germany, France, the Netherlands, Poland, Italy or Spain, or the general text of the directive for another EU country. It fills in the legal reference and, where one authority publishes its details, the competent authority. The page is created for you with a shortcode, in the national language or in English.
2. **Check your pages.** Your main pages are opened in your browser from the admin and checked with [axe-core](https://github.com/dequelabs/axe-core) against WCAG 2.1 or 2.2 Level A and AA, at desktop width and at 320 px. Every finding is mapped to its WCAG success criterion and EN 301 549 clause. A checklist covers what automation cannot judge: keyboard use, error handling, dialogs, embedded widgets, zoom and reflow.

A failing checklist item can carry a public explanation that goes straight into the "known limitations" of your information, so the published page stays in step with what you actually tested.

= What this plugin does not do =

* It does not make a site accessible and it does not make a site compliant. It adds no overlay, no toolbar and no script for visitors. The fixes belong in your theme and plugins; the check shows where.
* It does not decide whether the law applies to you. Micro-enterprises that provide services are exempt in the directive and in the national laws named here. It is not legal advice.
* Automated rules find only part of the possible barriers. The result of your evaluation is your own statement.
* It needs no account, no API key and no cloud service.

= What differs by country =

* **Germany:** BFSG § 14 and Annex 3, authority MLBF, right to apply under § 32.
* **France:** code de la consommation L. 412-13, D. 412-57 and its annex, written and oral form, DGCCRF.
* **Netherlands:** Civil Code 6:230fa to 6:230fd, written and oral form, ACM and its reporting periods.
* **Poland:** Act of 26 April 2024, Art. 32 and 33, complaints to the provider with a 30-day answer period (Art. 35 to 37), notifications to the President of PFRON (Art. 67).
* **Italy:** Legislative Decree 82/2022, Art. 12 and Annex IV, AgID and its guidelines.
* **Spain:** Ley 11/2023, Art. 13. Each autonomous community names its authority, so you enter yours.

<!-- @pro-begin -->
= Free =

* Accessibility information for one country, with page creation and an optional footer link
* A spoken version: address of a recording, or an offer to read the text by phone
* Automated check of the main pages (home, information page, contact, terms, privacy, search, login; with WooCommerce also checkout, cart, product, shop, category, account), desktop and 320 px
* WCAG 2.1 or 2.2 depending on the benchmark you name
* Checklist with national notes and official sources
* Warnings when the status "meets the requirements" contradicts your checklist or the check results
* Change log of theme and plugin updates since the last review and a review reminder in the admin

= Pro =

* The information for several countries at the same time, each in its language and with its authority
* A wider sample of pages: the newest posts of every public content type and any pages you list
* Check history with new and fixed issues
* Printable audit report, CSV export and a draft notice to the authority
* Accessible barrier report form with inbox, statuses, e-mail notification and answer dates
* E-mail reminders and change digests to several recipients
* Export and import of settings, information and checklist for agencies

Pro is licensed for 1 to 5 years; a 7-day trial starts only when you click the button on the Licence tab.

<!-- @pro-end -->
= Sources =

* Directive (EU) 2019/882: https://eur-lex.europa.eu/eli/dir/2019/882/oj
* Germany, BFSG: https://www.gesetze-im-internet.de/bfsg/
* France, code de la consommation: https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000048180389
* Netherlands, Stb. 2024, 87: https://zoek.officielebekendmakingen.nl/stb-2024-87.pdf
* Poland, Dz.U. 2024 poz. 731: https://eli.gov.pl/eli/DU/2024/731/ogl
* Italy, AgID guidelines: https://trasparenza.agid.gov.it/download/10081.html
* Spain, Ley 11/2023: https://www.boe.es/buscar/act.php?id=BOE-A-2023-11022
* WCAG 2.2: https://www.w3.org/TR/WCAG22/

The texts were compared with these sources on 1 November 2026. Laws change: check them before you publish.

== Privacy ==

* The automated check runs in the administrator's browser. The page and the result never leave your site.
* With WooCommerce, the check puts one product in the administrator's own cart for cart and checkout when it is empty and removes it afterwards.
<!-- @pro-begin -->
* The barrier report form (Pro) stores name, e-mail, page and message in your database and sends a notification e-mail from your site.

== External services ==

The Pro build connects to catcode.com.ua, the plugin's own licence and update service, when a licence key or the trial is used: it sends the key, the site address and, for the trial, the e-mail address you enter. Terms: https://catcode.com.ua/terms/ Privacy: https://catcode.com.ua/privacy-policy/
<!-- @pro-end -->

== Third-party code ==

axe-core 4.13.0 by Deque Systems, Inc. is bundled unmodified in `vendor/axe-core/` under the Mozilla Public License 2.0. The file carries no "Incompatible With Secondary Licenses" notice, so section 3.3 of the MPL 2.0 allows it to be distributed as part of this GPL-licensed plugin. The source code of this version is available at https://github.com/dequelabs/axe-core (tag v4.13.0).

== Frequently Asked Questions ==

= Does this make my site compliant with the EAA? =

No. It helps you write the information and find barriers. Whether a site meets the requirements depends on the site, on manual testing and on your own evaluation.

= Do I need WooCommerce? =

No. With WooCommerce the check also covers cart, checkout and product pages, and the default text names guest checkout and your payment methods.

= Where do I put the shortcode? =

`[catcode_eaa_statement]` on any page; the plugin can create the page for you. Optional attributes: `country="NL"`, `heading="2"`.

= My country is not in the list =

Choose "Another EU country" for the general text of the directive, enter the authority yourself and check the national law.

= Why must I add a recording? =

The directive and the French, Dutch, Italian and Spanish texts ask for the information in written and oral form. Upload a recording of the text and paste its address, or give a phone number where you read it out.

= The check says the page did not answer in time =

A security plugin or the server may forbid showing your site in a frame (X-Frame-Options, Content-Security-Policy frame-ancestors). Use "Run in a new tab": the result is the same.

= Which standard should I name? =

The one you actually evaluated against. The choice also switches the WCAG version of the check and the checklist.

= What happens to my data when I delete the plugin? =

Nothing, unless `define( 'CCEAA_DELETE_DATA', true );` is set in wp-config.php. Then the tables and options are removed. The information page is never deleted.

== Changelog ==

= 1.0.0 =
* First release.
