=== 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: 0.1.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.

= 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 (or weekly) scheduled scan fetches each published page's live, rendered HTML and checks it 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, compliance percentage, severity totals, workflow counts, filters, remediation guidance, and export actions.

== Changelog ==

= 0.1.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 ==

= 0.1.0 =
Initial release.
