AccessPilot – Documentation

Version 1.1.0

Accessibility checker and fixer for WordPress. No overlay widget. One plugin with every tool included.

Overview

AccessPilot finds common WCAG 2.2 AA failures in your content and rendered pages and helps you fix them at the source. It never injects an overlay toolbar. Everything below ships in the single accesspilot plugin: there is no add-on, licence key or other plugin to install.

Content tools

Editor sidebar checks, site-wide report with background scanning, one-click alt text, front-end fixes, accessibility statement, setup wizard.

Pro tools (included)

Rendered page crawls, bulk/AI alt text, PDFs, products, fix log + CSV, network admin, HTML/PDF client reports.

No automated tool can find every accessibility issue or guarantee legal compliance. Use AccessPilot alongside manual keyboard and screen reader testing.

Installation & setup wizard

  1. Go to Plugins → Add New → Upload Plugin and upload accesspilot-1.1.0.zip. Activate it (on multisite you may Network Activate to manage Pro settings network-wide).
  2. The Setup Wizard opens once after activation (you can reopen it at AccessPilot → Setup Wizard):
    1. Content and fixes – choose the content types to check and switch on any front-end fixes.
    2. Accessibility statement – organisation, contact email and WCAG level.
    3. Crawl and AI options – schedule crawls and optionally add your own AI key.
    4. First scan – start the site-wide content scan.
  3. Open AccessPilot → Report to follow progress.

Upgrading from 1.0 with the separate “AccessPilot Pro” add-on: the add-on is deactivated automatically because its features are built in. To keep its settings and fix log, remove the accesspilot-pro folder by FTP or your host’s file manager rather than deleting it from the Plugins screen (its old uninstaller would erase them).

Requirements: WordPress 6.2+, PHP 7.4–8.5, the PHP DOM extension (standard on most hosts), working WP-Cron (or a real cron calling wp-cron.php). WooCommerce is optional and only needed for product checks.

Content tools

Checks

Checks performed
Check What it flags Severity
Alt text Images with no alt; linked images whose empty alt leaves the link with no name Error
Colour contrast Text below 4.5:1 (3:1 for large text), using inline colours, block colour classes, the theme.json palette and the theme’s default text/background Error
Headings Skipped levels (e.g. h2 → h4) and empty headings Warning / Error
Links & buttons Links or buttons with no text or accessible name Error
Form labels Inputs, selects and textareas with no label, aria-label or title Error
Vague link text “click here”, “read more”, “learn more” and similar Warning

Block editor sidebar

Click the universal-access icon in the editor toolbar, then Scan this content. Unsaved changes are scanned. For image issues, type a description and press Fix alt text: it is saved to the Media Library and to the image block.

Site-wide report

AccessPilot → Report lists every scanned item with error and warning counts, sortable, searchable and paged. Scan entire site processes 10 items per batch through WP-Cron and also advances while the page is open. Each row has Re-scan and an inline Fix image alt text panel. Published posts are re-scanned automatically when saved.

One-click alt text

Fix alt text from AccessPilot → Alt Text (pre-filled suggestions from file names), from the Alt text column in the Media Library list view, or from the report.

Front-end fixes

Opt-in fixes under AccessPilot → Fixes: skip link, visible focus outline, removal of positive tabindex, underlined content links, and filling missing alt attributes from the Media Library.

Accessibility statement

Fill in AccessPilot → Statement and click Create statement page, or place [accesspilot_statement] on any page.

Pro tools

Site crawl

AccessPilot → Site Crawl fetches your own rendered pages (home page plus every published, non-password item of the scanned content types, and products when WooCommerce is active) with wp_remote_get and checks the full HTML, including theme header, menus and footer, plus page lang and <title>. Run it on demand or schedule daily/weekly in Pro Settings. By default every page is crawled. If you set Max pages per crawl, the crawl stops there and the screen tells you how many pages were not crawled. Results are paged 50 per screen.

Bulk alt text with optional AI

Bulk Alt Text lists images without alt text 50 per page, with “Showing X–Y of Z” and page links to reach all of them. Generate suggestions from file names or, if you saved your own API key, with AI. Review and edit, then Apply all on this page. Fixed images drop off the list, so reloading brings the next images up. Images are sent to the AI provider only when you click “Suggest with AI” (see External services).

PDF checks

PDFs checks every PDF in the Media Library for a tagged structure tree, a document title and a document language using basic parsing (including compressed object streams). The check runs in background batches of 20 with live progress until all PDFs are done; results are paged.

WooCommerce product checks

Products (shown when WooCommerce is active) checks every published product for missing images, product and gallery images without alt text, empty descriptions, and content issues in descriptions, in the same background batches.

Remediation log

Every fix (editor, report, media, bulk) is recorded with user, time, before and after values. Fix Log shows 100 entries per page with page links; Export CSV downloads every entry.

Multisite

Network-activate to share Pro settings across the network and get a Network Admin → AccessPilot overview of scans and crawls per site, 50 sites per page.

White-label client reports

Download HTML or PDF reports from Client Reports with your company name, logo, brand colour and footer. Reports contain the summary totals and the top 15 pages needing the most work.

Limits & background jobs

  • Content scan: 10 items per WP-Cron batch. Crawl: 5 pages per batch. PDF and product checks: 20 items per batch. Each continues until everything is covered.
  • Every background job claims its work with an atomic database lease (a token plus expiry written in one query). Overlapping cron runs, open admin tabs and the “run now” buttons cannot process the same batch twice; a lease left by a crashed request expires and the job resumes.
  • Each scanned item stores up to 200 issues. Each crawled page shows its first 25 issues and the total count; open the page in the editor sidebar for the full list.
  • Crawl: every published page unless you set Max pages per crawl (0 = no limit, maximum 100,000).
  • AI alt text: up to 3 images per request, within your per-minute budget (default 10, maximum 60).
  • Colours set only in external CSS files are not evaluated for contrast.

External services

AccessPilot sends data to a third party only for the optional AI alt text feature.

  • Service: OpenAI Chat Completions API (https://api.openai.com/v1/chat/completions) by default, or the OpenAI-compatible endpoint you enter in Pro Settings.
  • When: only when an administrator clicks Suggest with AI on Bulk Alt Text and an API key is saved. Nothing is sent on page views, by cron, or automatically.
  • Data sent: the image file (medium size when available), your site language code, the model name, and your own API key as the authorization header. Your provider bills you for these requests.
  • Rate limiting: a per-minute request budget, 30-second timeout, up to 3 attempts with exponential backoff (2, 4 s, honouring Retry-After) on HTTP 429 or 5xx, then a cool-down of 1, 2, 4, 8 or 16 minutes after repeated 429s. The browser waits and retries rate-limited images automatically, up to 5 times.
  • OpenAI terms of use and privacy policy.

The site crawl requests pages on your own site only (same host).

Settings reference

Settings
Setting Where Default
Skip link / target ID Fixes, Setup Wizard Off / auto-detect
Visible focus outline Fixes, Setup Wizard Off
Remove positive tabindex Fixes, Setup Wizard Off
Underline links in content Fixes, Setup Wizard Off
Use Media Library alt text Fixes, Setup Wizard Off
Content types to scan Fixes, Setup Wizard Posts, Pages
Organisation, contact email, WCAG level, date, known limitations Statement, Setup Wizard Site name, admin email, AA
Scheduled crawl Pro Settings, Setup Wizard Off
Max pages per crawl Pro Settings 0 (every page)
AI endpoint, API key, model Pro Settings (key also in Setup Wizard) OpenAI URL, empty, gpt-4o-mini
AI requests per minute Pro Settings 10
Report company, logo, colour, footer Pro Settings Site name, none, #1a5fb4

Developer hooks

  • accesspilot_scan_issues (filter) – modify issues returned for any HTML.
  • accesspilot_vague_link_phrases (filter) – phrases treated as vague link text.
  • accesspilot_post_types (filter) – post types scanned.
  • accesspilot_fix_applied (action) – ( $type, $object_id, $details ) when a fix is applied.
  • accesspilot_post_scanned (action) – after a post is scanned.
  • accesspilot_pro_crawl_extra_urls (filter) – extra same-site URLs to add to each crawl.
  • accesspilot_pro_ai_backoff (filter) – seconds to wait before an AI retry.
  • REST: accesspilot/v1/scan, /alt, /batch; accesspilot-pro/v1/crawl, /job, /alt-suggest.

FAQ

Does AccessPilot make my site compliant?

No automated tool can guarantee compliance. AccessPilot catches common, machine-detectable failures; combine it with manual keyboard and screen reader testing.

Why no overlay widget?

Overlays do not repair the underlying markup and are widely criticised by disabled users. AccessPilot fixes content and theme output directly.

Do I need another plugin or a licence key?

No. AccessPilot is one plugin with every tool included and no licence checks.

Does AccessPilot contact external servers?

Only your own site (crawls) and, if you configure it, your chosen AI endpoint when you click “Suggest with AI”.

Are colours from my theme stylesheet checked?

Colours from inline styles, block colour classes, the theme.json palette and theme defaults are evaluated. Colours set only in external CSS files are not.

What happens when I uninstall?

Deleting AccessPilot removes its options, scan data, crawl and check results, and the remediation log table. Your content and saved alt text stay.

Support

Email admin@007aj.com, or message us from your WPBay purchase page.

Please include:

  • your site URL, and the WordPress, PHP and AccessPilot versions (Tools → Site Health → Info);
  • your theme and other active plugins, and whether the site is multisite or uses WooCommerce;
  • the AccessPilot screen involved and the exact steps to reproduce the problem;
  • any error text, the relevant lines from wp-content/debug.log, and screenshots;
  • for crawl or check jobs, the progress numbers shown on screen and whether WP-Cron is disabled.

Never send passwords or API keys. We will never ask for them. Remove keys from any screenshot or log before sending.

Changelog

1.1.0 – 2026-10-29

  • AccessPilot and AccessPilot Pro merged into one plugin; no add-on or other plugin required.
  • New setup wizard after activation.
  • Site crawl covers every published page by default; optional page limit with a visible “not crawled” notice.
  • PDF and WooCommerce checks run as resumable background jobs covering every item.
  • Paging for Bulk Alt Text, crawl, PDF and product results, the fix log and the network overview.
  • Atomic database leases for the content scan, crawl and check jobs.
  • AI alt text: per-minute budget, timeout, exponential backoff on 429/5xx and automatic retry.
  • External services disclosure, Support section, translation template.

1.0.0 – 2026-10-23

  • Initial release.