Lumadro Accessibility Ledger

Beschreibung

Lumadro Accessibility Ledger finds specific WCAG 2.1 AA failures, helps you fix
them in your actual content, and writes every step into an append-only ledger
you can export: each finding with the success criterion it fails, each change
with its before and after, the date, who approved it, and where the text came from.

The European Accessibility Act has applied since 28 June 2025 to many products
and services sold to consumers in the EU, online shops among them. Its technical
reference is WCAG 2.1 level AA. When someone asks what you have done about
accessibility, the answer should be a document, not a feeling.

It does not make your site legally compliant, and no plugin can. It is
not an overlay: it adds nothing to the front end and changes the underlying
content, not what visitors see at runtime.

The ledger

  • Every accepted change is recorded with the date, the text before and after,
    who approved it, and where the text came from: the AI provider that drafted
    it, the image’s existing media library alt text, or a person.
  • Append-only: an undo is added as a new entry; nothing is erased.
  • When a later scan no longer finds a problem, the ledger records it as „no
    longer detected“, never as proof of a fix: the content may simply have changed.
  • A downloadable report lists open findings by success criterion and page,
    counts confirmed failures apart from items for a person to review, and
    includes the change log and what the checks did not cover. It never says the
    site is conformant, accessible or compliant.

How it finds problems

Site scan. Reads every published post, page and library image in the
background, and loads each published page once to check what the theme adds:

  • Images with no alt attribute, and alt text that is really a file name
  • Links and buttons with no accessible name, including icon-only ones
  • Form fields with no label, and frames with no title
  • Headings that skip a level, and pages with no h1
  • A missing or malformed page language, and missing or placeholder page titles
  • Data tables with no header cells, and positive tabindex values

Browser check. Loads your pages in your own browser tab and runs the open
source axe-core engine: computed colour contrast, and content JavaScript builds
after loading, such as a block checkout. It then probes sideways scrolling at
320 pixels wide, elements with no visible change on focus, clickable elements a
keyboard cannot reach, and content opened on focus that Escape does not close.
These are listed for review, never as proven failures. Each run starts with the
home and shop pages, then pages never checked, so repeated runs cover the site.

How it fixes them

AI drafts alt text using your own provider key through WordPress core’s AI
Client: no credits and no per-fix charges; you pay your provider directly.
Scanning, the browser check and the reports need no AI at all.

A library image’s alt text is used wherever it is placed from then on. An image
already placed in a post is fixed in that post, with a normal post revision.

Nothing changes without you

  • A draft is only a draft until you accept it, and you can edit it first.
  • Text a person wrote is never replaced silently. Replacing it needs a
    deliberate tick on that item. In a post, an image someone marked decorative
    (alt=““) counts as a person’s decision too.
  • Every change can be undone. If someone has edited the text since, the undo
    refuses rather than discarding their edit.

Lumadro Accessibility Ledger Pro

The free plugin is complete for fixing and recording work one item at a time.
Pro, a separate paid plugin, adds bulk accept and reject (still never replacing
text a person wrote), scheduled re-scans with a dated history, JSON and CSV
exports, a drafted accessibility statement, a multisite network overview and a
portfolio of your separate sites.

How much of WCAG this covers

The site scan checks 10 of the 50 WCAG 2.1 level A and AA success criteria; the
browser check partly checks a few more on the pages it loads. The rest need a
person, and the plugin names every one on its „Coverage and limits“ screen and
in every report. Passing the automated checks does not mean your site conforms.

External services

Your AI provider (optional). Drafting alt text uses the provider you connect
yourself under Settings > Connectors, through WordPress core’s AI Client. Only
when you ask for drafts, the plugin sends the provider the image (the file from
your media library, or its public URL on your own site), the image’s file name,
caption, description and current alt text, and the title, language and nearby
text of the published page it appears on. Nothing from password-protected or
private content is sent, nor files in WooCommerce’s or Easy Digital Downloads‘
protected download folders (the lumadro_ledger_private_upload_folders filter
adds others). Nothing is sent while
scanning, running the browser check or building reports, or if no provider is
connected. The provider’s own terms and privacy policy apply (for example
https://openai.com/policies/, https://www.anthropic.com/legal or
https://policies.google.com/).

If WordPress’s AI Client has no provider and the separate AI Services plugin
has one, drafting uses that instead, sending the same text but not the image,
only when you ask for drafts, under that provider’s terms.

No licensing or update service. This plugin contains no licensing code and
contacts no licensing or update service; it updates from WordPress.org like any
other plugin.

The site scan only fetches your own site’s pages, and axe-core runs in your own
browser; neither contacts an outside service.

Third-party libraries

  • axe-core 4.13.0 by Deque Systems, Mozilla Public License 2.0.
    Source: https://github.com/dequelabs/axe-core
    Bundled unmodified in assets/vendor/axe-core and loaded only into your own
    pages during a browser check started from the admin screen.

Screenshots

Installation

  1. Install and activate the plugin.
  2. Open Lumadro Accessibility Ledger and scan the whole site. No AI or setup needed.
  3. Run the browser check. For a shop, put a product in your cart first so the checkout form is checked.
  4. To draft alt text, add your own provider key under Settings > Connectors (WordPress 7.0 or later), then draft from the review screen.
  5. Review every draft, then download the report from the „Report“ screen.

FAQ

Does it make my site EAA or ADA compliant?

No, and be suspicious of anything that says it does. Compliance is a legal
judgement about your whole service. This plugin documents specific technical
fixes; that may be useful evidence of effort. It is not a certificate and it is
not legal advice.

Does it check colour contrast, keyboard access and focus?

Partly, through the browser check, on the pages it loads, in one desktop-width
view. Text over images is listed for you to check by eye. It does not press the
Tab key, so keyboard traps and focus order still need a person.

Will it overwrite alt text I wrote myself?

Not unless you explicitly choose to, one item at a time. Pro’s bulk accept
cannot touch text a person wrote either.

Does the browser check send my pages anywhere?

No. axe-core is bundled and runs in your browser, on your own site’s pages.

Who can use it?

Editors and administrators can read the change log and download the report,
which cover the whole site, and review drafts for content they can edit.
Scanning, drafting, the browser check and settings are for administrators.

What happens to my data if I delete the plugin?

By default the change log and scan history stay, because they are your
evidence. An administrator can choose to delete them on deletion. Alt text
already written is never removed.

Rezensionen

Zu diesem Plugin liegen noch keine Rezensionen vor.

Mitwirkende und Entwickler

„Lumadro Accessibility Ledger“ ist Open-Source-Software. Folgende Menschen haben an diesem Plugin mitgewirkt:

Mitwirkende

Änderungsprotokoll

0.1.2

  • Fixed: the browser check no longer flags inactive items of tab lists, menus and similar groups (such as WooCommerce’s product tabs) as unreachable by keyboard when another item of the group is in the Tab order, the pattern where the arrow keys move between items. The report says this is assumed, not tested.
  • Fixed: browser-check results are labelled „Browser check“ on the Findings screen.
  • The dashboard names pages a scan could not load, and links to the findings.
  • Plainer wording on the dashboard and review screens.
  • The report shows the titles of public pages and images, and approvers‘ chosen display names, next to their ids.
  • Open findings and „no longer detected“ entries on content that is not confirmed as public show only its type and id, not its address or details. The change log still records the alt text before and after each change. Markup from the browser check, which runs while you are signed in, stays on the Findings screen and is left out of the report and exports.

0.1.1

  • First public release.