Skip to main content
Now live on WordPress.org
WordPress Plugin · v1.0.0 · GPL-2.0

WCAG 2.2 AA compliance.
Zero configuration.

LivQ AccessFix applies EAA and WCAG 2.2 AA fixes server-side via PHP output buffer - before the HTML reaches the browser. Skip links, focus styles, ARIA menus, alt text, heading checks, issues log, and Accessibility Statement generator included.

WP 6.0+ · PHP 7.4+
15 modules, each independently togglable
No data collected · No external requests

15 modules. One install.

Every module targets a specific WCAG 2.2 AA criterion. Enable what you need, disable what you don't - no code required.

WCAG 2.4.4

External Link Labelling

Detects every <a target="_blank"> and appends a visually-hidden notice for screen readers. Also adds rel="noopener noreferrer" to prevent reverse tab-napping.

WCAG 2.4.1

Skip Navigation Link

Injects a skip link as the very first focusable element in the page. Keyboard users can jump directly to #primary on the first Tab keypress, bypassing repeated navigation. Target is filterable.

WCAG 1.1.1

Decorative Image Alt Fix

Ensures that images with no meaningful alt text receive an explicit alt="", preventing screen readers from announcing the raw filename.

WCAG 2.4.11

High-Contrast Focus CSS

Injects a global CSS rule that provides a clearly visible, high-contrast focus indicator on all interactive elements - overriding common theme resets like outline: none without touching any theme file.

WCAG 4.1.2

Menu Accessibility Helper

Automatically adds aria-haspopup and aria-expanded to navigation links that open sub-menus, with native JavaScript toggle handling for keyboard and screen reader users.

WCAG 2.4.4 · 4.1.2

Nameless Link Fix

Detects links whose only content is an image with empty alt or an SVG icon - common in logo rows and social icons. Derives aria-label from image title, link title, a recognised social domain, or the hostname.

WCAG 4.1.2

Iframe Title Fix

Adds a title attribute to every untitled <iframe>, matched from the src domain (YouTube, Vimeo, Google Maps, Calendly, and more). Untitled iframes are otherwise announced as a bare "frame".

WCAG 1.3.1 · 3.3.2

Form Input Label Fix

Adds aria-label to unlabelled <input>, <textarea>, and <select> fields, derived from the placeholder or name attribute. Fields already correctly labelled are never touched.

WCAG 1.3.1

Heading Hierarchy Checker

On post or page save, scans the heading structure (H1–H6) and shows an admin notice if a level skip is detected - e.g. H2 → H4 - before it reaches production and disorients screen reader users.

WCAG 1.1.1 · 2.4.4

Pre-Publish Accessibility Checklist

Adds a panel to the Gutenberg pre-publish drawer that checks in real time: images missing alt text and links using a raw URL as visible text. Catch issues before they go live.

EAA Compliance

Accessibility Issues Log

Admin page listing all posts with a detected accessibility issue. Includes a nonce-protected CSV export (BOM-encoded for Excel compatibility) to provide an audit trail for EAA compliance reviews.

EAA · WCAG 2.2 AA

Accessibility Statement Generator

Generates a legally-compliant Accessibility Statement referencing WCAG 2.2 AA and EAA Directive 2019/882. Auto-populates active modules and their WCAG criteria. Embed anywhere with [livqacea_accessibility_statement].

EAA Compliance

Accessibility Scanner

Scans key page types - homepage, blog index, posts, pages, archives, search, 404, and WooCommerce pages - for WCAG violations, producing a severity-scored issue list (Critical / High / Warning).

WCAG 1.4.3 · 1.4.11

Contrast Checker

Real-time colour contrast analyser built into the admin. Evaluates foreground/background pairs against Normal text AA (4.5:1), Large text AA (3:1), and UI components (3:1), with a quick-test palette.

WCAG 2.4.4 · 4.1.2

WooCommerce Accessibility Enhancements

Accessible labels for quantity steppers, gallery triggers, and archive add-to-cart buttons. Live regions announce cart updates to screen readers without a page reload.

Install. Activate. Done.

All modules are enabled by default. Every frontend fix is applied as an output filter - the database is never touched. Deactivating the plugin instantly removes all effects, no cleanup required.

Works with any theme - no template editing
Each module has its own on/off toggle in Settings
Developer-friendly: every behaviour is filterable
Zero external requests, zero personal data collected
wp-cli
$ wp plugin install livq-accessfix --activate
✓ Plugin installed successfully.
✓ Plugin activated.
$ wp livq audit --json
{
  "skip_link": true,
  "focus_css": true,
  "ext_links": true,
  "aria_menus": true,
  "wcag_level": "AA"
}

Built to SkapaCraft standards.

15
Accessibility modules
Community translations
0
External requests
0kb
jQuery dependency
WP 6+
Minimum WordPress
GPL-2
License

Now available on WordPress.org.

Install directly from your WordPress admin dashboard.

Get on WordPress.org View source
LivQ AccessFix - Server-side accessibility for WP, Joomla & static HTML | Product Hunt