Title: AcceGuru &#8211; Accessibility Scanner, Auto-Fixer &amp; AI Alt Text
Author: Igrika
Published: <strong>August 5, 2026</strong>
Last modified: August 5, 2026

---

Search plugins

![](https://ps.w.org/acceguru/assets/banner-772x250.png?rev=3635691)

![](https://ps.w.org/acceguru/assets/icon-256x256.png?rev=3635691)

# AcceGuru – Accessibility Scanner, Auto-Fixer & AI Alt Text

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

[Download](https://downloads.wordpress.org/plugin/acceguru.1.0.1.zip)

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

 [Support](https://wordpress.org/support/plugin/acceguru/)

## Description

AcceGuru helps identify and address accessibility issues related to WCAG 2.0 / 2.1/
2.2, Section 508 and EN 301 549. Automated testing cannot establish legal compliance
or complete WCAG conformance; manual review is still required.

The axe-core scanner checks selected posts, pages and public custom post types from
one dashboard. Saved results appear in the Block Editor sidebar and A11y post-list
column, while the front-end overlay highlights affected elements on the live page.

AcceGuru also provides toggleable accessibility fixers, site-wide ignored rules,
optional AI-generated alt text using your own provider key, and an accessibility
statement generator.

#### Key features

 * axe-core plus AcceGuru checks, filtered by the selected WCAG level and recommended-
   checks setting
 * Dashboard scan with progress, pause/resume, failed-page retry, log export and
   content-type coverage
 * Block Editor sidebar, A11y post-list column and front-end issue highlighter
 * 13 independently toggleable fixers and site-wide ignored rules
 * Optional single, bulk and on-upload AI alt-text generation
 * Accessibility statement page, shortcode and optional footer link
 * Translation-ready (text domain `acceguru`)

#### Auto-fixers

Low-impact fixes are enabled on install. Appearance-changing fixes are off by default.
Settings -> Fixers provides separate controls for skip links, focus outlines, language
attributes, search and comment-form labels, empty searches, new-window and document-
link labels, link underlines, video controls, positive tabindex, redundant titles
and viewport scaling.

#### Standards coverage

 * **WCAG 2.0 / 2.1 / 2.2** – selectable levels A, AA and AAA
 * **Recommended checks** – optional axe-core and AcceGuru checks that are not formal
   WCAG failures
 * **Section 508** and **EN 301 549** – optional axe-core tagged rules

Accessibility requirements vary by jurisdiction. AcceGuru does not determine or 
guarantee legal compliance or complete WCAG conformance.

#### AI providers

AI alt text is optional and uses an API key supplied by the site owner. Supported
providers are OpenAI, Anthropic, Google Gemini and Mistral. Keys are encrypted at
rest using the WordPress authentication salt. See Privacy below for exactly when
data is sent and for provider terms and privacy policies.

### Privacy

AcceGuru does not phone home and has no analytics, telemetry, third-party trackers
or remote license validation. The scanner runs in the browser and scan results stay
on your site.

AI features are optional. When you request alt text for one image, run Bulk Alt 
Text, or enable automatic generation on upload, AcceGuru sends the image content
and a text prompt from your server to the selected provider. Testing an API key 
sends only a short text prompt; Bulk Alt Text performs this test before processing
images. When media is stored remotely or served through an offloaded-media/CDN URL,
AcceGuru may first fetch that attachment URL. No provider request is made unless
an administrator configures an AI provider and API key. Requests occur when an authorized
user generates alt text, an administrator tests a key or starts bulk generation,
or automatic generation on upload has been enabled.

Provider information:

 * OpenAI – https://openai.com/ · https://openai.com/policies/services-agreement/·
   https://openai.com/policies/privacy-policy/
 * Anthropic – https://www.anthropic.com/ · https://www.anthropic.com/legal/commercial-
   terms · https://www.anthropic.com/legal/privacy
 * Google Gemini – https://ai.google.dev/ · https://ai.google.dev/gemini-api/terms·
   https://policies.google.com/privacy
 * Mistral – https://mistral.ai/ · https://mistral.ai/terms/ · https://legal.mistral.
   ai/terms/privacy-policy

#### Data stored in your database

 * `wp_options` – settings, ignored-rules list, encrypted AI API keys (under `acceguru_*`)
 * `wp_postmeta` – per-post scan results and scan summary (under `_acceguru_*`)
 * `wp_options` transients – dashboard aggregate cache (1 hour TTL)

On uninstall, data is preserved by default. The plugin replaces its shortcode on
the tracked accessibility-statement page with a final static statement, so the published
page remains readable without AcceGuru. Enable “Delete all data on uninstall” under
Settings -> Rules, in the Advanced section, to remove plugin options, transients
and post metadata and move the tracked statement page to the Trash. A page that 
no longer contains the AcceGuru shortcode is left untouched.

### Credits

This plugin bundles axe-core (`assets/js/axe.min.js`, version 4.12.1), the accessibility
testing engine by Deque Systems, licensed under the Mozilla Public License 2.0. 
Unminified source: https://github.com/dequelabs/axe-core/tree/v4.12.1

The bundled DM Sans and JetBrains Mono fonts are licensed under the SIL Open Font
License 1.1. The full license is in assets/fonts/OFL.txt.

## Screenshots

[⌊Per-page issue list in the Block Editor sidebar.⌉⌊Per-page issue list in the Block
Editor sidebar.⌉[

Per-page issue list in the Block Editor sidebar.

[⌊Site-wide scan dashboard with top offending pages and most common issues.⌉⌊Site-
wide scan dashboard with top offending pages and most common issues.⌉[

Site-wide scan dashboard with top offending pages and most common issues.

[⌊Front-end overlay highlighting accessibility issues on the live page.⌉⌊Front-end
overlay highlighting accessibility issues on the live page.⌉[

Front-end overlay highlighting accessibility issues on the live page.

[⌊Bulk AI alt-text generation across the Media Library.⌉⌊Bulk AI alt-text generation
across the Media Library.⌉[

Bulk AI alt-text generation across the Media Library.

[⌊Settings screen with toggleable fixers and AI provider selection.⌉⌊Settings screen
with toggleable fixers and AI provider selection.⌉[

Settings screen with toggleable fixers and AI provider selection.

[⌊Accessibility statement generator with live preview.⌉⌊Accessibility statement 
generator with live preview.⌉[

Accessibility statement generator with live preview.

## Installation

 1. Upload the `acceguru` folder to `/wp-content/plugins/`, or install via Plugins -
    > Add New.
 2. Activate the plugin through the Plugins screen.
 3. Go to **AcceGuru -> Settings** to enable the fixers you want.
 4. (Optional) Add an API key under **AI Alt Text** if you want AI-generated alt text.
 5. Run a site scan from AcceGuru -> Dashboard.
 6. Open any scanned post or page in the Block Editor to review its saved results.

## FAQ

### Does this make my site WCAG compliant automatically?

No. Automated testing covers only part of accessibility. Manual review is still 
required for matters such as meaningful headings, link purpose, keyboard interaction
and reading order. AcceGuru does not determine or guarantee legal compliance or 
complete WCAG conformance.

### Where are AI API keys stored?

In `wp_options`, encrypted with AES-256-GCM using a key derived from `wp_salt('auth')`.
If the server lacks the required OpenSSL support, the key is not saved unencrypted.
It is sent only to the configured provider.

### Does the scanner slow down my site?

The scanner is not loaded for normal visitors. axe-core is lazy-loaded for an authorized
user only when a dashboard scan or front-end overlay scan is requested.

### Which post types does the A11y column appear on?

Posts, pages, and public custom post types that use the standard WordPress posts
list table. Media Library attachments are not included.

### Can I exclude specific issues or rules?

Yes. Use the “Ignore” button on the dashboard’s Most Common Issues panel to hide
a rule site-wide; ignored rules are excluded from dashboard counts and per-page 
panels.

### Does it work with block themes?

Yes. The fixers support block themes, including `theme.json` styles.

### Why does the dashboard count differ from what I see in the front-end overlay?

The site scan uses a desktop-sized viewport based on the administrator’s browser,
with a minimum of 1024×768. The overlay uses the current live viewport, so layout-
dependent results can differ.

### How is Passed Checks calculated?

Passed Checks is the percentage of completed axe-core checks that passed. AcceGuru
findings appear in issue totals and lists but are not mixed into that percentage.
Results are marked for a new scan after relevant settings or rules change.

### Why do some pages show “Timed out after 30s” in the scan log?

Each page has a 30-second limit. Slow hosting, heavy themes/plugins or third-party
scripts can cause a timeout; use “Retry failed pages” after the server recovers.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“AcceGuru – Accessibility Scanner, Auto-Fixer & AI Alt Text” is open source software.
The following people have contributed to this plugin.

Contributors

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

[Translate “AcceGuru – Accessibility Scanner, Auto-Fixer & AI Alt Text” into your language.](https://translate.wordpress.org/projects/wp-plugins/acceguru)

### Interested in development?

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

## Changelog

#### 1.0.1

 * Update the bundled axe-core accessibility engine from 4.10.2 to 4.12.1.
 * Apply WCAG level and recommended-check settings consistently to axe-core and 
   AcceGuru checks.
 * Correct rule classifications, remove duplicate findings and calculate Passed 
   Checks from axe-core results only.
 * Mark incompatible saved results for a new scan and prevent pause/resume or retry
   from mixing scan profiles.
 * Preserve a readable static accessibility statement, or trash the tracked statement
   page when uninstall data removal is enabled.
 * Add OpenAI and Anthropic alt-text providers alongside Gemini and Mistral.
 * Add failed-page retry, bounded scan logs, iframe message validation, navigation
   warnings and content-type coverage information.
 * Make the live overlay keyboard accessible and clean up highlights and event listeners
   after every scan.
 * Improve the dashboard, settings, Block Editor links and alt-text handling.

Earlier release history is available in `changelog.txt`.

## Meta

 *  Version **1.0.1**
 *  Last updated **6 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.4 or higher **
 *  Tested up to **7.0.2**
 *  PHP version ** 8.0 or higher **
 * Tags
 * [a11y](https://wordpress.org/plugins/tags/a11y/)[accessibility](https://wordpress.org/plugins/tags/accessibility/)
   [ada](https://wordpress.org/plugins/tags/ada/)[Section 508](https://wordpress.org/plugins/tags/section-508/)
   [wcag](https://wordpress.org/plugins/tags/wcag/)
 *  [Advanced View](https://wordpress.org/plugins/acceguru/advanced/)

## Ratings

No reviews have been submitted yet.

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

[See all reviews](https://wordpress.org/support/plugin/acceguru/reviews/)

## Contributors

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

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/acceguru/)