=== ABILITY ===
Contributors: demewebsolutions
Tags: accessibility, wcag, a11y, usability, scanner
Requires at least: 5.8
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.1.6
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Accessibility Made Simple. ABILITY is the all-in-one, plug-and-play accessibility solution for WordPress. Built for fast setup and everyday use, the ABILITY accessibility widget combines automated assistance, accessibility controls, heuristic reporting, and guided tools to help improve your website’s accessibility status in minutes. Deliver a better experience for all visitors without compromising your website’s design or presentation.

== Description ==

ABILITY is a WordPress accessibility toolkit that provides configurable visitor controls, heuristic page scanning, and reporting to help site owners identify and address common accessibility issues. Automated tools cannot determine complete accessibility, standards conformance, or legal compliance.

**Features:**

* Static code scanning for accessibility issues
* Frontend accessibility widget
* Heuristic checks mapped to selected WCAG criteria
* Easy-to-use setup wizard
* Accessibility statement template
* Multiple accessibility controls (high contrast, font size, focus indicators, and more)

== Installation ==

1. Upload the plugin files to the `/wp-content/plugins/ability` directory, or install the plugin through the WordPress plugins screen directly.
2. Activate the plugin through the 'Plugins' screen in WordPress.
3. Use the Setup Wizard to configure your accessibility settings.

== Server Requirements & Configuration ==

ABILITY follows standard WordPress requirements and should work on any host that supports a normal WordPress installation.

= Minimum technical requirements =

* Web server: Apache (recommended) or Nginx, configured for WordPress pretty permalinks.
* PHP: 7.4 or higher. The page scanner requires the standard DOM/XML extension. WordPress must also have a working HTTP transport (typically cURL or streams).
* MySQL / MariaDB: As required by your WordPress version.

= Apache (default WordPress setup) =

Most shared hosts run Apache with `.htaccess` support enabled:

* Ensure `AllowOverride` is enabled so WordPress can manage `.htaccess` and pretty permalinks.
* Use one of WordPress’s pretty permalink structures under **Settings → Permalinks**.
* No special rewrite rules are required specifically for ABILITY; it uses normal WordPress AJAX and admin-ajax.php.

= Nginx =

When running Nginx, ensure your configuration supports WordPress permalinks and admin Ajax:

* Use the official WordPress Nginx rules (see WordPress.org documentation) to route requests to `index.php`.
* Make sure `admin-ajax.php` is accessible (no custom blocking rules on `/wp-admin/` AJAX).
* No ABILITY-specific location blocks are required; the plugin uses standard WordPress hooks and endpoints.

If in doubt, configure the server to meet the [WordPress Hosting Requirements](https://wordpress.org/about/requirements/) first; ABILITY will work on any environment that satisfies those.


== Standards and legal context ==

W3C recommends WCAG 2.2 for current accessibility work: https://www.w3.org/TR/WCAG22/

Specific legal requirements depend on the organization, website, content, jurisdiction, and applicable law. For example, the U.S. Department of Justice Title II web and mobile accessibility rule for state and local governments uses WCAG 2.1 Level AA as its technical standard. As of the DOJ's April 2026 Interim Final Rule, the general compliance dates are April 26, 2027 for public entities with populations of 50,000 or more and April 26, 2028 for smaller public entities and special district governments. Review the current official rule and exceptions before relying on any date: https://www.ada.gov/resources/2024-03-08-web-rule/

ABILITY is a technical assistance tool. It is not legal advice, does not replace manual and assistive-technology testing, and does not certify that a site conforms to WCAG or any law.

== Frequently Asked Questions ==

= What accessibility standards does ABILITY support? =

ABILITY includes heuristic checks and guidance informed by WCAG. W3C recommends WCAG 2.2 for current accessibility work. Some laws and policies may reference other versions, including WCAG 2.1 Level AA. ABILITY does not certify WCAG conformance or determine legal obligations for a website.

= How does the scanning work? =

ABILITY scans your site\'s pages for common accessibility issues like missing alt attributes, unlabeled buttons, and form inputs without labels. Administrators start scans from the ABILITY dashboard. The free version allows scanning up to 5 pages per day, with a maximum of 5 pages in a single scan. The saved scan-schedule field is a preference only in this Free build and does not create a background scheduled job.

= Can I customize the frontend widget? =

Yes, you can customize the widget position, style, and appearance in the settings.

= What happens to data when ABILITY is uninstalled? =

Uninstall removes ABILITY settings and transients but intentionally preserves the scan-results database table and any Accessibility Statement page/content to avoid silently destroying audit history or site-owner content. Review, export, or remove retained records explicitly if your site policy requires it.

== Changelog ==

= 1.1.6 =
* Updated public plugin description and release metadata. No functional behavior changes from 1.1.5.

= 1.1.5 =
* Fixed frontend panel header/tagline collision, footer clipping, and Dyslexia-font long-label wrapping.
* Added widget-only Voice Read-Out with a one-time read-through and interaction-driven narration (no host-page speech).
* Fixed heuristic report JSON download reliability.

= 1.1.2 =
* Hardened Basic-tier scan enforcement and daily quota accounting.
* Enforced the scanning enable/disable setting at the server boundary and clarified that the saved schedule is a preference, not a background scheduler in this Free build.
* Changed automatically generated accessibility statement pages to draft/review-required status and removed unverified site-wide assertions from the default template.
* Structured-data output is now conservative by default and does not emit unverified accessibility/conformance claims.
* Improved settings persistence, AJAX input handling, and Advanced Settings save behavior.
* Clarified heuristic-report and accessibility-assistance language.
* Added Distraction-Free Mode (ADHD/ADD) toggle to the frontend widget.
* Extended scanner with additional typography/CSS checks (small text, justified text).
* Improved typography guidance and documentation in the Learning & Resources area.

= 1.1.1 =
* Enhanced PHP-only page scanner (no external Python/AI dependency)
* Added additional WCAG-oriented rules (buttons, headings, tabindex, html[lang], CSS outline removal)
* Improved frontend accessibility widget and defaults
* Setup wizard refinements and settings alignment

== Upgrade Notice ==

= 1.0.0 =
Initial release of ABILITY accessibility assistance and scanning tools.

