AccessIQ
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 | 📖 Documentation | 💬 Support Forum 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 → 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): Admin screens — DM Sans and DM Mono load on AccessIQ admin pages. 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 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
Top keywords
- accessibility18×1.05%
- page18×1.05%
- accessiq17×0.99%
- data15×0.87%
- scan15×0.87%
- wcag13×0.76%
- click12×0.70%
- compliance12×0.70%
- score12×0.70%
- widget12×0.70%
- google11×0.64%
- chart9×0.52%
Auto Alt Text
This plugin implements the automatic creation of alt text for images uploaded to the media library. The alt text is generated at the time of uploading the image and it is also possible to generate the alt text for images already present in the media library. To generate the alt text, you can choose to use the artificial intelligence of OpenAI, Anthropic Claude, Google Gemini or Azure, or decide if you simply want to copy the title of the article where the image is uploaded or the name of the image. Clearly, using artificial intelligence will allow for a more accurate and useful alt texts. Features This plugin allows you to generate alt texts in the following ways: – using Openai APIs (the most recently released models and any other compatible model available on your account) – using Anthropic Claude API – using Google Gemini API – using Azure APIs for computational vision; – recovering the title of the image – recovering the title of the article in which the image is uploaded It can also fill in, on the fly, the missing alt texts of the images already published in your content, using the alt text stored in the media library. Getting Started After installing the plugin, click on the ‘Auto Alt Text’ menu item. Choice of Generation Method Select the Generation Method you prefer OpenAI’s APIs In your OpenAI account, retrieve the following data to enter on the options page: – API Key Once the API Key is saved, the list of the models available on your account is retrieved directly from OpenAI, so you can always choose among the up-to-date models. If the model you selected is retired by OpenAI, a notice is displayed in the administration area and the least expensive available model is used as a fallback until you choose a new one. Choose the model you want to use for generating the alt text. Enter a prompt for generating the alt text according to your needs. Claude Anthropic’s APIs In your Anthropic account, retrieve the following data to enter on the options page: – API Key Choose the model you want to use for generating the alt text. Enter a prompt for generating the alt text according to your needs. Google Gemini’s APIs In your Google AI Studio account, retrieve the following data to enter on the options page: – API Key Once the API Key is saved, the list of the models available on your account is retrieved directly from Google, so you can always choose among the up-to-date models. If the model you selected is retired by Google, a notice is displayed in the administration area and the least expensive available model is used as a fallback until you choose a new one. Choose the model you want to use for generating the alt text. Enter a prompt for generating the alt text according to your needs. Azure’s APIs On your Azure account, create a Computer Vision instance and retrieve the following data to enter on the options page: – Computer Vision API Key – Computer Vision Endpoint If you want to generate an alt text in English, save the options without filling in any other fields. If you want to generate an alt text in a different language, on your Azure account, create a Translator instance and retrieve the following data to enter on the options page: – Translator Instance API Key – Translator Instance Endpoint – Translator Instance Region After entering this data, save the options. Select the desired language and save the options again. Title of the article For this generation method, there are no options to set as the alt text will be generated by copying the title of the article in which the image is uploaded. In case the article is not uploaded as an attachment of an article, the “Title of the attachment” method will be used as a fallback. Title of the attachment For this generation method, there are no options to set as the alt text will be generated by copying the title of the image. Functioning Once the plugin is configured, each time an image is uploaded to the media library, an alt text will be automatically set based on the selected generation method. For images already in the media library, you can create bulk alt texts. Open the Media Library in the “list” view, select the images for which to generate the alt text, and choose the “Generate alt text” bulk action. (Depending on the number of images chosen and their weight, this may take some time.) You can also generate the alt text of a single image directly from the media library. Open the Media Library in “grid” mode, choose the image for which to generate the alt text, and click the “Generate alt text” button. In no time the alt text field will be overwritten by the generated description. Automatic alt text rendering in content Images that were inserted in your posts and pages before the alt text was generated keep the empty alt attribute saved in the content, even after the media library has been filled. By enabling the “Automatically render alt text in content” option, when a page is displayed the plugin looks at every image of the content and, for those without an alt text, it writes the alt text stored in the media library (when available). Images that already have an alt text are never touched, and your saved content is not modified in any way: the alt text is only added to the rendered HTML. The option is disabled by default and it is independent of the chosen generation method. Developers can also control this behaviour with two filters: aatxt_content_alt_text_enabled to skip the processing for a specific request, and aatxt_content_image_alt_text to filter the alt text before it is written into the image tag. WP-CLI If you prefer generating alt text in batch (e.g., to avoid processing in the Media Library UI), you can use WP-CLI. This is the recommended way to work on a large media library: the bulk action of the Media Library runs inside a single web request, so depending on your server settings (PHP max_execution_time, PHP-FPM request_terminate_timeout, web server or proxy timeouts) it can be interrupted before all the selected images have been processed. WP-CLI is not affected by those limits, shows a progress bar and can be resumed with --offset. Generate alt text for a list of attachment IDs: wp auto-alt-text generate --ids=123,456,789 Process all image attachments in batches: wp auto-alt-text generate --all --limit=200 --offset=0 wp auto-alt-text generate --all --limit=200 --offset=200 Dry run (no metadata updates): wp auto-alt-text generate --ids=123,456 --dry-run Force overwrite of existing alt text (even if “Keep existing alt text” is enabled): wp auto-alt-text generate --all --limit=200 --offset=0 --force Notice: If you choose one of the methods that involves the use of external APIs, the upload times for images in the media library might increase because it requires sending a request to the APIs, waiting for the external server to process, and waiting for a response. Logging If the generation of the alt text via AI is set, in case of errors, to avoid blocking the editorial work, the image is loaded anyway but without the alt text being compiled. When a call to the OpenAI, Anthropic, Gemini or Azure API fails, a record containing the error message is saved in a custom database table. In this case, the cause of the error can be seen on the Auto Alt Text -> Error log page. External Services This plugin uses the following external services alternatively: OpenAI Selecting the generation method “OpenAI’s APIs” will use the API services of OpenAI. This plugin does not collect any information from your OpenAI account. The data transmitted to OpenAI mainly consists of the image files uploaded to your website and the specified prompt. For accurate information on privacy and conditions of use, please consult the privacy policy and terms and conditions directly on the official website. It is also advisable to check the costs and usage statistics of the API service on the OpenAI website. Anthropic Claude Selecting the generation method “Anthropic’s APIs” will use the API services of Anthropic. This plugin does not collect any information from your Anthropic Claude account. The data transmitted to Anthropic Claude mainly consists of the image files uploaded to your website and the specified prompt. For accurate information on privacy and conditions of use, please consult the privacy policy, terms and conditions for consumers and terms and conditions for commercial directly on the official website. It is also advisable to check the costs and usage statistics of the API service on the Anthropic website. Google Gemini Selecting the generation method “Google Gemini’s APIs” will use the API services of Google Gemini. This plugin does not collect any information from your Google account. The data transmitted to Google mainly consists of the image files uploaded to your website and the specified prompt. For accurate information on privacy and conditions of use, please consult the privacy policy and terms of service directly on the official website. It is also advisable to check the costs and usage statistics of the API service on the Google AI website. Azure Selecting the “Azure’s APIs” generation method will use the API services of Microsoft Azure. This plugin does not collect any information from your Azure account. The data transmitted to Azure consists mainly of image files uploaded to your website. For accurate information on privacy and conditions of use, please directly consult the privacy policy and terms and conditions on the official website. It is also advisable to check the costs and usage statistics of the API service on the Microsoft Azure’s website. Encryption Constants We strongly recommend defining the new plugin-specific constants in your wp-config.php: define( 'AATXT_ENCRYPTION_KEY', 'a_random_string_of_at_least_64_characters' ); define( 'AATXT_ENCRYPTION_SALT', 'another_random_string_of_at_least_64_characters' ); You will find these two define(…) lines already generated for you on the Auto Alt Text » Options page – simply copy & paste them before the /* That's all, stop editing! Happy publishing. */ line in your wp-config.php. If you choose not to add them, the plugin will continue to work normally, but it will fall back to using your WordPress LOGGED_IN_KEY / LOGGED_IN_SALT, which may break if those salts are ever changed. Disclaimer Auto Alt Text is a plugin that helps users automatically generate Alt Texts of their images using AI services such as OpenAI’s ChatGPT or Microsoft Azure. Users need their own API key and must follow the rules set by the AI service they choose. By using Auto Alt Text, users agree to watch and manage AI-made content and address any issues or misuse. AI Engine developer and related parties are not responsible for any problems or losses caused by the use of the plugin or AI-generated content. Credits A big thank you to everyone who has improved this plugin with a pull request: joshuafredrickson – native WP-CLI support for batch alt text generation, and the Media Library bulk action redirect fix that preserves pagination and filters The full list is available on the contributors page. Contributions are welcome: feel free to open an issue or a pull request on GitHub.