== Changelog ==

= 1.0.32 =
* Moved the three opt-in hardening styles (focus outline, reduced-motion, skip link) out of inline <style> tags and into the wp_enqueue_scripts pipeline via wp_register_style() and wp_add_inline_style(). No visual or behavioral changes.

= 1.0.31 =
* Removed the small "Powered by Savoy" link from the document viewer's chat sidebar footer.
* Hardened the PDF link rewriter: only plugin-controlled attributes are emitted on rewritten links; link text passed through wp_kses_post().
* Moved the document viewer's inline <style> and <script> blocks into properly enqueued asset files. PHP values supplied via wp_localize_script().

= 1.0.30 =
* Code quality: addressed WordPress.org plugin-check warnings -- added translators: comment for the one i18n placeholder string, prefixed all template-scope variables with savoy_, moved phpcs:ignore comment to the actual db-call line in class-admin.php, suppressed false-positive warning on the core the_content filter hook, and shortened the readme short description below the 150-char limit. No behavior changes.

= 1.0.29 =
* Documentation: rewrote the readme description and FAQ to remove promotional superlatives, comparative claims, and definitive legal/compliance language. No behavior changes.

= 1.0.28 =
* Added info banner at the top of Settings > Savoy Accessible clarifying that these settings apply to this WordPress site only, with a link to the Savoy dashboard for customers who also use the script tag on non-WordPress sites.

= 1.0.27 =
* Consolidated admin UI: the separate "Accessibility Audits" submenu is gone. Everything is now under Settings > Savoy Accessible with two tabs: Settings and Audits. All 5 audits and all 3 hardening toggles are unchanged.

= 1.0.26 =
* AI chat responses now render basic markdown (bold, italic, inline code, dash bullets, line breaks) instead of showing the raw syntax.

= 1.0.25 =
* Fixed: plugin API calls were double-URL-encoding the PDF url, so the server always saw a garbled URL and returned not_found.
* Refresh Statuses no longer overwrites a valid local status when the server returns a transient not_found.
* Fixed: Tables Without Headers audit success message was being swallowed by the browser treating example tag names as HTML.

= 1.0.24 =
* Fixed: after reprocess, the plugin no longer gets stuck on a stale savoy_doc_id when the post-reload refresh runs before the new server doc exists.
* Refresh Statuses now also re-checks ready documents so savoy_doc_id catches up when a reprocess completed out-of-band.

= 1.0.23 =
* New admin page: Settings > Accessibility Audits, with four new on-demand WCAG audits.
* New audit: Generic link text (WCAG 2.4.4).
* New audit: Heading hierarchy (WCAG 1.3.1, 2.4.6).
* New audit: Tables without headers (WCAG 1.3.1).
* New audit: Empty or missing button labels (WCAG 4.1.2).
* Image Alt Text Audit moved from Settings to the new Audits page.
* New: Accessibility Hardening toggles for html lang, focus outlines, and prefers-reduced-motion.
* Restored polling: settings page re-checks document statuses every 3s while any doc is processing.

= 1.0.22 =
* Fixed: enabling AI chat in settings now actually shows the sidebar in the in-plugin viewer.

= 1.0.21 =
* Fixed: saving settings no longer clears the stored API key.
* New: Show button on the settings page reveals the full API key.
* Renamed Scan Now to Rescan all content.

= 1.0.20 =
* Fixed: in-plugin viewer topbar was hidden behind the WordPress admin bar for logged-in users.

= 1.0.19 =
* In-plugin PDF viewer: accessible documents now render entirely on your own domain.
* AI chat sidebar is now an opt-in toggle (default off).

= 1.0.18 =
* New setting: PDF Link Display Mode (Icon, Prominent link, or Replace with HTML link).
* New setting: inject a Skip to main content link on all pages (WCAG 2.4.1).
* New tool: one-click Accessibility Statement page generator.
* New tool: Image Alt Text Audit.

= 1.0.13 =
* Renamed plugin to Savoy Accessible.
* Reduced readme tags to five for WordPress.org compliance.
* Added Software as a Service disclosure.

= 1.0.12 =
* Tested up to WordPress 6.9.
* Dual-build setup (direct-download includes self-updater; wp.org build strips it).

= 1.0.11 =
* Free Forever accounts show "unlimited" in usage display.

= 1.0.10 =
* Reprocessing now updates existing Accessible Document posts instead of creating duplicates.

= 1.0.9 =
* Monthly doc conversion limits enforced at queue time.
* New "Limit Reached" status for documents waiting on quota rollover.

= 1.0.8 =
* Auto-refresh processing statuses on page load.
* Better free tier experience with CTA for connecting API key.

= 1.0.7 =
* API key locked and masked after saving.

= 1.0.6 =
* Automatic image description for screen reader alt text.

= 1.0.2 =
* WordPress post integration - accessible versions live on your domain.

= 1.0.1 =
* Settings link, auto-scan on post save.

= 1.0.0 =
* Initial release.
