{"id":297805,"date":"2026-06-16T08:43:11","date_gmt":"2026-06-16T08:43:11","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/aura-frontend-inspector\/"},"modified":"2026-06-16T12:43:48","modified_gmt":"2026-06-16T12:43:48","slug":"aura-frontend-inspector","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/aura-frontend-inspector\/","author":14394976,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.5.9","stable_tag":"trunk","tested":"7.0","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"Aura Frontend Inspector","header_author":"Pedro Matias","header_description":"Universal tool to detect and fix HTML and accessibility issues on WordPress sites. Detects duplicate IDs, missing labels, and other common issues.","assets_banners_color":"8b93ba","last_updated":"2026-06-16 12:43:48","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/pedromatias.dev","rating":0,"author_block_rating":0,"active_installs":0,"downloads":48,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.5.7":{"tag":"2.5.7","author":"FroPT","date":"2026-06-12 08:57:26"},"2.5.8":{"tag":"2.5.8","author":"FroPT","date":"2026-06-16 10:48:33"},"2.5.9":{"tag":"2.5.9","author":"FroPT","date":"2026-06-16 12:43:48"}},"upgrade_notice":{"2.5.9":"<p>Fixes incorrect\/negative &quot;time ago&quot; values in the Logs table caused by a timezone double-conversion.<\/p>","2.5.8":"<p>Important fix: &quot;Scan Now&quot; could silently do nothing under certain environment settings. Now always runs when triggered by an admin, and confirms when a scan finds zero issues.<\/p>","2.5.7":"<p>Compliance and scanner patch: eliminates WP admin bar \/ Query Monitor false positives, switches to wp_json_encode(), and addresses all Plugin Check warnings.<\/p>","2.5.6":"<p>WP.org compliance patch: sanitization fixes and HTML capture feature removed from free build.<\/p>","2.5.5":"<p>Compliance patch: wp_die() strings wrapped with esc_html__() in AJAX handlers.<\/p>","2.5.1":"<p>Compliance patch: remaining inline scripts extracted to enqueued files; nonce inputs sanitized before verification in Captures page.<\/p>","2.5.0":"<p>Admin UI restructured: Logs and Settings are now separate tabs for a cleaner workflow.<\/p>","2.4.8":"<p>Security patch completing nonce sanitization and JSON decode hardening across all admin handlers.<\/p>","2.4.7":"<p>Security and WordPress.org compliance release. Fixes nonce sanitization, removes CDN dependencies, and extracts all inline scripts to properly enqueued files.<\/p>","2.4.0":"<p>Highly recommended: Introduces the AI-Native ARF 1.0 reporting and &quot;Copy AI Prompt&quot; feature for faster debugging.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3574373,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3574373,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3574373,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3574373,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.5.7","2.5.8","2.5.9"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"<strong>Dashboard Overview<\/strong>: A central view of all detected issues, statistics, and plugin settings.","2":"<strong>Issue Log<\/strong>: Filterable log entries with \"Copy AI Prompt\" and \"View Code\" shortcuts.","3":"<strong>AI Integration<\/strong>: Example of how the ARF 1.0 prompt looks when pasted into an AI assistant.","4":"<strong>HTML Capture<\/strong>: The interface for managing and viewing rendered HTML snapshots.","5":"<strong>Admin Bar<\/strong>: The unobtrusive status indicator in the WordPress admin bar."}},"plugin_section":[],"plugin_tags":[1447,1953,8533,246,34796],"plugin_category":[34],"plugin_contributors":[266807],"plugin_business_model":[],"class_list":["post-297805","plugin","type-plugin","status-publish","hentry","plugin_tags-a11y","plugin_tags-accessibility","plugin_tags-audit","plugin_tags-html","plugin_tags-inspector","plugin_category-accessibility","plugin_contributors-fropt","plugin_committers-fropt"],"banners":{"banner":"https:\/\/ps.w.org\/aura-frontend-inspector\/assets\/banner-772x250.png?rev=3574373","banner_2x":"https:\/\/ps.w.org\/aura-frontend-inspector\/assets\/banner-1544x500.png?rev=3574373","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/aura-frontend-inspector\/assets\/icon-128x128.png?rev=3574373","icon_2x":"https:\/\/ps.w.org\/aura-frontend-inspector\/assets\/icon-256x256.png?rev=3574373","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>Aura Frontend Inspector<\/strong> is a professional-grade debugging tool designed for WordPress developers and agencies who need to ensure their sites are compliant, accessible, and error-free.<\/p>\n\n<p>Unlike traditional auditors, Aura is built for the AI era. It features the <strong>ARF 1.0 (Aura Report Format)<\/strong>, a structured data standard that allows you to copy detected issues directly into AI tools like ChatGPT or Claude to receive instant, context-aware code fixes.<\/p>\n\n<h3>Built for AI-Assisted Debugging<\/h3>\n\n<p>Every issue detected by Aura includes a <strong>\"Copy AI Prompt\"<\/strong> button. This assembles a high-signal prompt containing the exact HTML snippet, site environment, and error metadata in the ARF 1.0 format. Simply paste it into your favorite LLM for a precise solution tailored to your WordPress site.<\/p>\n\n<h3>Professional Accessibility (A11y) Auditing<\/h3>\n\n<p>Ensure your site meets WCAG 2.1 standards with real-time detection of:\n*   <strong>Duplicate IDs<\/strong>: Finds elements sharing IDs that break screen readers and ARIA landmarks.\n*   <strong>Missing Labels<\/strong>: Identifies form inputs without accessible names.\n*   <strong>ARIA Integrity<\/strong>: Detects broken <code>aria-labelledby<\/code>, <code>aria-describedby<\/code>, and hidden focusable elements.\n*   <strong>Semantic Structure<\/strong>: Validates heading levels (H1-H6), main landmarks, and page titles.\n*   <strong>Interactive Elements<\/strong>: Flags non-interactive elements with click handlers and buttons without types.<\/p>\n\n<h3>Developer-First Features<\/h3>\n\n<ul>\n<li><strong>Persistent Logging<\/strong>: Issues are stored in a dedicated database table with rate-limiting and deduplication.<\/li>\n<li><strong>HTML Snapshots<\/strong>: Capture the full rendered DOM of any page for offline audit or historical reference.<\/li>\n<li><strong>Environment Aware<\/strong>: Configure Aura to run only in <code>Development<\/code> or <code>Staging<\/code> modes to protect production performance.<\/li>\n<li><strong>Auto-Fix Engine<\/strong>: Optionally allow Aura to automatically resolve common issues like duplicate IDs on the fly.<\/li>\n<li><strong>Export Options<\/strong>: Download professional CSV logs or ARF 1.0 JSON reports for your client audits.<\/li>\n<\/ul>\n\n<h3>Part of the Aura Plugin Series<\/h3>\n\n<p>Aura Frontend Inspector is part of the <strong>Aura Plugin Series<\/strong>, a suite of AI-native tools including <strong>Aura Static Security Analyzer<\/strong> and <strong>Aura Login<\/strong>. Together, they provide a unified \"Security &amp; Compliance\" ecosystem for WordPress professionals.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>aura-frontend-inspector<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install directly through the WordPress plugins screen.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress.<\/li>\n<li>Navigate to the <strong>Aura FI<\/strong> menu in your admin sidebar.<\/li>\n<li>Enable the debugger and visit any page on your frontend to start detecting issues.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20affect%20my%20site%27s%20speed%3F\"><h3>Does this plugin affect my site's speed?<\/h3><\/dt>\n<dd><p>Aura is highly optimized. The detection engine runs in the client's browser, and the logging system uses a dedicated database table with rate-limiting to ensure zero impact on your server's core performance.<\/p><\/dd>\n<dt id=\"what%20is%20arf%201.0%3F\"><h3>What is ARF 1.0?<\/h3><\/dt>\n<dd><p>ARF (Aura Report Format) is a standardized JSON schema created by the Aura team. It is designed to be \"AI-Readable,\" allowing developers to pass complex technical issues to LLMs without manual formatting.<\/p><\/dd>\n<dt id=\"can%20i%20use%20this%20for%20ada%2Fwcag%20compliance%3F\"><h3>Can I use this for ADA\/WCAG compliance?<\/h3><\/dt>\n<dd><p>Yes. Aura is an excellent tool for identifying Level A and AA violations. Use the ARF export to generate audit reports for your clients or legal compliance teams.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20page%20builders%3F\"><h3>Does it work with Page Builders?<\/h3><\/dt>\n<dd><p>Absolutely. Aura inspects the <em>rendered<\/em> HTML, meaning it works perfectly with Elementor, Divi, Beaver Builder, and the Block Editor (Gutenberg).<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.5.9<\/h4>\n\n<ul>\n<li>FIX: Logs table timestamps were off by exactly the site's UTC offset (e.g. \"-3600 seconds ago\" on a UTC+1 site) \u2014 aura_fi_format_timestamp() was double-applying the timezone offset on an already-local timestamp.<\/li>\n<\/ul>\n\n<h4>2.5.8<\/h4>\n\n<ul>\n<li>FIX: \"Scan Now\" did nothing when the passive-monitoring toggle\/environment heuristic considered debugging inactive \u2014 the scan engine module is now always loaded, and an explicit admin-triggered scan always runs regardless of that heuristic.<\/li>\n<li>FIX: Default landing page changed from Logs to Settings, so the enable toggle is visible immediately instead of being buried in a second tab.<\/li>\n<li>NEW: A \"Scan Now\" that finds zero issues now logs a \"Scan Complete \u2014 No issues found\" entry instead of silently doing nothing, so a clean scan is no longer indistinguishable from a broken one.<\/li>\n<\/ul>\n\n<h4>2.5.7<\/h4>\n\n<ul>\n<li>FIX: Scanner no longer reports false positives for elements inside the WP admin bar (#wpadminbar) or Query Monitor panels (#qm, [id^=\"qm-\"]).<\/li>\n<li>COMPLIANCE: Replaced json_encode() with wp_json_encode() for inline script output.<\/li>\n<li>COMPLIANCE: ABSPATH guard in RuleRegistry moved before use statements to satisfy Plugin Check.<\/li>\n<li>COMPLIANCE: $_GET['nonce'] and $_POST['nonce'] in get_logs() now individually unslashed; correct NonceVerification phpcs:ignore codes added.<\/li>\n<li>COMPLIANCE: $_GET['limit'] in export_logs_json() now unslashed before intval().<\/li>\n<li>COMPLIANCE: Migration INSERT IGNORE query phpcs:ignore extended to cover DirectQuery and NoCaching sniffs.<\/li>\n<li>CHANGE: Tested up to WordPress 7.0.<\/li>\n<li>UI: False Positive column header widened to prevent text wrapping in Logs table.<\/li>\n<li>UI: \"View Code\" column renamed to \"Line\" and now displays the detected source line number.<\/li>\n<\/ul>\n\n<h4>2.5.6<\/h4>\n\n<ul>\n<li>COMPLIANCE: register_setting() updated to array form with explicit type and sanitize_callback.<\/li>\n<li>COMPLIANCE: exclude_wp_core_elements option now correctly sanitized in sanitizeOptions() \u2014 was silently dropped on save.<\/li>\n<li>COMPLIANCE: HTML capture feature removed from free build; unsanitized full-page HTML cannot be adequately sanitized with WordPress built-ins without breaking the feature.<\/li>\n<li>SECURITY: json_last_error() validation added after JSON decode in LogHandler and ValidationHandler.<\/li>\n<\/ul>\n\n<h4>2.5.5<\/h4>\n\n<ul>\n<li>COMPLIANCE: wp_die() calls in LogHandler now wrapped with esc_html__() for proper escaping and i18n compatibility.<\/li>\n<\/ul>\n\n<h4>2.5.4<\/h4>\n\n<ul>\n<li>CHANGE: AJAX handler modularised \u2014 Handler.php split into AbstractHandler, CaptureHandler, ValidationHandler, and LogHandler.<\/li>\n<li>UI: Removed non-functional light\/dark theme toggle from Captures page; stripped all emoji characters from Captures admin page.<\/li>\n<li>BUILD: openspec\/ directory excluded from distribution zip.<\/li>\n<\/ul>\n\n<h4>2.5.3<\/h4>\n\n<ul>\n<li>FIX: validate_html() fatal HTTP 500 \u2014 Aura_FI_HTML_Validator class reference prefixed with \\ to resolve from global namespace.<\/li>\n<\/ul>\n\n<h4>2.5.2<\/h4>\n\n<ul>\n<li>SECURITY: Rate-limit directory now uses wp_upload_dir() for compatibility with custom upload paths.<\/li>\n<li>SECURITY: HTML captures directory protected with deny-from-all .htaccess on creation.<\/li>\n<li>SECURITY: capture_html() rejects payloads exceeding 5 MB.<\/li>\n<li>FIX: JSON validation_options boolean flags and max_issues explicitly cast after array_merge().<\/li>\n<\/ul>\n\n<h4>2.5.1<\/h4>\n\n<ul>\n<li>COMPLIANCE: Removed remaining inline  blocks from Captures and LogsTable pages; JS now served via properly enqueued files.<\/li>\n<li>COMPLIANCE: Added sanitize_text_field(wp_unslash()) before wp_verify_nonce() for all three nonce checks in Captures page (delete_file, delete_all, force_update_config).<\/li>\n<li>COMPLIANCE: Assets class extended to register and enqueue split admin JS files (admin-dashboard, admin-settings, admin-logs-table, admin-captures).<\/li>\n<\/ul>\n\n<h4>2.5.0<\/h4>\n\n<ul>\n<li>UI: Separated Settings &amp; Logs into two distinct pages.<\/li>\n<li>UI: New tab order \u2014 Logs, HTML Captures, Settings, About.<\/li>\n<li>UI: Dashboard statistics cards and log table now live exclusively in the Logs tab.<\/li>\n<li>UI: Settings tab contains only plugin configuration options.<\/li>\n<li>UI: Added (i) info icon to every setting with contextual tooltips; Debug Mode tooltip explains when to choose each environment.<\/li>\n<li>UI: Debug Mode header now shows the active mode name (Development \/ Staging \/ Production) instead of the word \"SELECT\".<\/li>\n<li>UI: Debug Mode label updates live when the user changes the select, before saving.<\/li>\n<li>UI: Maximum Log Entries and Maximum HTML Captures now show the current value in the header; value updates live as you type.<\/li>\n<li>UI: URLs to Exclude shows an \"Edit \u203a\" hint in the header that highlights on hover.<\/li>\n<li>CHANGE: Detect Duplicate IDs and Detect Missing Labels are now always enabled and no longer appear as user-configurable toggles.<\/li>\n<li>SECURITY: Added capability check (aura_fi_current_user_can_access) to log_issue, capture_html, and validate_html AJAX handlers; previously these relied solely on nonce verification.<\/li>\n<\/ul>\n\n<h4>2.4.8<\/h4>\n\n<ul>\n<li>SECURITY: Added sanitize_text_field() before wp_verify_nonce() in Captures.php (3 remaining call sites).<\/li>\n<li>SECURITY: json_decode() on $_POST['issues'] now uses explicit unslash-then-decode pattern with is_array() guard.<\/li>\n<li>COMPLIANCE: Contributors field in readme.txt corrected to match WordPress.org account username.<\/li>\n<\/ul>\n\n<h4>2.4.7<\/h4>\n\n<ul>\n<li>SECURITY: All nonce verifications now use sanitize_text_field() before wp_verify_nonce() (7 call sites).<\/li>\n<li>SECURITY: json_decode() result on validation_options now validated as array before use.<\/li>\n<li>COMPLIANCE: Removed all inline  blocks from admin pages; JS extracted to separate enqueued files.<\/li>\n<li>COMPLIANCE: Chart.js bundled locally (assets\/vendor\/chartjs\/); CDN dependency removed.<\/li>\n<li>COMPLIANCE: Rate-limit transient keys prefixed with aurafrin_ instead of generic ajax_.<\/li>\n<li>COMPLIANCE: Debug-active admin notice now scoped to plugin pages only.<\/li>\n<li>COMPLIANCE: Removed Plugin URI pointing to a 404 page.<\/li>\n<\/ul>\n\n<h4>2.4.0<\/h4>\n\n<ul>\n<li>NEW: Full support for ARF 1.0 (Aura Report Format).<\/li>\n<li>NEW: \"Copy AI Prompt\" button for instant AI-assisted fixes.<\/li>\n<li>IMPROVED: Enhanced heuristics for mapping DOM elements to source line numbers.<\/li>\n<li>FIX: Performance optimizations for sites with large DOM trees.<\/li>\n<\/ul>\n\n<h4>2.1.0<\/h4>\n\n<ul>\n<li>PSR-4 Migration: Core architecture refactored for better performance and extensibility.<\/li>\n<li>New modular rule engine: Easily toggle specific detection rules.<\/li>\n<li>Added support for ARIA attribute validation and interactive element checks.<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Major Rebrand: Plugin renamed to Aura Frontend Inspector.<\/li>\n<li>New top-level admin menu and unified UI.<\/li>\n<li>Added persistence layer: Issues are now stored in a custom DB table.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release with basic HTML and duplicate ID detection.<\/li>\n<\/ul>","raw_excerpt":"The AI-Native accessibility and HTML debugger for WordPress. Detect issues, export ARF 1.0 reports, and get AI-assisted fixes in seconds.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/297805","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=297805"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/fropt"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=297805"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=297805"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=297805"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=297805"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=297805"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=297805"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}