{"id":302172,"date":"2026-05-11T13:33:27","date_gmt":"2026-05-11T13:33:27","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/savoy-accessible\/"},"modified":"2026-05-11T13:38:34","modified_gmt":"2026-05-11T13:38:34","slug":"savoy-accessible","status":"publish","type":"plugin","link":"https:\/\/ja.wordpress.org\/plugins\/savoy-accessible\/","author":15445049,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.32","stable_tag":"1.0.32","tested":"6.9.4","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"Savoy Accessible \u2013 Drop-In PDF Accessibility for WordPress (WCAG 2.1 AA)","header_author":"Savoy AI","header_description":"Automatically convert PDFs on your site into WCAG-accessible HTML versions with AI-powered document chat.","assets_banners_color":"","last_updated":"2026-05-11 13:38:34","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/savoy.chat\/accessible","header_author_uri":"https:\/\/savoy.chat","rating":0,"author_block_rating":0,"active_installs":0,"downloads":98,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.32":{"tag":"1.0.32","author":"peteclark3","date":"2026-05-11 13:38:34"}},"upgrade_notice":{"1.0.32":"<p>Moves the opt-in hardening styles (focus outline, reduced-motion, skip link) into the wp_enqueue_scripts pipeline. No behavior changes.<\/p>","1.0.31":"<p>Addresses the next round of WordPress.org plugin reviewer feedback: removed the small &quot;Powered by&quot; link in the chat sidebar, hardened escaping in the PDF link rewriter, and moved the document viewer&#039;s CSS\/JS into proper enqueued assets. No behavior changes.<\/p>","1.0.30":"<p>Code-quality release clearing WordPress.org plugin-check warnings. No behavior changes.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.32"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Free scan shows how many PDFs on your site need accessibility work","2":"Connected dashboard showing document conversion statuses","3":"Accessible HTML version with optional AI chat sidebar","4":"Accessible Documents post type in WordPress admin"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[1953,2682,1764,130919,1956],"plugin_category":[34,50],"plugin_contributors":[262572],"plugin_business_model":[],"class_list":["post-302172","plugin","type-plugin","status-publish","hentry","plugin_tags-accessibility","plugin_tags-ada","plugin_tags-pdf","plugin_tags-section-508","plugin_tags-wcag","plugin_category-accessibility","plugin_category-media","plugin_contributors-peteclark3","plugin_committers-peteclark3"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/savoy-accessible.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Savoy Accessible scans the PDFs on your WordPress site and uses the Savoy cloud service to generate WCAG 2.1 AA-friendly HTML versions of each one, so screen readers and other assistive technologies can read the content directly. It also includes a set of on-demand audits and opt-in hardening toggles for common WCAG issues elsewhere on your site.<\/p>\n\n<p>The plugin is intended for sites that publish a lot of PDF content (schools, universities, government agencies, nonprofits, and businesses).<\/p>\n\n<h4>Key features<\/h4>\n\n<ul>\n<li>Automatic PDF detection across posts, pages, and the media library<\/li>\n<li>Conversion of PDF text content to semantic HTML using the Savoy service<\/li>\n<li>OCR for scanned (image-only) PDFs via vision AI on the Savoy service<\/li>\n<li>Automatic alt-text generation for images inside PDFs<\/li>\n<li>Generated documents are stored as a custom post type so you can edit them in Gutenberg<\/li>\n<li>Optional AI chat sidebar in the document viewer (off by default)<\/li>\n<li>Inline accessibility badge next to PDF links<\/li>\n<li>Optional automatic link rewriting so visitors land on the HTML version<\/li>\n<li>Daily automatic scanning to catch newly uploaded PDFs<\/li>\n<li>Works with any theme<\/li>\n<\/ul>\n\n<h4>On-demand audits<\/h4>\n\n<ul>\n<li>Image alt text audit<\/li>\n<li>Generic link text audit (WCAG 2.4.4) \u2014 flags \"click here\", \"read more\", bare URLs<\/li>\n<li>Heading hierarchy audit (WCAG 1.3.1, 2.4.6) \u2014 flags multiple H1s and skipped levels<\/li>\n<li>Tables-without-headers audit (WCAG 1.3.1)<\/li>\n<li>Empty or missing button labels audit (WCAG 4.1.2)<\/li>\n<\/ul>\n\n<h4>Opt-in hardening toggles<\/h4>\n\n<ul>\n<li>Inject <code>&lt;html lang&gt;<\/code> if missing<\/li>\n<li>Visible focus outlines for keyboard navigation<\/li>\n<li>Respect <code>prefers-reduced-motion<\/code><\/li>\n<li>\"Skip to main content\" link<\/li>\n<\/ul>\n\n<h4>Software as a Service<\/h4>\n\n<p>This plugin is a client for the Savoy service at <a href=\"https:\/\/savoy.chat\/accessible\">savoy.chat<\/a>. PDF processing, OCR, HTML generation, and AI chat all run on Savoy's servers. The plugin only communicates with Savoy when you provide an API key. See the Savoy Terms of Service and Privacy Policy at <a href=\"https:\/\/savoy.chat\/terms\">savoy.chat\/terms<\/a> and <a href=\"https:\/\/savoy.chat\/privacy\">savoy.chat\/privacy<\/a>.<\/p>\n\n<p>The free portion of the plugin (PDF detection and the audit\/hardening tools) does not require an API key and does not contact Savoy's servers. PDF conversion and link rewriting require a Savoy subscription.<\/p>\n\n<h4>How it works<\/h4>\n\n<ol>\n<li>Install and activate the plugin.<\/li>\n<li>Go to Settings &gt; Savoy Accessible. Click \"Rescan all content\" to see how many PDFs are on your site.<\/li>\n<li>(Optional) Sign up at savoy.chat\/accessible, paste in your API key, and click Save and Verify.<\/li>\n<li>Detected PDFs are sent to the Savoy service for conversion.<\/li>\n<li>Each converted document is stored as an Accessible Document post in WordPress, which you can edit.<\/li>\n<li>Links on your site are optionally rewritten to point at the accessible HTML version.<\/li>\n<\/ol>\n\n<h4>What happens to my original PDFs?<\/h4>\n\n<p>The plugin never modifies your original files. It creates parallel HTML pages and optionally points visitors to them. You can disable link rewriting at any time.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install the plugin from the WordPress Plugin Directory, or upload the zip via Plugins &gt; Add New &gt; Upload.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Go to Settings &gt; Savoy Accessible.<\/li>\n<li>Click \"Rescan all content\" to see how many PDFs on your site need accessibility work. This step is free and works without an API key.<\/li>\n<li>(Optional) Sign up at <a href=\"https:\/\/savoy.chat\/accessible\">savoy.chat\/accessible<\/a>, get an API key, paste it in, and click \"Save and Verify\".<\/li>\n<li>Once an API key is connected, the plugin sends detected PDFs to Savoy for conversion.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20this%20free%3F\"><h3>Is this free?<\/h3><\/dt>\n<dd><p>Scanning, PDF detection, the WCAG audits, and the hardening toggles work without any account and without contacting an external service. Conversion and link rewriting require a Savoy subscription.<\/p><\/dd>\n<dt id=\"does%20this%20guarantee%20compliance%20with%20any%20specific%20regulation%3F\"><h3>Does this guarantee compliance with any specific regulation?<\/h3><\/dt>\n<dd><p>No. The plugin generates WCAG 2.1 AA-friendly HTML, which is the conformance level cited by Section 508 and by the updated ADA Title II rule. Whether your site as a whole conforms depends on your theme, your other content, and your authoring practices. We strongly recommend a professional accessibility audit for any formal compliance certification.<\/p><\/dd>\n<dt id=\"is%20this%20an%20overlay%3F\"><h3>Is this an overlay?<\/h3><\/dt>\n<dd><p>No. The plugin generates real HTML pages with semantic structure, alt text, and reading order, stored as WordPress posts. It does not inject an overlay widget.<\/p><\/dd>\n<dt id=\"what%20about%20scanned%20pdfs%20%28image-only%20pdfs%29%3F\"><h3>What about scanned PDFs (image-only PDFs)?<\/h3><\/dt>\n<dd><p>The Savoy service uses vision-AI OCR for scanned PDFs.<\/p><\/dd>\n<dt id=\"can%20i%20edit%20the%20generated%20html%3F\"><h3>Can I edit the generated HTML?<\/h3><\/dt>\n<dd><p>Yes. Each converted document is a custom post type. You can edit it in Gutenberg like any other page; revisions are preserved.<\/p><\/dd>\n<dt id=\"how%20does%20pricing%20work%3F\"><h3>How does pricing work?<\/h3><\/dt>\n<dd><p>See <a href=\"https:\/\/savoy.chat\/accessible\">savoy.chat\/accessible<\/a> for current pricing and plan tiers.<\/p><\/dd>\n<dt id=\"does%20this%20slow%20down%20my%20site%3F\"><h3>Does this slow down my site?<\/h3><\/dt>\n<dd><p>The plugin adds a lightweight content filter on the frontend. PDF conversion and OCR run on Savoy's servers, not yours.<\/p><\/dd>\n<dt id=\"what%20if%20i%20cancel%20my%20subscription%3F\"><h3>What if I cancel my subscription?<\/h3><\/dt>\n<dd><p>Already-converted documents remain in your WordPress install. New conversions stop.<\/p><\/dd>\n<dt id=\"can%20i%20use%20this%20for%20section%20508%3F\"><h3>Can I use this for Section 508?<\/h3><\/dt>\n<dd><p>The HTML output is designed to meet WCAG 2.1 AA, which Section 508 references as its conformance standard. As with any accessibility work, a professional audit is recommended for formal compliance certification.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.32<\/h4>\n\n<ul>\n<li>Moved the three opt-in hardening styles (focus outline, reduced-motion, skip link) out of inline <code>&lt;style&gt;<\/code> tags and into the <code>wp_enqueue_scripts<\/code> pipeline via <code>wp_register_style()<\/code> and <code>wp_add_inline_style()<\/code>. No visual or behavioral changes.<\/li>\n<\/ul>\n\n<h4>1.0.31<\/h4>\n\n<ul>\n<li>Removed the small \"Powered by Savoy\" link from the document viewer's chat sidebar footer.<\/li>\n<li>Hardened the PDF link rewriter: only plugin-controlled attributes are emitted on rewritten links; link text passed through <code>wp_kses_post()<\/code>.<\/li>\n<li>Moved the document viewer's inline <code>&lt;style&gt;<\/code> and <code>&lt;script&gt;<\/code> blocks into properly enqueued asset files. PHP values supplied via <code>wp_localize_script()<\/code>.<\/li>\n<\/ul>\n\n<h4>1.0.30<\/h4>\n\n<ul>\n<li>Code quality: cleared WordPress.org plugin-check warnings. No behavior changes.<\/li>\n<\/ul>\n\n<h4>1.0.29<\/h4>\n\n<ul>\n<li>Documentation: rewrote readme to remove promotional superlatives and definitive compliance claims. No behavior changes.<\/li>\n<\/ul>\n\n<p>For the full changelog see <a href=\"https:\/\/plugins.svn.wordpress.org\/savoy-accessible\/trunk\/changelog.txt\">changelog.txt<\/a>.<\/p>","raw_excerpt":"Convert PDFs to WCAG-friendly HTML, run on-demand WCAG audits, and apply opt-in site-wide accessibility enhancements.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/302172","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=302172"}],"author":[{"embeddable":true,"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/peteclark3"}],"wp:attachment":[{"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=302172"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=302172"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=302172"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=302172"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=302172"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=302172"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}