Description
The plugin connects your WordPress installation to an auditing service for digital
accessibility. From the admin area you can start a scan, review the open findings together with
a note on how to fix them, and output the text of your accessibility statement on a page via
shortcode or block.
Under Tools Accessibility the findings of the last scan are laid out as a work list: for
each rule the severity, the success criterion, the number of occurrences, what needs to be done
and which pages are affected. Expand a rule to see its individual occurrences — page, selector,
the measured values and the HTML snippet — so you can find the spot in WordPress. Below that,
the page quota of the current billing period. You fix things in WordPress; then you start the
next scan from the same place.
Screenshots of the occurrences stay on the service’s website and are reachable from the link to
the full report.
The statement is embedded server-side — so it is fully present without JavaScript and for
assistive technologies.
What the plugin does not do
It does not change your site and does not repair anything automatically. So-called
accessibility overlays do not remove barriers, regularly make things worse for people using
assistive technologies, and are not proof of conformance.
External services
This plugin calls an external service whose address you enter yourself during setup (default:
barrierepruefung.de).
What is transmitted:
- the address of this site,
- the API token you created,
- the ID of your site within the service.
No content and no personal data of your visitors are transmitted. Transmission happens
when you start a scan, when you verify the domain, when the page Tools Accessibility is
opened (at most every five minutes, from the cache after that), when you expand a rule to see
its occurrences, or when the statement is retrieved (at most once an hour, likewise from the
cache after that).
Privacy policy of the service: https://barrierepruefung.de/datenschutz
Terms of service: https://barrierepruefung.de/agb
Shortcode
[barrierefreiheitserklaerung] outputs the text of your accessibility statement, rendered on
the server. The block “Accessibility statement” offers the same scope and the same embedding —
with the settings teil, stand and ueberschrift.
Example for the complete statement:
[barrierefreiheitserklaerung]
Example for the non-conformance section only, embedded one level deeper:
[barrierefreiheitserklaerung teil="maengel" ueberschrift="3"]
teil
Which excerpt of the statement is output.
komplett(default) — the complete statement.maengel— the section on known barriers only.kontakt— the section with the contact details for feedback only.
An unknown value returns the complete statement without an error message, exactly like
komplett — and so does the case where the requested section is not found in the statement
that was loaded.
ueberschrift
The level given to the topmost heading of the output (default 2). It is measured relative to
the topmost heading that actually occurs in the statement — not fixed to an h1 — so that the
text fits into the heading hierarchy of your page.
Values from 2 to 4 are allowed; smaller or larger values are clamped to that range without
an error message (1 therefore behaves like 2, 5 like 4). Headings further down inside
the statement are shifted along accordingly, but never beyond h6.
stand
ja (default) appends a paragraph with the version number and the date of the statement — but
only if the statement that was loaded brings a date with it. If it does not, the paragraph is
omitted even with stand="ja". Any other value suppresses the paragraph in every case.
sprache
Is accepted, but has no effect in this version — the language of the output follows solely the
language version stored in the service.
Screenshots



Blocks
This plugin provides 1 block.
- Accessibility statement
Installation
- Install and activate the plugin. Open Tools Accessibility — the page explains every step below, including where each value comes from.
- Create an account at barrierepruefung.de, or sign in if you already have one.
- Add this site there, using exactly the address of this WordPress installation. If a different address is stored, the domain cannot be verified in step 6.
- Under Websites [site] Embedding, section WordPress plugin and API, choose Create token. The API token and the site ID are shown once, in that place.
- Enter both under Tools Accessibility and leave the service address as it is.
- Verify the domain — the plugin serves the proof itself, you do not need DNS access.
- Start a scan and insert the shortcode
[barrierefreiheitserklaerung]on a page.
FAQ
-
Do I have to set a DNS record?
-
No. The plugin serves the proof itself, as a meta element and as a file under
/.well-known/a11y-site-verification.txt. -
I started a scan — where is the result?
-
A scan takes a few minutes. The page does not update on its own, because an automatic reload
would move the focus and interrupt screen reader users (WCAG 2.2.2). While a scan is running,
Tools Accessibility says so and offers “Check whether the scan has finished” as its main
button. -
What happens if the service is unreachable?
-
The last successfully loaded version of the statement continues to be delivered — with its
original date. A statement that disappears from the site because of an outage would be a legal
problem for you. -
Which languages does the plugin come in?
-
English (source language) and German. The template for further translations ships with the
plugin underlanguages/barrierepruefung-de-web-accessibility-checker.pot. -
I mistyped something while connecting — how do I get back?
-
Under Tools Accessibility the stored connection is shown together with a “Disconnect”
button. The form then reappears and you can enter token, site ID and address again. The service
address can also be reset to its default value on its own there. Your account is not affected;
the token stays valid and is revoked in the account. -
What is left behind after uninstalling?
-
Nothing. Uninstalling removes all options and caches, including the token and the last loaded
version of the statement — in a network, for every subsite individually. -
Does the automated scan replace an expert audit?
-
No. Automated tests cover only part of the requirements. The service guides you through the
remaining test steps; the statement explicitly states that it is based on a self-assessment.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Barrierepruefung.de – Web Accessibility Checker” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Barrierepruefung.de – Web Accessibility Checker” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
0.6.4
- Fixed: In the German translation, the hint shown before the first scan closed the quoted
button label with a straight quotation mark instead of the German one. - Changed: New versions are deployed to the plugin directory from the tagged GitHub release, so
both carry the identical package.
0.6.3
- Fixed: A rule with exactly one occurrence offered “Show 1 occurrences”. The string had no
singular form. It now ships in both forms, in English and in German – and languages with other
plural rules get the room they need as well.
0.6.2
- Fixed: After verifying the domain the page reported “The domain is verified” at the top and kept
showing “Domain verified: no” below it, together with the button that had just done the job –
for up to five minutes, and only “Refresh status” got past it. Verifying now discards the cached
state, the way starting a scan already did. A failed attempt leaves the cache alone: nothing
changed at the service then. - Fixed: Entering a new connection, and resetting the service address, discard the cached state as
well. It belongs to one connection and one address.
0.6.1
- Changed: The setup instructions no longer explain what the token is allowed to do and where it
is stored – at that point you are looking for the token, not for its permissions. - Changed: The last step now says what the service address is – where the plugin sends its
requests – instead of advising whether to change it.
0.6.0
- Changed: The plugin slug – and with it the text domain, the folder name in the ZIP and the
future directory URL – is now “barrierepruefung-de-web-accessibility-checker” instead of
“a11y-checker”. The old one was the abbreviation of a name already taken by another plugin. - Changed: Internal prefixes moved along while that is still cheap: options and transients are
“barrierepruefung_“, classes “Barrierepruefung_“, files “includes/class-barrierepruefung-*.php”. - Changed: The admin page now lives at “?page=barrierepruefung”, the block is
“barrierepruefung/erklaerung”, and the front-end CSS classes are “barrierepruefung-erklaerung”,
“barrierepruefung-stand” and “barrierepruefung-hinweis”. - Changed: Uninstalling now also removes the options and transients written under the old prefix.
- Unchanged: the proof of domain ownership (“a11y-site-verification”) – that name belongs to the
service, not to this plugin. - Upgrade notice: the plugin file was renamed, so WordPress deactivates a pre-release copy when
you replace it. Enter the connection again after activating. A statement placed with the block
reports “unexpected content” because the block namespace changed; the shortcode
[barrierefreiheitserklaerung] is unaffected.
0.5.1
- Changed: The link in the plugins list is now labelled “Settings” throughout – the label that sits
next to every other plugin and is therefore what people look for. - Changed: The plugin is credited to Lukas Bock, linked to barrierepruefung.de.
0.5.0
- New: The page explains the setup on first use – that the plugin does not scan on its own but is
the way into the service, that the token is valid for this one site, and then step by step where
account, token and site ID come from (Websites -> your site -> Embedding, section WordPress
plugin and API). It used to be one sentence that assumed an account nobody knew about yet. - New: The instructions state the address of this installation. If a different one is stored with
the service, domain verification fails later without a visible reason. - New: After activation a one-time notice points to the page, and the plugins list carries a “Set
up” link. - New: The token field says that the number and the vertical bar in front belong to the token.
- Changed: While a scan is running, “Check whether the scan has finished” is the primary button and
the running-scan notice sits above the buttons instead of below them. Previously the grey
“Refresh status” button was lost next to the blue “Scan now”, so whoever had started a scan could
not see how to get to the result. - Changed: “Scan now” is hidden while a scan is running – a second run would only use up quota.
- Changed: While the first scan is still running the findings section says so, instead of pointing
at a button that does not exist at that moment. - Changed: The page now also says why it does not update on its own: an automatic reload would
move the focus and interrupt screen reader users (WCAG 2.2.2).
0.4.0
- New: Every rule in the findings list can be expanded. “Show N occurrences” fetches the
individual occurrences of that one rule – page, selector, measurements such as “contrast 2.41:1
instead of 4.5:1”, colour values, the state in which the element becomes visible, the viewport
and the HTML snippet. Paging happens in steps of 20. - New: Expanding and paging are ordinary links. Still no JavaScript in the plugin, and only the
rule you are actually working on is fetched. - Changed: Findings now come before the quota. They are the reason someone opens the page.
- Changed: Screenshots are not loaded into the WordPress admin area. The page points to the full
report instead and says that opening it asks you to sign in first. - Fixed: For signed-out users the link to the full report ended in a bare error page. The service
now sends signed-out visitors to the sign-in page and back to the report afterwards.
0.3.1
- Changed: The readme and the plugin description are in English now, as the WordPress Plugin
Directory requires. - Changed: English is now the source language of the plugin’s own strings. German ships as a
translation in languages/barrierepruefung-de-web-accessibility-checker-de_DE.po – a German installation shows exactly the same
text as before. - Changed: Tested up to WordPress 7.1.
- Known limitation: only the de_DE translation is bundled. Installations running de_AT, de_CH or
de_DE_formal fall back to English until the plugin is listed in the directory and
translate.wordpress.org supplies those language packs.
0.3.0
- New: Tools Accessibility shows the open findings of the last scan – for each rule the
severity, the success criterion, the number of occurrences, a note on how to fix it and the
pages affected. Fixing happens in WordPress, “Scan now” closes the round. - New: The page states the page quota of the current billing period.
- New: A “Refresh status” button fetches quota and findings again. It deliberately replaces an
automatic page reload, which would be disruptive for screen reader users. - New: If a scan is currently running, the page says so instead of showing an outdated result.
- Changed: State and findings are cached for five minutes; starting a scan and “Refresh status”
discard the cache. - Changed: If the site cannot be retrieved, the reason given by the service is now shown with it.
0.2.1
- New: The stored connection is visible under Tools Accessibility and can be undone again.
Until now the plugin hid the form as soon as token and site ID had been saved once – even if
they were wrong. - New: The service address can be reset to its default value on its own; the form suggests the
address entered last instead of always the default. - Fixed: A discarded address remained as an empty option; every request afterwards went to a
relative path. In that case the default value now applies again.
0.2.0
- Fixed: The heading level is now measured against the topmost heading actually output. Until
now the h1 of the statement stayed an h1 at the default setting – in the middle of a page
that is itself a violation of WCAG 1.3.1 -, and a section embedded with teil=”maengel” or
teil=”kontakt” came out one level too deep. If you have been balancing the levels by hand
with ueberschrift=”3″, switch to ueberschrift=”2″ now (or leave the attribute out). - Fixed: The feedback message in the admin area was URL-decoded twice, which made a message
containing a literal percent sequence (e.g. “%41”) arrive as a character.
0.1.0
- First release: connection, domain verification, starting a scan, shortcode and block.
- German and English language version, complete uninstall.
