=== AccessIQ — WCAG Accessibility Scanner, Heatmap & Behavior Analytics ===
Contributors: readscope
Tags: accessibility, wcag, accessibility checker, heatmap, screen reader
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 2.1.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Free automated WCAG 2.1 & 2.2 accessibility checker + self-hosted click heatmaps + behavior analytics. One plugin. One dashboard. Zero subscriptions.

== Description ==

**AccessIQ** is a free WordPress accessibility plugin that combines three tools most sites pay separately for — an **automated WCAG 2.1 & 2.2 accessibility checker**, a **self-hosted click heatmap engine**, and **behavior analytics** — all inside a single dark-themed dashboard, with no data leaving your server.

**Please note:** automated checks find many common problems (missing alt text, empty links, skipped headings, missing page language, form labels, contrast and more) but cannot prove that a site conforms to WCAG. Treat the score as a guide and complement it with manual testing (keyboard, screen reader, content review).

No API keys. No subscriptions. No third-party services for core features.

🔬 [Live Demo](https://accessiq.thereadscope.com/) | 📖 [Documentation](https://accessiq.thereadscope.com/) | 💬 [Support Forum](https://wordpress.org/support/plugin/accessiq/)

---

= Why WordPress Sites Need an Accessibility Scanner =

**ADA and EAA lawsuits are rising.** Any publicly accessible website can be targeted — and "we didn't know" is not a legal defense. WCAG 2.1 conformance is increasingly referenced by law across the US, EU, and UK.

**Inaccessible sites lose real users.** 1 in 4 adults has a disability that affects how they use the web. An inaccessible checkout button or unlabeled form field directly costs you conversions.

**Most tools only tell you there's a problem.** AccessIQ shows you exactly which element failed, why it failed, and what to fix.

---

= What You Get — 100% Free =

**♿ WCAG 2.1 & 2.2 Accessibility Scanner**
Run unlimited scans on any page or post URL on your site. Get a 0–100 accessibility score, severity-ranked issues with element snippets, and full scan history. Choose Level A, AA, or AAA as the target; the checks are automated and cover a subset of WCAG.

**🔥 Self-Hosted Click Heatmap Engine**
See exactly where your visitors click, overlaid on your live site inside a macOS-style browser frame. All click data stays in your own database — no Hotjar, no external service required.

**📈 Behavior Analytics**
Track sessions, bounce rates, average time on page, and device splits. Animated Chart.js dashboards that rival tools costing $50/month — built right into WordPress.

**🧩 Accessibility Profiles**
Five one-click preset configurations — Vision Impaired, ADHD Friendly, Seizure Safe, Dyslexia, and Keyboard Only — that apply multiple accessibility settings instantly. The fastest way for visitors to get the experience they need.

**🔡 Frontend Accessibility Widget**
A fully redesigned floating toolbar with 15 accessibility tools, grouped accordion layout, Lucide SVG icons, Dark/Light/System theme switching, adjustable panel width and height, and mobile bottom-sheet support.

**📊 Score History Chart**
Track how your accessibility score changes over time for any scanned URL. See progress at a glance.

**📋 Accessibility Statement Generator**
One-click publish of an accessibility statement page (it states that you aim to conform; it does not certify conformance). Auto-fills last scan date and top violations, with a live preview and an embeddable `[accessiq_badge]` shortcode.

**🔧 Auto-Fix Engine**
Automatically apply frontend fixes for common violations — Skip Link, Focus Outline, HTML Lang Attribute, and Image Alt Text — with no code required.

---

= Who Uses AccessIQ =

**Developers & Agencies** — Audit client sites before launch. Deliver professional accessibility reports that build trust and justify ongoing maintenance retainers.

**Business Owners** — ADA and EAA lawsuits are rising fast. AccessIQ helps you find and track accessibility issues and documents your remediation efforts. It does not provide legal advice or guarantee compliance.

**E-commerce Stores** — Heatmaps reveal exactly which product page elements get clicked and which get ignored. Fix what matters for conversions.

**Bloggers & Content Creators** — Understand where readers engage without handing your data to Google Analytics.

**UX Designers** — Validate design decisions with real click data. Measure the impact of layout changes with before/after score tracking.

**SEO Professionals** — Clear heading structure, descriptive alt text and well-labelled links help both visitors and search engines understand your content. AccessIQ checks for these common problems.

---

= 🔬 WCAG Scanner — Full Feature List =

* **Accessibility Score (0–100):** Animated score ring with grade label (Excellent / Good / Fair / Poor)
* **WCAG 2.1 & 2.2 Level A, AA, AAA:** Choose your target level per scan
* **Violations by Category:** Visual bar chart — Images, Contrast, Headings, ARIA, Forms
* **Severity Labels:** Critical / Serious / Moderate issue classification
* **Element Selector:** The exact HTML element that caused the violation
* **Fix Suggestions:** Actionable guidance for each violation type
* **Scan History:** Full history with date, score, issue count, and WCAG level per URL
* **Score History Chart:** Line chart showing your score over time
* **Print Reports:** Print scan reports directly from the browser
* **Unlimited Scans:** No limits, no paywalls, no scan credits
* **Single Report View:** Detailed breakdown with back navigation and print option
* **Perfect Score Celebration:** Special screen when a page scores 100/100
* **WCAG 2.2 Checks:** Focus Not Obscured (2.4.11), Dragging Movements (2.5.7), Target Size Minimum (2.5.8)

---

= 🔥 Heatmap Engine — Full Feature List =

* **Live Click Heatmap:** Intensity overlay on your live site — see hot and cold spots instantly
* **In-Dashboard Preview:** View heatmaps inside WP Admin — no external app needed
* **macOS-style Browser Chrome:** Professional browser frame with URL bar and LIVE PREVIEW badge
* **Top Clicked Elements:** Ranked table with element selector, click count, and % of total
* **Gold / Silver / Bronze Rankings:** Visual rank indicators for top 3 elements
* **Date Range Filter:** 7 days / 30 days / 90 days
* **Device Filter:** All Devices / Desktop / Mobile / Tablet
* **Page Dropdown:** Select any tracked page from the dropdown
* **Peak Activity Hour:** Discover when your visitors are most active
* **Self-Hosted:** 100% — all click data lives in your WordPress database
* **Lightweight Tracker:** Two small scripts (about 9KB combined), load asynchronously, minimal impact on performance

---

= 📈 Behavior Analytics — Full Feature List =

* **Session Tracking:** Total sessions, average time on page, bounce rate
* **Daily Sessions Chart:** Chart.js line chart with gradient fill and hover tooltips
* **Device Breakdown:** Animated donut chart — Desktop / Mobile / Tablet split
* **Top Pages Performance:** Sessions, avg time, bounce rate, and top device per page
* **Date Range Filter:** 7 / 30 / 90 day periods
* **Bounce Rate Alerts:** Color-coded — red (high), amber (medium), green (low)
* **Privacy-First:** No cookies, no third-party scripts, no Google Analytics dependency

---

= ♿ Accessibility Widget — Full Feature List =

**Text & Reading**

* **Font Size Control:** Adjust text from 80% to 150% with A−/A+ controls
* **Letter Spacing:** Range slider 0–5px for improved character readability
* **Line Height:** 3-level slider — Default / Comfortable / Spacious
* **Dyslexia-Friendly Font:** Switches the page to a dyslexia-friendly font stack (Lexend / OpenDyslexic if available, otherwise Comic Sans / Verdana) — no external font requests
* **Reading Line:** Teal horizontal line that follows the cursor to help track text
* **Reading Mask:** Dual overlay spotlight window for focused reading

**Color & Vision**

* **High Contrast Mode:** One-click high-contrast color scheme
* **Monochrome:** Full grayscale filter for color-sensitive users
* **Saturation:** 3-state selector — Low / Normal / High
* **Highlight Links:** Teal outline and underline on all anchor elements
* **Highlight Titles:** Teal left-border accent on all h1–h6 headings

**Motion & Navigation**

* **Stop Animations:** Disables all CSS animations, transitions, and smooth scroll
* **Big Cursor:** Enlarged cursor with 4 color variants (White / Black / Teal / Red)
* **Keyboard Navigation:** Highlight keyboard focus indicators sitewide
* **Screen Reader Optimize:** Optimize page structure for screen readers

**Accessibility Profiles**

* **Vision Impaired:** Font Size 130% + High Contrast + Black Big Cursor
* **ADHD Friendly:** Stop Animations + Reading Line + Reading Mask + Line Height
* **Seizure Safe:** Stop Animations + Low Saturation
* **Dyslexia:** Dyslexia Font + Letter Spacing 2px + Line Height + Font Size 110%
* **Keyboard Only:** Keyboard Navigation + Highlight Links

**Widget Customisation**

* **Brand Color:** 9 preset swatches + custom color picker + hex input
* **Widget Position:** Top Left / Top Right / Bottom Left / Bottom Right
* **Panel Width:** Compact (260px) / Normal (300px) / Wide (340px)
* **Panel Height:** Auto / Fixed 400px / Fixed 500px / Full Screen
* **Theme:** Dark / Light / System (follows OS preference)
* **Mobile Bottom Sheet:** Slides up from bottom on screens under 480px
* **Show on Mobile:** Show or hide widget on mobile devices
* **Floating Toolbar Toggle:** Enable or disable the widget entirely

---

= 📋 Accessibility Statement =

* **Statement Generator:** Auto-fills organisation name, last scan date, and top violations from your AccessIQ data
* **Live Preview:** See the formatted statement before publishing
* **One-click Publish:** Creates or updates a WordPress page automatically
* **`[accessiq_badge]` Shortcode:** Embed an accessibility badge (dark or light variant) anywhere on your site. It reads "Committed to WCAG 2.2 AA" by default (follows your scanner target; override with `version="2.1"`); add `claim="compliant"` only after you have verified conformance yourself
* **`[accessiq_statement]` Shortcode:** Show the saved statement on any page; use `link="1"` for a link only
* **Widget Footer Link:** Shows "Accessibility Statement" link in the widget when a statement page exists

---

= 🔧 Auto-Fix Engine =

* **Skip Link:** Adds a "Skip to content" link as the first focusable element
* **Focus Outline:** Injects a visible teal focus ring on all focusable elements
* **HTML Lang Attribute:** Auto-adds the lang attribute to the `<html>` tag
* **Image Alt Text:** Fills missing alt attributes from your Media Library alt text and sets alt="" on tracking pixels, spacers and presentational images (meaningful images without alt are left for you to describe)

---

= AccessIQ Pro =

The free plugin is fully featured for most sites. **AccessIQ Pro** adds agency-grade tools:

* **PDF Accessibility Reports** — Generate branded accessibility reports in PDF format. White-label with your logo, company name, and accent color.
* **AI Alt Text Generator** — Automatically generate descriptive alt text for images using AI. Bulk-apply to your media library. Supports OpenAI, Claude, Gemini, Groq, and more.
* **Scheduled Scan Email Delivery** — Automatically email PDF reports after each scheduled scan. Regression alerts when score drops.
* **Multi-Site Hub Dashboard** — Agency dashboard to monitor up to 10 connected client sites (Agency plan) in one view: score, issues, and last scan date per site.
* **White-label Widget** — Customize the accessibility widget with your agency's branding.
* **Priority Support** — Direct email support with fast response times.

[Upgrade to AccessIQ Pro →](https://accessiq.thereadscope.com/#pricing)

---

= Privacy & Data =

AccessIQ stores all data in your own WordPress database. No scan results, click events, or session data are sent to external servers.

The scanner loads your own pages and saves the results to your own database. Nothing is sent to third parties.

No external fonts, scripts or services are loaded. Tracking uses a random per-browser-session id kept in the visitor's sessionStorage (no cookies); no IP address is stored. A short-lived (one minute) hashed counter is used to throttle abusive request bursts.

---

== External Services ==

This plugin does not connect to any external service. Scan, click, and session data are stored in your WordPress database, and no third-party fonts, scripts or APIs are loaded. (Optional integrations such as the Remote Hub only contact sites that you configure yourself.)

== Installation ==

= Automatic Installation (Recommended) =

1. Go to **Plugins → Add New** in your WordPress admin
2. Search for **"AccessIQ"**
3. Click **Install Now**, then **Activate**
4. Go to **AccessIQ → WCAG Scanner** to run your first accessibility scan
5. Visit any page on your site — heatmap tracking starts automatically

= Manual Installation =

1. Download the plugin ZIP from WordPress.org
2. Go to **Plugins → Add New → Upload Plugin**
3. Upload the ZIP and click **Install Now**, then **Activate**
4. Navigate to **AccessIQ → Overview** in your admin

= Requirements =

* WordPress 6.0 or higher
* PHP 7.4 or higher
* MySQL 5.7 or higher
* JavaScript enabled in visitor browsers (required for heatmap tracking)

---

== Frequently Asked Questions ==

= Is AccessIQ completely free? =

Yes. Everything in this WordPress.org release is 100% free — unlimited automated scans, the full heatmap engine, behavior analytics, the frontend accessibility widget, Accessibility Profiles, and the Statement Generator. No scan credits, no paywalls, no expiry.

AccessIQ Pro is an optional paid upgrade for agencies that need PDF reports, AI alt text, multi-site monitoring, and advanced analytics.

= Will AccessIQ slow down my site? =

No. The tracking scripts are small (about 9KB combined) and load asynchronously after the page has rendered, so the impact on Core Web Vitals and PageSpeed is minimal. Tracking requests are throttled per visitor.

= Does AccessIQ send my data to external servers? =

No. All scan results, click coordinates, and session data are stored in your own WordPress database. The scanner loads your own pages and saves results to your site. No data is sent to third parties.

= Which WCAG standard does the scanner support? =

AccessIQ checks against WCAG 2.1 & 2.2 at Levels A, AA, and AAA. You can choose the target level when running each scan. WCAG 2.1 Level AA is widely referenced in accessibility rules and guidance (for example EN 301 549, used for the European Accessibility Act), but requirements differ by country, so check the rules that apply to you. Automated checks cover a subset of the success criteria, so manual testing is still needed to claim conformance.

= How is AccessIQ different from overlay accessibility widgets? =

Overlay widgets (like UserWay, AudioEye) add a toolbar to your site that lets visitors adjust display settings — but they do not fix underlying code violations. Automated overlays are widely rejected by the accessibility community and have been named in lawsuits.

AccessIQ's scanner finds actual violations in your HTML. Fixing those violations is the only real path to WCAG compliance.

= What are Accessibility Profiles? =

Profiles are one-click preset configurations that apply multiple accessibility settings at once. For example, the "ADHD Friendly" profile enables Stop Animations, Reading Mask, and Dyslexia Font in a single tap. Profiles appear at the top of the accessibility widget and can be toggled on or off individually. You can choose which profiles appear from the Settings page.

= Is AccessIQ GDPR compliant? =

The plugin collects click coordinates and page URLs for heatmaps, and session duration and device type for analytics. No IP addresses, usernames, email addresses, or personally identifiable information (PII) are stored. No cookies are used for tracking: a random session id lives in the visitor's sessionStorage and is discarded when the tab closes.

We recommend disclosing heatmap and analytics collection in your site's privacy policy.

= Can I use AccessIQ on client sites? =

Yes. You can install and use AccessIQ on any number of client sites. AccessIQ Pro adds a Multi-Site Hub Dashboard so you can monitor all client sites from one central location.

= How is AccessIQ different from other WordPress accessibility plugins? =

Most accessibility plugins either add a frontend widget (which doesn't fix real violations) or run a basic scan once. AccessIQ combines an automated WCAG 2.1 & 2.2 checker, click heatmaps, behavior analytics, Accessibility Profiles, an Auto-Fix Engine, and a Statement Generator — all self-hosted, all inside your WordPress admin, with no external subscriptions required.

= Does the scanner work with Elementor, Divi, or other page builders? =

Yes. The WCAG scanner analyzes the final rendered HTML of your page — regardless of which theme or page builder was used to create it.

= Can I track heatmaps across multiple pages? =

Yes. The heatmap tracker automatically collects click data on every page visitors browse. Select any tracked page from the dropdown in the Heatmap Engine to view its heatmap.

= Does the accessibility widget fix WCAG violations? =

The frontend widget helps visitors adjust display settings (font size, contrast, dyslexia font, and more). It improves the experience for visitors with certain needs but does not fix underlying WCAG code violations — that is what the scanner and Auto-Fix Engine are for. All tools complement each other.

= How do I export or share scan results? =

Use the Print Report button to print or save as PDF from your browser. AccessIQ Pro adds full PDF report generation with white-label branding.

= How do I check my WordPress site for WCAG issues for free? =

Install and activate AccessIQ, open **AccessIQ → WCAG Scanner**, choose the target level (A, AA or AAA) and run a scan on any page or post URL on your site. You get a 0–100 accessibility score and a list of issues ranked by severity, each with the element snippet and what to fix. Scans are unlimited and need no account. Automated checks cover a subset of WCAG, so keyboard and screen reader testing are still needed.

= Is there a free, self-hosted alternative to Hotjar or Microsoft Clarity for WordPress? =

AccessIQ includes click heatmaps and basic behavior analytics (sessions, bounce rate, average time on page and device split) that are stored in your own WordPress database, with no external service and no cookies used for tracking. It records click positions and session statistics, not screen recordings, so it is not a full replacement for session-replay tools.

= Do I need an account or an API key to use AccessIQ? =

No. The free plugin needs no account, no API key, no scan credits and no subscription. Scans, heatmaps and analytics all run on your own site.

= Does AccessIQ work with WooCommerce and other plugins? =

The scanner analyzes the final rendered HTML of any public page on your own site, whichever theme, page builder or plugin produced it, so shop and product pages can be scanned like any other public page. The heatmap and analytics tracker runs on front-end pages that visitors browse.

= How do I get support? =

Post your question in the [WordPress.org support forum](https://wordpress.org/support/plugin/accessiq/). We respond to all questions promptly.

---

== Screenshots ==

1. **Overview Dashboard** — Combined accessibility + analytics dashboard with animated score ring and tab navigation
2. **WCAG Scanner** — Scan any URL for WCAG 2.1 & 2.2 issues with an accessibility score and level selector
3. **Scan Reports** — History of all scans with scores, issue counts, and relative timestamps
4. **Single Report View** — Detailed report with score ring, violation breakdown, and severity labels
5. **Heatmap Engine** — Live click heatmap overlaid on your site with macOS-style browser chrome
6. **Top Clicked Elements** — Gold/Silver/Bronze ranked table with click count and % breakdown
7. **Behavior Analytics** — Daily sessions chart, device breakdown donut, and top pages table
8. **Accessibility Widget** — Redesigned floating toolbar with Profiles section, grouped accordion, and theme switcher
9. **Settings Page** — Widget configuration with Live Preview panel, feature grouping, and color picker
10. **Accessibility Statement** — Statement Generator with live preview and one-click publish

---

== Changelog ==

= 2.1.1 =
* Fix: PHP 8.1+ deprecation notice ("Implicit conversion from float to int") on the dashboard average-time figure

= 2.1.0 =
* Security: fixed a stored XSS (public tracking data rendered in the admin Heatmap, Reports and Journey screens)
* Security: the scheduled-scan endpoint is no longer public and scans use SSRF-safe requests limited to your own host; the Remote Hub trigger accepts only this site
* Security: public tracking endpoints are validated and throttled; CSV exports neutralise spreadsheet formulas
* Security: Remote API key is stored encrypted and guessing is rate-limited; the Regenerate key button (always failed before) now works
* Fix: scanner accuracy — alt="" no longer reported as missing, heading skips detected in document order, missing lang is Level A, element snippets are kept, one score formula for browser and server scans
* Fix: Accessibility Profiles — Vision and Dyslexia shrank page text to 1–3%; Seizure/ADHD/Keyboard profiles now apply real features; saved out-of-range settings are repaired
* Fix: Monochrome and Saturation no longer cancel each other; the Screen Reader option no longer blanks image alt text
* Fix: Statement "Publish as Page" never worked (payload mismatch) and now builds escaped, well-formed HTML
* Fix: scheduled scans can now be enabled from Settings > Scanner (daily / weekly / monthly)
* Fix: tracking keeps working on cached pages (signed token instead of an expiring nonce) and visitors are no longer merged into one session
* Fix: skip link is the first element on the page; Auto-Fix alt text uses your Media Library alt instead of blanking every image
* Fix: timezone mismatches in dashboard queries, PHP 8.1 deprecation notices, unbounded chart ranges, false "missing lang" on pages starting with a BOM
* New: choose the WCAG target (2.1 or 2.2) and level (A / AA / AAA) in Settings > Scanner or on the Scanner page; reports, badge and statement follow it, and checks above the chosen level or version are skipped
* New: `[accessiq_statement]` shortcode prints your saved accessibility statement anywhere; `[accessiq_statement link="1"]` prints only a link to it
* Change: the compliance badge reads "Committed to WCAG 2.2 AA" by default (follows your target); "Compliant" wording needs claim="compliant"
* Improvement: admin stylesheet loads only on AccessIQ screens; Google Fonts removed (no external requests); new database indexes; scan history older than 365 days is pruned (filter accessiq_scan_retention_days); upgrade notice dismissal is per user
* Database version 1.6 (existing sites upgrade automatically)

= 2.0.0 =
* Fix: Dashboard widgets now display correctly on mobile screens
* Fix: Analytics view responsive on tablets and mobile
* Fix: Heatmap click positions now accurate across all WordPress themes
* Improvement: Settings page refactored into partials for faster loading

= 1.10.0 =
* Fix: Scan results now save correctly (removed duplicate nonce check that blocked all saves)
* Fix: Scheduled scans now actually trigger — previously only set a flag that was never processed
* Fix: Data retention setting now enforced via daily cron — old clicks/sessions/page views are deleted automatically
* Fix: Bounce rate now accurate — session start confirmed before bounce correction fires
* Fix: Today's Visitors now resets correctly per browser session (switched from localStorage to sessionStorage)
* Fix: Scanner page shows recent URLs as autocomplete suggestions
* Fix: Delete scan now asks for confirmation before removing
* Fix: About page version number is now dynamic

= 1.9.0 =
* Fix: Today's Visits count now correct on non-UTC timezones
* Fix: All analytics queries use WordPress local time instead of UTC
* Fix: Daily Sessions chart showed one extra bar (off-by-one)
* Fix: Journey Tracker now uses a single batch query instead of N+1 queries
* Fix: Recent Clicks timestamps display correctly on all browsers

= 1.8.0 =

**Accessibility Profiles**

* Added 5 one-click preset profile buttons at the top of the accessibility widget — Vision Impaired, ADHD Friendly, Seizure Safe, Dyslexia, and Keyboard Only
* Each profile applies a curated combination of accessibility settings in one tap
* Active profile highlighted with glow effect, background tint, and per-profile indicator color
* Toggling an active profile restores previous state; switching profiles resets the previous one cleanly
* Profiles persist across page loads via localStorage and reset cleanly with the Reset All button
* Admin settings: enable/disable Profiles globally and choose which individual profiles appear in the widget
* Profile section skipped entirely if disabled — no markup rendered, no performance impact

**Accessibility Widget — Complete Redesign**

* Reorganised all 15 features into 3 grouped accordion sections: Text & Reading, Color & Vision, Motion & Navigation
* Each group has a distinct accent color (teal / purple / orange) and an Enable All / Disable All button
* Replaced all emoji icons with Lucide SVG icons — consistent stroke weight, professional appearance
* Added Dark / Light / System theme switcher using CSS variables and data-theme attribute — no JS rerender
* Added Panel Width setting: Compact (260px) / Normal (300px) / Wide (340px)
* Added Panel Height setting: Auto / Fixed 400px / Fixed 500px / Full Screen
* Added mobile bottom sheet — slides up from bottom on screens under 480px (CSS only, no JS)
* Widget footer shows Accessibility Statement link when a statement page is published

**Accessibility Statement Generator**

* One-click publish of a WCAG-compliant accessibility statement as a WordPress page
* Auto-fills organisation name, last scan date, and top violations from AccessIQ scan data
* Live preview panel shows formatted statement as you type
* Republishing updates the existing page rather than creating a duplicate
* Added `[accessiq_badge]` shortcode — embed a WCAG compliance badge (dark or light variant) anywhere

**Settings Page — Complete Redesign**

* Two-column layout: main settings on the left, sticky Live Preview panel on the right
* Live Preview updates in real time: FAB color, corner position, visibility toggle, panel width indicator, and mobile badge
* Accessibility Tools card redesigned with 3 feature groups, per-feature SVG icons, group-level Enable All / Disable All buttons, and active count badge
* Color picker upgraded: larger swatches (34x34px), checkmark on selected swatch, native color picker for custom colors, editable hex input field
* Profiles card added between Appearance and Accessibility Tools sections with per-profile enable/disable toggle
* Fixed widget_panel_width, widget_panel_height, and autofix_features not being included in the settings save POST request
* Fixed Live Preview position not updating when clicking position cards
* Fixed Panel Width selection incorrectly affecting position preview

= 1.7.0 =
* Added WCAG 2.2 support — 3 new checks: Focus Not Obscured (2.4.11), Dragging Movements (2.5.7), Target Size Minimum (2.5.8)
* Added Auto-Fix Engine — one-click frontend fixes: Skip Link, Focus Outline, HTML Lang Attribute, Decorative Image Alt
* Added Auto-Fix status dashboard showing active fixes and WCAG criteria covered
* Added Centralized Issues List — all violations across all pages in one filterable, paginated table
* Added Dismiss/Restore violations with optional reason note
* Added Accessibility Score column to Posts and Pages admin list

= 1.6.0 =
* Added Reading Line — fixed horizontal line that follows cursor Y position to help users track text
* Added Reading Mask — dual overlay with spotlight window that follows cursor for focused reading
* Added Stop Animations — disables all CSS animations, transitions, and smooth scroll sitewide
* Added Big Cursor — enlarged cursor with 4 color variants (White, Black, Teal, Red)
* Added Highlight Links — teal outline and underline on all anchor elements with hover tint
* Added Highlight Titles — teal left border accent on h1–h6 with subtle background tint
* Added Letter Spacing control — range slider 0–5px
* Added Line Height control — 3 levels (Default / Comfortable / Spacious)
* Added Monochrome mode — full grayscale filter for color-sensitive users
* Added Saturation control — 3-state selector (Low / Normal / High)
* Fixed range slider label showing incorrect "FONT SIZE" for non-font-size sliders

= 1.5.0 =
* Added Score History chart to WCAG Scanner page
* Added Element Ranking section to Heatmap page
* Redesigned frontend accessibility widget with dark theme, rounded-square FAB, notification badge, SVG icons
* Added active feature counter badge to widget FAB
* Added Save Settings button to widget panel
* Completed About page feature grid (12 cards, 4x3 layout)
* Fixed heatmap page content bleeding under WordPress admin sidebar

= 1.4.1 =
* Fixed WCAG Scanner violation cards not showing dark theme on live sites

= 1.4.0 =
* Redesigned Settings page with vertical sidebar navigation, color swatches, and toggle switches
* Redesigned Behavior Analytics page with KPI cards, privacy banner, and insights section
* Redesigned Heatmap page with macOS browser frame and top elements panel

= 1.3.0 =
* Redesigned Overview Dashboard with new dark theme
* Redesigned WCAG Scanner with bento grid layout
* Added Score History chart
* Improved dashboard widgets

= 1.2.0 =
* Security: added nonce verification and capability checks to report view
* Fixed NonEnqueuedStylesheet — replaced inline CSS with proper wp_enqueue_style()
* Removed sslverify: false from wp_remote_get() calls
* Added wp_unslash() to all superglobal access
* Replaced CSS @import Google Fonts with lazy JavaScript injection per WP.org guidelines

= 1.1.0 =
* Replaced all raw style/script HTML tags with proper wp_enqueue_style() and wp_enqueue_script() calls
* Fixed register_setting() to include proper sanitize_callback per field type
* Removed class-accessiq-pro.php — no locked features in the free version
* Removed scan limits — unlimited WCAG scans for all users

= 1.0.0 =
* Initial release
* WCAG 2.1 Scanner (Level A, AA, AAA) with 0–100 compliance score
* Click Heatmap Engine with live overlay and macOS-style browser chrome
* Behavior Analytics with Chart.js dashboards
* Frontend Accessibility Widget with 5 accessibility tools
* Dark theme admin dashboard throughout
* Self-hosted — all data in your WordPress database
* GDPR friendly — no PII collected, no external data transmission

---

== Upgrade Notice ==

= 2.1.1 =
Small fix: removes a PHP 8.1+ deprecation notice shown by the dashboard average-time figure. No database changes.

= 2.1.0 =
Security and accuracy release: fixes a stored XSS in the admin analytics screens, hardens the remote API and scanner requests, fixes Accessibility Profiles and Statement publishing. Adds WCAG 2.1/2.2 target setting. Database updates automatically.

= 1.8.0 =
Major update: Accessibility Profiles (5 one-click presets), complete widget redesign with grouped accordion and SVG icons, Dark/Light/System theme, panel width/height controls, Accessibility Statement Generator, `[accessiq_badge]` shortcode, Settings page Live Preview, and bug fixes for settings not saving. No database changes required.

= 1.7.0 =
Major update — WCAG 2.2 scanning, Auto-Fix Engine, and centralized issues dashboard. DB schema updated automatically on activation.

= 1.6.0 =
Major widget update — 10 new accessibility features including Reading Line, Reading Mask, Big Cursor, and full visual control suite.

= 1.5.0 =
Major update: Score History chart, Element Ranking on Heatmap, redesigned frontend widget, and completed About page.

= 1.4.1 =
Dark theme fix for WCAG Scanner violation cards.

= 1.2.0 =
Security hardening, proper stylesheet enqueueing, and Google Fonts lazy loading. Recommended for all users.

= 1.1.0 =
Unlimited WCAG scans and full removal of any locked features or license checks.

= 1.0.0 =
Welcome to AccessIQ! Run your first WCAG scan in under 2 minutes.

---

== Privacy Policy ==

AccessIQ stores the following data in your WordPress database only:

**Click Events (Heatmap):** X/Y coordinates, CSS element selector, page URL, timestamp, device type.

**Sessions (Behavior Analytics):** Page URL, session duration, device type, timestamp, bounce status.

**Scan Results:** Page URL, WCAG violations, compliance score, scan timestamp, WCAG level.

**What we do NOT collect:** IP addresses, usernames, email addresses, cookies, or any personally identifiable information (PII).

No data is sent to third-party servers, and no external fonts or scripts are loaded. You can delete all AccessIQ data by deactivating and deleting the plugin.

For heatmap and analytics tracking, we recommend adding a disclosure to your site's privacy policy informing visitors that anonymous click and session data is collected for site improvement.

== Development Source ==

Unminified source code available at: https://gitlab.com/thereadscope/accessiq