BACK TO DIRECTORY

Halvane Accessibility Fixes

by minawefky

0.0
(0 ratings)

Halvane checks your pages against WCAG 2.1 AA and repairs the failures that can be repaired without a human judgement call. Missing alt text, an undeclared page language, links with no accessible name, untitled embeds, a missing skip link.

It is not an overlay. Nothing is injected into your pages for visitors, no widget appears in the corner, and no JavaScript rewrites the DOM at load time. Around a third of the accessibility lawsuits filed in 2025 named sites running an overlay, because repainting a page in the browser leaves the underlying content exactly as inaccessible as it was. Every fix here changes stored content or a real WordPress setting, is visible in the editor afterwards, and has an Undo.

What it fixes

  • Missing alt text — copies the alt text your media library already holds for that image. It only reuses words you wrote; it does not invent a description.
  • Spacers and dividers — marks images whose filename says they are decorative with an explicit empty alt, so screen readers skip them instead of announcing a filename.
  • Page language not declared — sets the lang attribute from your WordPress site language.
  • Captions as a fallback — where an image has no alt anywhere but does have a caption, uses the caption. A caption is not always a good description, so this one is worth reviewing afterwards, and the plugin says so.
  • Links with no accessible name — uses the link’s own title attribute as its accessible name, leaving the visible text alone.
  • Untitled iframes — titles embeds from the embedded page.
  • Skip link — adds a keyboard skip-to-content link where the theme has none.

That is the whole list — seven fixes. Everything else the scan reports is left in the report as instructions, because it needs a judgement this plugin is not entitled to make.

What it will not do

  • Page builders. Elementor, Divi, WPBakery, Avada, Beaver Builder and Bricks store page content inside themselves rather than in the WordPress editor, so a plugin editing posts cannot reach it. On those sites this plugin fixes site-wide settings and any page not built with the builder — and it names the pages it had to skip rather than counting them as done. Roughly half of WordPress sites use one of these, so please read this line before installing.
  • Judgement calls. It will not write alt text for a photograph it has never seen, or decide whether your colour contrast is a brand decision. Those stay in the report as instructions for you.
  • Guarantee compliance. No automated tool can. Automated testing catches roughly a third of WCAG criteria; the rest need a person.

What costs money, and what does not

The fixes are free and have no account attached to them. They are ordinary PHP running on your own server, and nothing in this plugin checks a licence, counts uses, or expires before applying one. Install it, apply them, never sign up for anything.

Scanning needs an account, because that part genuinely runs on adascanner.org rather than on your site — axe-core is a browser engine and cannot run inside PHP, and shipping a second scanner that disagreed with the website’s would leave you with two answers and no way to choose. A free account covers it. Paid plans exist for the wider service — whole-site crawls, monitoring, VPAT reports — and none of that changes what the plugin on your server will do.

You can also use the fixes with no scan at all, if you already know what is wrong.

External services

This plugin relies on adascanner.org, a third-party service operated by the plugin author, to scan pages and to check what your account is allowed to do. The plugin does not work without it.

1. Page scanning — POST https://adascanner.org/api/scan
Sent when you press “Scan now”. Transmits: the public URL of your site’s home page, your API key, and the standard to test against (WCAG 2.1 AA). The service then fetches that public URL itself and returns the accessibility findings. Your post content, database and credentials are never transmitted.

2. Account check — POST https://adascanner.org/api/plugin/verify
Sent when the settings screen loads, if you have entered an API key, and cached for 15 minutes. Transmits: your API key. Returns your plan name so the screen can confirm the key was recognised. It gates nothing: the fixes do not consult it and run whether or not it succeeds.

3. Fix rating — POST https://adascanner.org/api/plugin/feedback
Sent only if you have connected an account, only if you choose to answer the one-question rating shown after a fix changes something, and only when you press Send. Transmits: your API key, which fix you rated, a rating from 1 to 5, whether you ticked “it worked”, the page builder detected on your site if any, and the free-text comment you typed. Pressing Skip sends nothing. No rating is ever sent without that press.

Terms of service: https://adascanner.org/terms
Privacy policy: https://adascanner.org/privacy

Screenshots

Tools › Halvane. Connect an account, scan your homepage, and apply fixes one at a time — each with a plain description of what it will change.

Tools › Halvane. Connect an account, scan your homepage, and apply fixes one at a time — each with a plain description of what it will change.

A fix that has been applied turns into an Undo, on the same row that applied it.

A fix that has been applied turns into an Undo, on the same row that applied it.

Pages a page builder puts out of reach are counted and named, rather than silently passed over.

Pages a page builder puts out of reach are counted and named, rather than silently passed over.

After a fix changes something, the plugin asks once how it went. Skip is right there, and it never asks about that fix again.

After a fix changes something, the plugin asks once how it went. Skip is right there, and it never asks about that fix again.

Plugin Details

Active Installs
0
Total Downloads
87
Version
0.1.9
Requires WP
6.0
Requires PHP
7.4
Tested Up To
7.1
Added
2026-09-13
Last Updated
2026-09-14 9:20pm GMT

Ratings

5
0
4
0
3
0
2
0
1
0