=== 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: 6.9 Requires PHP: 7.4 Stable tag: 1.8.0 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Free WCAG 2.1 & 2.2 accessibility scanner + 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 — a full **WCAG 2.1 & 2.2 accessibility scanner**, a **self-hosted click heatmap engine**, and **behavior analytics** — all inside a single dark-themed dashboard, with no data ever leaving your server. 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 compliance is increasingly required 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. Get a 0–100 compliance score, severity-ranked violations with element selectors, full scan history, and one-click rescans. Supports Level A, AA, and AAA. **🔥 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 compliance progress at a glance. **📋 Accessibility Statement Generator** One-click publish of a WCAG-compliant accessibility statement page. 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 Decorative Image Alt — with no code required. --- = Who Uses AccessIQ = **Developers & Agencies** — Audit client sites before launch. Deliver professional WCAG compliance reports that build trust and justify ongoing maintenance retainers. **Business Owners** — ADA and EAA lawsuits are rising fast. AccessIQ keeps you compliant and documents your remediation efforts — which matters in court. **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** — Google uses accessibility signals as ranking factors. Accessible, well-structured content with proper headings and alt text ranks better. AccessIQ catches both. --- = 🔬 WCAG Scanner — Full Feature List = * **Compliance 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 compliance 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 compliance progress over time * **One-click Rescan:** Re-run any scan instantly from the reports page * **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:** Under 3KB, loads asynchronously, zero impact on Core Web Vitals --- = 📈 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:** Apply Lexend for easier reading * **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 + Highlight Links * **ADHD Friendly:** Stop Animations + Reading Mask + Dyslexia Font * **Seizure Safe:** Stop Animations + Monochrome + Low Saturation * **Dyslexia:** Dyslexia Font + Letter Spacing 2px + Line Height Spacious * **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 a WCAG compliance badge (dark or light variant) anywhere on your site * **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 `` tag * **Decorative Image Alt:** Sets empty alt="" on images with no alt attribute --- = AccessIQ Pro = The free plugin is fully featured for most sites. **AccessIQ Pro** adds agency-grade tools: * **PDF Compliance Reports** — Generate branded WCAG compliance 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 25+ client sites in one view. Compliance score, violations, 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 WCAG scanner runs client-side in your browser — it loads your page locally and sends results via AJAX to your own database. Nothing leaves your server. The plugin loads fonts from Google Fonts (DM Sans, DM Mono for admin; Lexend for the frontend widget). See the External Services section for details. --- == External Services == This plugin does not send scan, click, or session data to external servers. All data is stored in your WordPress database. = Google Fonts = AccessIQ loads typefaces from **Google Fonts** (fonts.googleapis.com): 1. **Admin screens** — DM Sans and DM Mono load on AccessIQ admin pages. 2. **Frontend widget** — Lexend loads on public pages when the accessibility toolbar is enabled. When fonts are requested, the visitor's browser sends a standard HTTP request to Google servers, which may include the visitor's IP address, browser user-agent, and referring page URL. * Provider: Google LLC * Terms: https://policies.google.com/terms * Privacy: https://policies.google.com/privacy == 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 WCAG 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 heatmap tracking script is under 3KB and loads asynchronously after the page has fully rendered. It has zero impact on your Core Web Vitals or PageSpeed score. = 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 fetches your own pages locally and saves results via AJAX to your site. No data leaves your server. = 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 compliance level when running each scan. WCAG 2.1 is the standard referenced by ADA, EAA (EU), and AODA (Canada) compliance requirements. = 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. 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 a full WCAG 2.1 & 2.2 scanner, 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 compliance report generation with white-label branding. = 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 violations with compliance 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 == = 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 == = 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. The WordPress admin loads fonts from Google Fonts (see External Services). 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