Title: Vouchlog – Accessibility Logbook, Scanner &amp; Color Contrast Checker
Author: PinMaster
Published: <strong>October 2, 2026</strong>
Last modified: October 2, 2026

---

Search plugins

![](https://ps.w.org/vouchlog-accessibility-logbook/assets/banner-772x250.png?rev
=3725461)

![](https://ps.w.org/vouchlog-accessibility-logbook/assets/icon-256x256.png?rev=
3725461)

# Vouchlog – Accessibility Logbook, Scanner & Color Contrast Checker

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

[Download](https://downloads.wordpress.org/plugin/vouchlog-accessibility-logbook.1.1.0.zip)

 * [Details](https://wordpress.org/plugins/vouchlog-accessibility-logbook/#description)
 * [Reviews](https://wordpress.org/plugins/vouchlog-accessibility-logbook/#reviews)
 *  [Installation](https://wordpress.org/plugins/vouchlog-accessibility-logbook/#installation)
 * [Development](https://wordpress.org/plugins/vouchlog-accessibility-logbook/#developers)

 [Support](https://wordpress.org/support/plugin/vouchlog-accessibility-logbook/)

## Description

**Vouchlog keeps the record.** Every scan, every fix you switch on or off, and every
manual test you note is written to a dated, tamper-evident evidence log. When a 
customer, an auditor or somebody’s lawyer asks what you have done about accessibility,
you print the report — with dates — instead of starting from nothing.

It is a website accessibility checker, a color contrast checker, a set of safe fixes,
and an accessibility statement generator, built around that log.

#### How this is different

 * **Evidence, not promises.** Each log entry stores the SHA-256 hash of the entry
   before it. The Evidence screen re-checks the whole chain every time you open 
   it and names the first entry that no longer matches, so an edit after the fact
   shows up. Download the log to keep a copy outside the site.
 * **The report and the statement come from real data.** The dated evidence report
   and the accessibility statement are generated from your actual scans and fixes,
   not from a form you fill in by hand.
 * **It checks the page your visitors get.** The WCAG 2.2 scanner opens each page
   in your own browser — theme, header, footer, widgets and all — at desktop width
   AND at phone width, so it finds phone-only problems: pages that scroll sideways,
   tap targets under 24 × 24 pixels, pinch zoom switched off.
 * **Fixes change the HTML, not an overlay.** The safe fixes change the HTML and
   CSS your server sends (the markup through WordPress core’s own HTML tag processor),
   so screen readers get them with JavaScript turned off. Every fix is off until
   you turn it on, and every switch is logged.
 * **Nothing leaves your site.** No account, no API key, no external service.

#### The WCAG 2.2 accessibility scanner

Click “Scan my site now” and it checks your home page and your newest pages and 
posts (you choose how many), plus any addresses you add. It also checks the templates
people complaining about accessibility usually test first: the search results page,
a “page not found” page, one archive of each kind (a category, a tag…) and, with
WooCommerce, the shop, the newest product, the cart, the checkout and the account
page. For every problem it shows the WCAG success criterion, the exact element (
a CSS selector and the HTML), and how to fix it. Checks include:

 * images with no alt text (1.1.1) — an alt text checker for the pages visitors 
   actually see
 * links and buttons with no text a screen reader can announce (2.4.4, 4.1.2)
 * form fields with no label (1.3.1)
 * color contrast of the text on each page, with the nearest color that passes (
   1.4.3)
 * pinch zoom disabled on phones (1.4.4)
 * pages that scroll sideways at phone width (1.4.10)
 * tap targets smaller than 24 × 24 pixels (2.5.8, new in WCAG 2.2)
 * keyboard focus that can end up hidden under a sticky header or footer (2.4.11,
   new in WCAG 2.2)
 * fields for a visitor’s own details with no valid autocomplete value, so browsers
   cannot fill them in (1.3.5)
 * misspelled or invalid ARIA attributes, values and roles (4.1.2)
 * heading levels that skip a step, and menus or regions a screen reader user cannot
   tell apart (1.3.1)
 * parts of a page marked with a language code that is not one (3.1.2)
 * missing page language, missing page title, no way to skip to the content, positive
   tabindex, untitled iframes, keyboard-reachable content hidden from screen readers,
   empty headings, moving text, and videos that may need captions

Some things only a person can judge, so the scan asks you to check them and note
the result: anything moved by dragging needs a single-tap alternative (2.5.7, new
in WCAG 2.2), and a log-in form must let people paste a password and use a password
manager, with no puzzle or memory test (3.3.8, new in WCAG 2.2). These reminders
are never listed as problems in your public statement.

Issues are tracked over time: when a later scan no longer finds one, it is marked
resolved with the date. The Scan screen says how many days ago the last scan was,
and if you switch it on in Settings, your site e-mails you a reminder when 30 days
have passed since the last scan — at most once a month, through your site’s own 
mailer.

#### Check a post while you write it

In the block editor, the “Accessibility check” panel checks the post you are writing,
from its preview, at desktop and phone width — missing alt text, low contrast, empty
links and the rest — without leaving the editor. It lists the problems in the post
itself and says how many more belong to the theme.

#### Color contrast checker

A contrast checker for any two colors: the ratio, pass or fail for WCAG AA and AAA
at normal and large text sizes and for icons, and the nearest text color that passes—
one click to use it. The scan also lists every low-contrast text it found on your
pages, with its real colors, its ratio and a suggested color.

#### Safe fixes you switch on one by one

 * let visitors pinch-zoom on phones
 * declare the page language
 * add a “Skip to content” link (only where the theme has none)
 * always show keyboard focus
 * announce links that open a new tab
 * restore the natural keyboard order
 * fill missing alt text from the alt text already saved in the media library — 
   never invented
 * give placeholder-only form fields an accessible name
 * respect the visitor’s “reduce motion” setting
 * underline links inside text

#### Dated evidence report and accessibility statement

The report shows what was tested and when, open issues by WCAG criterion, what was
fixed and when, your manual test notes, and the verification of the log with its
current hash. Print it, or save it as a PDF, from a laptop or a phone.

The accessibility statement page is created as a draft for you to review and publish.
It lists known problems in plain language, what you have done, how the site was 
checked and how to report a problem — and it updates itself after each scan. It 
never claims full conformance, because automated checks cannot establish that.

#### Report an accessibility barrier

The statement page ends with a short form where a visitor can report something they
could not use, and on which page. Each report is written to the evidence log with
its date and listed in the dated report, and you get it by e-mail. The visitor’s
IP address and browser are not recorded; an e-mail address given for a reply is 
sent to you and not kept in the log. Spam is stopped with a hidden field, a minimum
fill-in time and an hourly limit — no CAPTCHA, no outside service. The toolbar links
to the form, and `[a11ylogbook_barrier_form]` places it on any other page.

#### Visitor accessibility toolbar

A small button lets each visitor choose larger text, high contrast, underlined links,
readable text spacing, paused animations, a keyboard focus highlight and a reading
guide. Choices are kept in that visitor’s own browser; no cookies are set. Link 
to `#a11y-preferences` from any menu to open it. The toolbar changes how the site
looks for one visitor; it does not make a site accessible on its own, and it says
so.

#### Privacy

This plugin does not connect to any external service. It makes no outbound requests
of any kind — no telemetry, no analytics, no fonts or scripts from a CDN. It stores
no IP addresses and no browser details. The only visitor data it keeps is what a
visitor chooses to write in the barrier report form; an e-mail address given there
is e-mailed to you by your own site and not stored. Suggested wording for your privacy
policy is added under Settings  Privacy.

## Screenshots

[⌊The accessibility scan: every page checked at desktop and phone width, each problem
with its WCAG criterion, the page, the element and how to fix it. Low-contrast text
comes with its real colors, its ratio and the nearest color that passes.⌉⌊The accessibility
scan: every page checked at desktop and phone width, each problem with its WCAG 
criterion, the page, the element and how to fix it. Low-contrast text comes with
its real colors, its ratio and the nearest color that passes.⌉[

The accessibility scan: every page checked at desktop and phone width, each problem
with its WCAG criterion, the page, the element and how to fix it. Low-contrast text
comes with its real colors, its ratio and the nearest color that passes.

[⌊The color contrast checker: any text color against any background, pass or fail
for AA and AAA at normal and large sizes, and the nearest text color that passes.⌉⌊
The color contrast checker: any text color against any background, pass or fail 
for AA and AAA at normal and large sizes, and the nearest text color that passes
.⌉[

The color contrast checker: any text color against any background, pass or fail 
for AA and AAA at normal and large sizes, and the nearest text color that passes.

[⌊Safe fixes, each off until you switch it on, each change written to the evidence
log with the date.⌉⌊Safe fixes, each off until you switch it on, each change written
to the evidence log with the date.⌉[

Safe fixes, each off until you switch it on, each change written to the evidence
log with the date.

[⌊The evidence log: every scan, fix and manual test note, dated and chained by SHA-
256, verified every time you open it, with the dated report and a JSON download.⌉⌊
The evidence log: every scan, fix and manual test note, dated and chained by SHA-
256, verified every time you open it, with the dated report and a JSON download.⌉[

The evidence log: every scan, fix and manual test note, dated and chained by SHA-
256, verified every time you open it, with the dated report and a JSON download.

[⌊The visitor accessibility toolbar on a phone: larger text, high contrast, underlined
links, readable spacing, paused animations, a focus highlight and a reading guide,
kept in the visitor's own browser.⌉⌊The visitor accessibility toolbar on a phone:
larger text, high contrast, underlined links, readable spacing, paused animations,
a focus highlight and a reading guide, kept in the visitor's own browser.⌉[

The visitor accessibility toolbar on a phone: larger text, high contrast, underlined
links, readable spacing, paused animations, a focus highlight and a reading guide,
kept in the visitor’s own browser.

[⌊Report an accessibility barrier: the form at the end of the accessibility statement.
Each report is dated in the evidence log; no IP address or browser details are kept.⌉⌊
Report an accessibility barrier: the form at the end of the accessibility statement.
Each report is dated in the evidence log; no IP address or browser details are kept
.⌉[

Report an accessibility barrier: the form at the end of the accessibility statement.
Each report is dated in the evidence log; no IP address or browser details are kept.

[⌊The Accessibility check panel in the block editor: the post you are writing, checked
from its preview at desktop and phone width, before you publish.⌉⌊The Accessibility
check panel in the block editor: the post you are writing, checked from its preview
at desktop and phone width, before you publish.⌉[

The Accessibility check panel in the block editor: the post you are writing, checked
from its preview at desktop and phone width, before you publish.

## Installation

 1. Install and activate the plugin.
 2. Go to **Accessibility  Scan** and click **Scan my site now**.
 3. Open each issue to see the element and how to fix it. Switch on the safe fixes 
    you want under **Fixes**, then scan again.
 4. Under **Settings**, add your contact details and create the statement page.
 5. Under **Evidence**, add notes about manual tests, and open the dated report whenever
    you need it.

## FAQ

### Will this plugin make my site ADA or WCAG compliant?

No plugin can do that, and you should be wary of any that says it does. Automated
checks find only part of the barriers people meet (commonly quoted at 30–40%). This
plugin finds what can be found automatically, fixes a set of problems safely, and
keeps a dated record of the testing and remediation you do — which is what you need
to show your work. Manual testing and user feedback cover the rest.

### Is this an ADA compliance checker?

It is a WCAG 2.2 checker. WCAG 2.1 AA is the standard US courts, settlements and
the ADA Title II rule refer to, and WCAG 2.2 includes it, so the scan checks the
automatable parts of what an ADA review looks at. It cannot certify anything, and
the report says so.

### Is Vouchlog affiliated with the W3C?

No. WCAG (the Web Content Accessibility Guidelines) is a standard published by the
W3C. Vouchlog is an independent plugin that checks pages against that standard; 
it is not affiliated with or endorsed by the W3C.

### How is this different from an accessibility overlay?

Overlays run JavaScript over the page and are widely criticised for it. The fixes
here change the HTML your server sends, are each off until you enable them, and 
are logged. The visitor toolbar only offers personal display preferences and is 
labelled as such.

### What does the evidence log actually prove?

That an entry has not been changed since it was written: each entry’s hash covers
the entry before it, so an edit breaks the chain from that point. Someone with direct
database access could rebuild the whole chain; keeping a downloaded copy or a printed
report outside the site is what makes that detectable too.

### Does it check color contrast?

Yes. The contrast checker tests any two colors, and the scanner measures the contrast
of the visible text on each page against its real background, reports the ratio,
and suggests the nearest color that passes. Text over a background image or gradient,
or text that is partly transparent, is skipped rather than guessed — check those
by eye with the contrast checker.

### Does it find missing alt text?

Yes. Images with no alt attribute are reported with the page and the element. The“
media library alt text” fix fills in alt text you already saved in the media library;
it never invents alt text.

### Why scan at phone width?

Some failures only happen on phones: pages that scroll sideways (1.4.10 Reflow),
tap targets that are too small (2.5.8 Target Size) and pinch zoom switched off (
1.4.4). Each page is checked at 1280 px and at 360 px (the phone width can be switched
off in Settings).

### Does the scan slow down my site?

No. The scan runs in your own browser while you watch; your visitors are not affected.
With fixes switched on, the page is processed once as it is sent, using WordPress
core’s HTML processor.

### Does it work with page caching?

Yes. The fixes are part of the HTML, so a page cache stores the fixed page. Clear
the cache after switching fixes on or off. Scans are run while you are logged in,
which most caches skip.

### A page could not be scanned. Why?

The scan opens each page in a frame on your own site. If a page refuses that — it
sends `X-Frame-Options: DENY` or a `Content-Security-Policy` with `frame-ancestors'
none'` (some security plugins do), or it redirects to another domain — the scan 
tells you which header refused it and offers to check those pages in a separate 
window instead. Pages checked that way are recorded as such in the evidence log.
If you skip them, the scan says so for each page and carries on.

### What about the European Accessibility Act?

The EU rules expect an accessibility statement with a way for people to report problems.
The statement page this plugin creates includes your contact details, the known 
issues, the date of the last review, and a form for reporting a barrier — each report
is kept, dated, in the evidence log.

### Does it send my data anywhere?

No. There is no external service, account or API key. Scans run in your browser 
and results are stored in your site’s database.

### What happens when I delete the plugin?

Deleting it removes its database tables and its settings, including the evidence
log — download the log first if you want to keep it. Deactivating keeps everything.
The statement page, if you created one, stays, because it is your content.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Vouchlog – Accessibility Logbook, Scanner & Color Contrast Checker” is open source
software. The following people have contributed to this plugin.

Contributors

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

[Translate “Vouchlog – Accessibility Logbook, Scanner & Color Contrast Checker” into your language.](https://translate.wordpress.org/projects/wp-plugins/vouchlog-accessibility-logbook)

### Interested in development?

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

## Changelog

#### 1.1.0

 * New: “Report an accessibility barrier” — a form at the end of the statement page(
   and the `[a11ylogbook_barrier_form]` shortcode). Each report is dated in the 
   evidence log and e-mailed to you; no IP address or browser details are kept.
 * New: an “Accessibility check” panel in the block editor checks the post you are
   writing, from its preview, at desktop and phone width.
 * New checks: keyboard focus hidden under sticky headers (2.4.11), autocomplete
   on personal-data fields (1.3.5), invalid ARIA, heading order, language of parts(
   3.1.2) and landmarks that cannot be told apart, plus reminders to test dragging(
   2.5.7) and log-in forms (3.3.8) by hand.
 * The scan also checks the search page, a “page not found” page, one archive of
   each kind and, with WooCommerce, the shop, product, cart, checkout and account
   pages.
 * Pages that refuse to open in a frame are named with the header that refused them,
   and can be checked in a separate window.
 * An optional monthly e-mail reminder to scan again, and “N days ago” on the Scan
   screen.
 * Tested on PHP 7.4 to 8.4 and WordPress 6.9 to 7.1, with Twenty Twenty-Five, Twenty
   Twenty-One, Astra, GeneratePress and Kadence, every fix switched on.

#### 1.0.0

 * First release: WCAG 2.2 scanner at desktop and phone width, color contrast checker
   with suggested colors, safe fixes, tamper-evident evidence log with JSON download,
   dated evidence report, accessibility statement page, visitor accessibility toolbar.

## Meta

 *  Version **1.1.0**
 *  Last updated **23 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.9 or higher **
 *  Tested up to **7.1.2**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [accessibility checker](https://wordpress.org/plugins/tags/accessibility-checker/)
   [Accessibility statement](https://wordpress.org/plugins/tags/accessibility-statement/)
   [accessibility toolbar](https://wordpress.org/plugins/tags/accessibility-toolbar/)
   [ada](https://wordpress.org/plugins/tags/ada/)[color contrast](https://wordpress.org/plugins/tags/color-contrast/)
 *  [Advanced View](https://wordpress.org/plugins/vouchlog-accessibility-logbook/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/vouchlog-accessibility-logbook/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/vouchlog-accessibility-logbook/reviews/)

## Contributors

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

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/vouchlog-accessibility-logbook/)