=== SecurePilot Accessibility Scanner ===
Contributors: securepilot
Tags: accessibility, wcag, ada, section 508, eaa
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Scans posts and pages for WCAG 2.1, ADA, Section 508, and EAA compliance issues, with a dashboard, remediation hints, and PDF/JSON export.

== Description ==

SecurePilot Accessibility Scanner scans your published posts and pages for common accessibility issues and reports them on a dashboard, mapped to the specific compliance clause each one violates.

= Why SecurePilot? =

SecurePilot helps website owners, developers, and compliance teams find accessibility issues before they affect users or create compliance risk. It turns common WCAG, ADA, Section 508, and European Accessibility Act checks into clear reports with practical remediation guidance.

= Key features =

* WCAG 2.1 compliance mapping
* ADA accessibility reporting
* Section 508 accessibility checks
* European Accessibility Act (EAA) support
* Actionable remediation guidance
* Dashboard with issue summaries
* Downloadable standalone PDF report and JSON export

= Languages =

* English (default)
* Spanish
* German
* French

= What it detects =

* Missing or non-descriptive image alt text
* Empty or generic link text ("click here", "read more")
* Missing form field labels
* Insufficient color contrast on inline-styled text (below a configurable ratio, default 4.5:1)
* Heading hierarchy breaks (skipped levels, missing or duplicate h1)
* Missing focus indicators (heuristic — flagged for manual keyboard-navigation review)
* Missing video captions

= How it works =

* A daily scheduled scan, with weekly scheduling support, fetches each published post or page from its public URL and checks the available HTML against the rules above.
* Each issue is mapped to the relevant WCAG 2.1, ADA, Section 508, and EAA clause, with a plain-language remediation hint.
* Issues are tracked per page. Re-scanning automatically resolves issues that were fixed, while dashboard "Dismiss" records an explicit, sticky override (e.g. an accepted risk) that survives future scans.
* Export a full remediation plan as PDF, or the raw issue data as JSON, at any time.

= Standards mapped =

* WCAG 2.1 (A / AA)
* ADA (Title II/III effective communication)
* Section 508
* EAA (European Accessibility Act)

== Installation ==

= From a package =

1. Upload and activate the plugin as usual from Plugins > Add New > Upload Plugin.
2. Optional: to enable native PDF export, run `composer install` inside the plugin directory (without it, PDF export falls back to a printable HTML report).

= From source =

1. Copy the plugin into `/wp-content/plugins/securepilot-accessibility-scanner`.
2. Run `composer install` to install Dompdf (optional, enables PDF export).
3. Run `npm install && npm run build` to build the React dashboard assets.
4. Activate the plugin from the Plugins screen.

After activation, a scan is scheduled automatically. Use "Scan Site Now" on the Accessibility dashboard to run one immediately.

== Frequently Asked Questions ==

= Does this guarantee my site is fully compliant? =

No. It automatically catches a useful set of common, machine-detectable issues, but a handful of checks (focus indicators, third-party embedded video captions) are heuristics flagged for manual review, and many WCAG success criteria (e.g. meaningful reading order, keyboard traps, correct ARIA usage) require human judgment or a full browser to evaluate. Treat this as a first pass, not a substitute for a manual audit.

= Why does color contrast only check some elements? =

Contrast checking only evaluates colors declared directly in an element's `style` attribute. Colors set via an external stylesheet or theme CSS require a real browser to compute, which is out of scope for a server-side scan.

= What happens to my data if I uninstall the plugin? =

By default, nothing is deleted — your scan history and settings remain in the database if you reactivate later. If you want a full cleanup on uninstall, enable "Delete data on uninstall" in Settings before removing the plugin.

= Where are scan results stored? =

In a dedicated `wp_accessibility_issues` table, one row per detected issue, with its status (open, resolved, or ignored), severity, and the specific standards clause it violates.

== Screenshots ==

1. Accessibility dashboard showing sample scan results, issue totals, errors, warnings, passed items, WCAG clause mapping, filters, remediation guidance, and export actions.

== Changelog ==

= 1.0.0 =
* Initial release: image alt text, link text, heading hierarchy, form label, and color contrast checks.
* Focus indicator and video caption checks.
* REST API for scanning, listing/resolving issues, and PDF/JSON export.
* React-based admin dashboard.

== Upgrade Notice ==

= 1.0.0 =
Initial release.
