=== AcceGuru Changelog === = 1.0.2 = * Scanner: keep scan-result saves on the current site address when multilingual plugins alter page URLs. * Scanner: show completed-page progress clearly and keep selected content-type totals accurate after retry. * Dashboard: keep Media Library alt-text totals stable across WPML languages and third-party query filters. * AI Alt Text: describe automatically skipped files as likely decorative and show the skipped count before and after generation. * A11y column: match dashboard counts after ignored rules and add-on filters, and ignore malformed saved rows. * Accessibility statement: preserve the tracked page when settings are saved and avoid duplicate statement pages. * Scan log: decode HTML entities in page labels once, then sanitize them before display and download. * Overlay: protect issue-row alignment from global theme button styles. * Settings: keep WordPress admin notices above the plugin settings interface. * Fixers: handle malformed stored settings without warnings on public pages. * Extensions: provide archive context and a neutral hook for compatible add-ons. = 1.0.1 = * Scanner: update the bundled axe-core accessibility engine from 4.10.2 to 4.12.1. * Scanner: apply the selected WCAG level and recommended-checks toggle to both axe-core and AcceGuru checks. * Scanner: correct custom-rule classifications and remove or suppress duplicate axe-core findings. * Scanner: calculate Passed Checks from axe-core passes and violations only. * Scanner: accept scan-completion messages only from the active hidden iframe. * Performance: process scan records, scan targets and AI alt-text candidates in bounded database batches. * Overlay: add dialog semantics, keyboard navigation, Escape/focus management, visible focus, and reliable highlight/listener cleanup. * Uninstall: replace the tracked statement shortcode with static content, or move the page to the Trash when full data removal is enabled. * Scanner: mark saved results for a new scan when the scan profile or ruleset changes; prevent pause/resume and retry from mixing profiles. * AI Alt Text: add OpenAI and Anthropic providers alongside Gemini and Mistral. * Scanner: "Retry failed pages" button picks up pages that timed out in the previous run. * Scanner: cap site-scan log size on huge sites; persist counters server-side so they survive reload. * Scanner: warn via tab title + banner + beforeunload guard when the scan tab loses focus or you try to navigate away. * Dashboard: card colour swap (Issues / Critical), Top Offending Pages bumped to 15 with View-all Pages / Posts / Media links, per-segment distribution-bar tips. * Dashboard: scan-coverage line ("X of Y content types") listing which content types are scanned and which are left out. * Fixers: add "empty alt" review rule, stop hiding low-count issues, fix featured-image skip in Alt generator. * Scanner: site-scan runs one page at a time; removed an unused, never-wired concurrency filter. * Block Editor: fix the "View post on front-end" link in the sidebar. * Settings: Scanner tab regrouped into two clear sections; the full-site scan can include any public post type registered on the site. * Various dashboard polish: Cancel button restyle, status filter on one line, reset button alignment. = 1.0.0 = First public release. Highlights of everything shipped in 1.0.0: **Visual + UX** * Full visual redesign across the Dashboard, Settings, Block Editor sidebar, front-end overlay and admin-bar UI. * Brand-styled admin bar button and sidebar menu item with new icon. * Front-end floating launcher button for one-click overlay open. **Scanner** * Initial scanner implementation with axe-core integration and Block Editor sidebar. * Site-wide scan, dashboard, A11y admin column. * Site-scan pause / resume. * Adaptive "time left" estimate on the running scan; scan duration + readable local date shown after each run. * Front-end overlay always runs a fresh scan; no more stale "Showing saved scan" banner. * Dashboard cards count every scanned page (not just top 10) - fixes silent under-count on sites with more than 10 scanned pages. * "Show affected code" expandable per issue. * Six AC-style custom rules (text-too-small, link-opens-new-window-no-warning, possible-heading, text-justified, positive-tabindex, empty-button). * WCAG 2.2 / Section 508 / EN 301 549 standards coverage. * Standards displayed as readable colour-coded chips with hover tooltip showing the criterion name (e.g. "WCAG 2.0 A ยท 4.1.2 - Name, Role, Value"). **Fixers (server-side)** * Server-side fixers - focus outlines, skip-link. * Six more auto-fixers: remove positive tabindex, remove redundant title, viewport scalable, label new-window links, search field accessible name, empty-search results page. * Four more fixers: comment-form labels, document-link labels, force link underline, autoplay video controls. **AI Alt Text** * AI alt text - Gemini and Mistral providers; bulk + Media Library + on-upload. **Accessibility statement** * Accessibility statement generator with `[acceguru_statement]` shortcode and optional footer link. **Settings** * Configurable skip-link target selectors, post types to scan, Block Editor sidebar toggle, overlay docking side (right/left). * Opt-in "Delete all data on uninstall". **Performance / security / i18n** * Lazy-load axe-core (~540KB) on first overlay click instead of every admin pageview. * Security pass on REST endpoints. * Cache dashboard aggregation in a transient (faster on large sites). * Switch image fetch to `wp_safe_remote_get` (SSRF defense in depth). * Translation-ready: load text domain, register script translations, ship `.pot`. * Plugin Check: cleared all ERRORS and flagged WARNINGS.