Title: Barrierepruefung.de – Web Accessibility Checker
Author: lukasbo
Published: <strong>September 18, 2026</strong>
Last modified: September 21, 2026

---

Search plugins

![](https://ps.w.org/barrierepruefung-de-web-accessibility-checker/assets/banner-
772x250.png?rev=3702038)

![](https://ps.w.org/barrierepruefung-de-web-accessibility-checker/assets/icon-256x256.
png?rev=3702038)

# Barrierepruefung.de – Web Accessibility Checker

 By [lukasbo](https://profiles.wordpress.org/lukasbo/)

[Download](https://downloads.wordpress.org/plugin/barrierepruefung-de-web-accessibility-checker.0.7.0.zip)

 * [Details](https://wordpress.org/plugins/barrierepruefung-de-web-accessibility-checker/#description)
 * [Reviews](https://wordpress.org/plugins/barrierepruefung-de-web-accessibility-checker/#reviews)
 *  [Installation](https://wordpress.org/plugins/barrierepruefung-de-web-accessibility-checker/#installation)
 * [Development](https://wordpress.org/plugins/barrierepruefung-de-web-accessibility-checker/#developers)

 [Support](https://wordpress.org/support/plugin/barrierepruefung-de-web-accessibility-checker/)

## 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.

Under _Tools  Accessibility  Accessibility statement_ you can go the whole way to
a published
 statement without leaving WordPress: answer the manual checks, say 
who is making the statement, answer the applicability check, fill in the mandatory
details, review the draft and publish it. The steps, the questions and the legal
texts come from the service, so they are always current. Every version you publish
is recorded with the name of the person who released it. Afterwards the plugin finds
the page that embeds the statement, or creates one as a draft.

Publishing from WordPress requires a token that an administrator in the service 
has explicitly
 allowed to publish.

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,
 * when you answer manual checks, the applicability check or the mandatory details,
   or publish
    the statement: your answers and details, and the display name of 
   the WordPress user who does it. The service records that name as evidence of 
   who released a version.

**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

[⌊Setup under Tools → Accessibility: the page explains where account, API token 
and site ID
come from before it asks for them.⌉⌊Setup under Tools → Accessibility:
the page explains where account, API token and site ID
come from before it asks 
for them.⌉[

Setup under _Tools  Accessibility_: the page explains where account, API token and
site ID come from before it asks for them.

[⌊After connecting: the status of the site, the page quota of the current billing
period, the
stored connection and the shortcode for the statement.⌉⌊After connecting:
the status of the site, the page quota of the current billing period, the
stored
connection and the shortcode for the statement.⌉[

After connecting: the status of the site, the page quota of the current billing 
period, the stored connection and the shortcode for the statement.

[⌊After a scan: the open findings as a work list — severity, success criterion, 
number of
occurrences and the pages affected. Each rule can be expanded to its individual
occurrences.⌉⌊After a scan: the open findings as a work list — severity, success
criterion, number of
occurrences and the pages affected. Each rule can be expanded
to its individual occurrences.⌉[

After a scan: the open findings as a work list — severity, success criterion, number
of occurrences and the pages affected. Each rule can be expanded to its individual
occurrences.

## Blocks

This plugin provides 1 block.

 *   Accessibility statement

## Installation

 1. Install and activate the plugin. Open _Tools  Accessibility_ — the page explains
    every step below, including where each value comes from.
 2. Create an account at barrierepruefung.de, or sign in if you already have one.
 3. 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.
 4. 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.
 5. Enter both under _Tools  Accessibility_ and leave the service address as it is.
 6. Verify the domain — the plugin serves the proof itself, you do not need DNS access.
 7. 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, in both forms of address: informal (de_DE,“
Du”) and
 formal (de_DE_formal, “Sie”), as WordPress distinguishes them. The template
for further translations ships with the plugin under `languages/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.

Contributors

 *   [ lukasbo ](https://profiles.wordpress.org/lukasbo/)

[Translate “Barrierepruefung.de – Web Accessibility Checker” into your language.](https://translate.wordpress.org/projects/wp-plugins/barrierepruefung-de-web-accessibility-checker)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/barrierepruefung-de-web-accessibility-checker/),
check out the [SVN repository](https://plugins.svn.wordpress.org/barrierepruefung-de-web-accessibility-checker/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/barrierepruefung-de-web-accessibility-checker/)
by [RSS](https://plugins.trac.wordpress.org/log/barrierepruefung-de-web-accessibility-checker/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 0.7.0

 * Added: A new tab “Accessibility statement” leads step by step to a published 
   statement:
    manual checks, who is making the statement, applicability check, 
   mandatory details, review and publish. The steps and their texts come from the
   service; a step this version does not know yet links to the service instead of
   being left out.
 * Added: Publishing sends the identifier of the draft you reviewed and a one-time
   key, so a
    double click never creates a second version and a draft that changed
   in the meantime is not published unseen.
 * Added: After publishing, pages that embed the statement show the new version 
   right away, and
    the plugin finds those pages – or creates one as a draft.
 * Added: The admin page shows when the published statement is out of date.
 * Changed: Tested with WordPress 7.1.1.
 * Changed: New tag “barriereprüfung”, so the plugin can be found by that search
   term; “bitv”
    gives way, as the directory uses only five tags.
 * Changed: Requests to the service carry the language of the WordPress user, so
   the service’s
    texts appear in that language.
 * Changed: German now ships in both forms of address, as WordPress distinguishes
   them: de_DE
    uses the informal “Du”, the new de_DE_formal the formal “Sie”. Until
   now de_DE used “Sie”, and installations set to “Deutsch (Sie)” saw English.

#### 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.

## Meta

 *  Version **0.7.0**
 *  Last updated **14 minutes ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.5 or higher **
 *  Tested up to **7.1.1**
 *  PHP version ** 8.1 or higher **
 * Tags
 * [accessibility](https://wordpress.org/plugins/tags/accessibility/)[barrierefreiheit](https://wordpress.org/plugins/tags/barrierefreiheit/)
   [bfsg](https://wordpress.org/plugins/tags/bfsg/)[wcag](https://wordpress.org/plugins/tags/wcag/)
 *  [Advanced View](https://wordpress.org/plugins/barrierepruefung-de-web-accessibility-checker/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/barrierepruefung-de-web-accessibility-checker/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/barrierepruefung-de-web-accessibility-checker/reviews/)

## Contributors

 *   [ lukasbo ](https://profiles.wordpress.org/lukasbo/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/barrierepruefung-de-web-accessibility-checker/)