Black Friday: 79% off every plugin Shop the sale →

Feature Overview

Scanning#

The scan reads content in batches and keeps going in the background. It re-checks a single post whenever it is saved, using the deterministic rules only. Posts over 1 MB of content are skipped with an info issue.

What it checks#

CheckWCAGFix
Missing alt text on Image, Cover, Media & Text and classic images1.1.1Copy the Media Library alt text if there is one; otherwise AI draft, your own text, or mark decorative
Suspicious alt text (a filename, URL, “image”, or the same as the caption)1.1.1AI draft or your own text
Ambiguous link text (“click here”, “read more”)2.4.4New link text or an aria-label that starts with the visible text
Empty links2.4.4, 4.1.2Aria-label, or the image fix when the link wraps an image
Empty buttons4.1.2Text or aria-label
Skipped heading levels1.3.1Set the level to the previous level plus one
Empty headings1.3.1, 2.4.6Manual: add text or remove the block
Text contrast from block settings1.4.3Nearest passing palette colour; manual when none passes or a gradient or image is involved
Iframes without a title4.1.2Title proposal
Autoplaying video and audio1.4.2, 2.2.2Remove autoplay
Tables with no header cells1.3.1Manual, with guidance
Page-builder contentn/aReport only: fix it in the builder

Contrast is checked from colours set in block attributes and theme palette presets. It does not test colours over images or gradients; those are listed as manual checks.

Issues#

Fix Queue > Issues lists every issue with its element, context and why it fails. For each issue you can Propose fix, Ignore or open the post in the editor. To propose fixes for several issues at once, tick them and choose Propose fixes from the bulk actions; the result (proposed, skipped because of the AI limit, or needing a manual fix) is announced above the list. Ignoring needs a reason, and the decision and reason survive re-scans. Statuses are Open, Ignored, Resolved and Fix in progress.

Queue#

Fix Queue > Queue holds pending proposals grouped by rule. Each shows the diff, who or what proposed it (a rule, an AI model, or an outside agent through an ability), and, for text fixes, an editable field. Choose Approve, Edit & approve or Reject. Bulk Approve and Reject work per rule group; fixes whose text you edited are left out of bulk approval so you approve them one by one.

Before you can approve, the page checks the proposed markup with the block editor’s parser. If the editor would call it invalid, approval is disabled for that change.

Apply, stale protection and verification#

When you approve, the plugin re-reads the post. If it changed since the proposal, the fix is marked stale and nothing is written. Otherwise it stores a snapshot, saves through the normal WordPress save (so revisions and hooks run), and checks that the stored content equals the intended content. If a content filter altered it, the fix is marked failed and the snapshot is restored. Applying only ever happens in an interactive admin request, never from cron or an ability.

History and rollback#

Fix Queue > History lists every applied change with who approved it and when. Roll back restores the exact prior content if the post still matches what the fix produced. If it has been edited since, the plugin only reverses the change when its block is still unchanged; otherwise it refuses with a reason and links to the post’s revisions. Rollbacks are logged too.

AI proposals#

Off by default. When on, and a provider is connected under Settings > Connectors, the Propose fix button can draft alt text, link text and labels. Proposals are made only on demand, never in the background scan. Output is validated (plain text, length limits, no URLs in alt text) before it becomes a proposal, and you can edit it before approving. Each AI proposal records the provider and model. For alt text the model may answer “decorative” with a reason.

If the WordPress AI plugin’s alt-text ability is registered, alt proposals use it and still go through your approval.

Reports#

Fix Queue > Reports (needs manage_options) creates the progress report for a date range:

  • Scope, counts and scan dates.
  • Issues found, fixed, ignored and remaining, by WCAG criterion and by rule.
  • Applied changes with approver and date.
  • A fixed “What this report does not cover” section: keyboard, focus order, screen-reader testing, contrast over images, media captions, forms from plugins, PDFs and theme code.

Open the printable report and use your browser’s Print command to make a PDF. Download issues (CSV) and changes (CSV) for spreadsheets. With white label on, the report carries your agency name, logo, accent colour and footer and no plugin branding.

The report wording is fixed: it records automated checks and approved fixes, says automated tools find only part of the issues, and does not state that the site conforms to WCAG or any law.

Accessibility statement draft#

A fill-in template following the W3C WAI statement model: organisation, website, standard you are working towards, conformance status, known limitations, feedback contact and date. You review, edit and publish it yourself; nothing is published from the plugin. The conformance status is your choice, and the default makes no claim that an audit was done.

Scheduled scans and digest#

Choose Off, Daily or Weekly under Scheduled scan. The optional weekly Email digest goes to the admin email address and contains counts only.

WP-CLI#

wp afq scan                 # full scan, to completion
wp afq scan --post=42       # one post
wp afq issues --status=open --format=json
wp afq issues --rule=image-alt-missing
wp afq summary --format=csv

WP-CLI can scan and list. It cannot approve or apply fixes.

Abilities for outside agents#

The plugin registers abilities in the category accessibility-fix-queue, available to agents through the MCP Adapter for a logged-in user who has the review capability:

AbilityWhat it does
accessibility-fix-queue/get-summaryRead-only summary of issues
accessibility-fix-queue/list-issuesRead-only list of issues
accessibility-fix-queue/scan-postScan one post and store its issues
accessibility-fix-queue/propose-fixQueue a pending proposal for one issue
accessibility-fix-queue/list-changesRead-only list of proposed changes

There is deliberately no ability to approve, apply or roll back. Proposals made this way show as proposed by an outside agent in the Queue, and a person still decides.

What it does not do#

  • It does not fix page-builder content. Pages built with Elementor, Divi, Bricks, WPBakery or Beaver Builder are reported as “report only, fix in the builder”.
  • It does not test rendered pages in a browser, keyboard traps, focus order or contrast over images and gradients.
  • It does not edit theme or plugin code, forms built by form plugins, PDFs, or media captions and transcripts.
  • It only edits templates that have been customised into the database. For a template that is only a theme file, customise it in the Site Editor first.
Was this article helpful?