{"id":380797,"date":"2026-10-09T07:55:19","date_gmt":"2026-10-09T07:55:19","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/relyo-accessibility-checker-fixer-rgaa-eaa\/"},"modified":"2026-10-09T08:00:51","modified_gmt":"2026-10-09T08:00:51","slug":"relyo","status":"publish","type":"plugin","link":"https:\/\/mlt.wordpress.org\/plugins\/relyo\/","author":13521482,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.1","stable_tag":"0.1.1","tested":"7.1.3","requires":"6.9","requires_php":"8.1","requires_plugins":null,"header_name":"Relyo \u2013 Accessibility Checker & Fixer (RGAA, EAA)","header_author":"Relyo","header_description":"Finds and fixes accessibility problems on WordPress and WooCommerce sites, criterion by criterion (RGAA 4.1 \/ WCAG 2.1). No overlay widget, nothing sent outside your site.","assets_banners_color":"ffffff","last_updated":"2026-10-09 08:00:51","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/getrelyo.com","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":54,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","faq","changelog"],"tags":{"0.1.0":{"tag":"0.1.0","author":"delsuza","date":"2026-10-09 07:54:56","revision":3736155},"0.1.1":{"tag":"0.1.1","author":"delsuza","date":"2026-10-09 08:00:51","revision":3736164}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3736155,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3736155,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3736155,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3736155,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.0","0.1.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3736155,"resolution":"1","location":"assets","locale":"","width":1280,"height":860},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3736155,"resolution":"2","location":"assets","locale":"","width":1280,"height":860},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3736155,"resolution":"3","location":"assets","locale":"","width":1280,"height":860},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3736155,"resolution":"4","location":"assets","locale":"","width":1280,"height":860},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3736155,"resolution":"5","location":"assets","locale":"","width":1280,"height":860},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3736155,"resolution":"6","location":"assets","locale":"","width":1280,"height":860}},"screenshots":{"1":"The dashboard: the site's score, open problems by severity and the most frequent ones.","2":"Every problem on the site, with its RGAA criterion, severity and the element at fault.","3":"A page's problems, to fix them one by one or to ignore them.","4":"Writing an image's text alternative: saved in the media library and in the page.","5":"Corrections applied as pages are displayed, turned on in one click.","6":"A score for each product, page and post in the content lists."}},"plugin_section":[],"plugin_tags":[1953,17214,247188,1956,286],"plugin_category":[34,45],"plugin_contributors":[270525],"plugin_business_model":[],"class_list":["post-380797","plugin","type-plugin","status-publish","hentry","plugin_tags-accessibility","plugin_tags-alt-text","plugin_tags-rgaa","plugin_tags-wcag","plugin_tags-woocommerce","plugin_category-accessibility","plugin_category-ecommerce","plugin_contributors-delsuza","plugin_committers-delsuza"],"banners":{"banner":"https:\/\/ps.w.org\/relyo\/assets\/banner-772x250.png?rev=3736155","banner_2x":"https:\/\/ps.w.org\/relyo\/assets\/banner-1544x500.png?rev=3736155","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/relyo\/assets\/icon-128x128.png?rev=3736155","icon_2x":"https:\/\/ps.w.org\/relyo\/assets\/icon-256x256.png?rev=3736155","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/relyo\/assets\/screenshot-1.png?rev=3736155","caption":"The dashboard: the site's score, open problems by severity and the most frequent ones."},{"src":"https:\/\/ps.w.org\/relyo\/assets\/screenshot-2.png?rev=3736155","caption":"Every problem on the site, with its RGAA criterion, severity and the element at fault."},{"src":"https:\/\/ps.w.org\/relyo\/assets\/screenshot-3.png?rev=3736155","caption":"A page's problems, to fix them one by one or to ignore them."},{"src":"https:\/\/ps.w.org\/relyo\/assets\/screenshot-4.png?rev=3736155","caption":"Writing an image's text alternative: saved in the media library and in the page."},{"src":"https:\/\/ps.w.org\/relyo\/assets\/screenshot-5.png?rev=3736155","caption":"Corrections applied as pages are displayed, turned on in one click."},{"src":"https:\/\/ps.w.org\/relyo\/assets\/screenshot-6.png?rev=3736155","caption":"A score for each product, page and post in the content lists."}],"raw_content":"<!--section=description-->\n<p>Relyo checks your pages and products against the RGAA 4.1 (the French standard, based on WCAG 2.1, used for the European Accessibility Act) and tells you what to fix, in plain words. Then it helps you fix it.<\/p>\n\n<p>No overlay widget: Relyo corrects the pages themselves, and nothing leaves your site.<\/p>\n\n<h4>Check<\/h4>\n\n<ul>\n<li>61 RGAA criteria checked automatically: 40 rules run inside WordPress, and axe-core runs in your browser for contrast, ARIA and 4 more criteria<\/li>\n<li>Every page is checked as a visitor sees it: theme, page builder and WooCommerce templates included<\/li>\n<li>Every problem is tied to its RGAA criterion, with the element at fault and what to do<\/li>\n<li>A dashboard with your site's score and its most frequent problems<\/li>\n<li>A list of every problem, filtered by problem, severity and content type, with bulk actions<\/li>\n<li>A score column in your post, page and product lists, and a panel in the editor<\/li>\n<li>Scans run in the background after each change, and on the whole site on request<\/li>\n<li>Polylang and WPML: each page is checked against its own language<\/li>\n<li>WP-CLI: <code>wp relyo scan --all<\/code>, <code>wp relyo report<\/code><\/li>\n<\/ul>\n\n<h4>Fix<\/h4>\n\n<ul>\n<li>10 corrections you turn on in one click, applied as pages are displayed: skip link, visible keyboard focus, zoom, page language, frame titles, video and audio controls, announced shop messages, image captions, form autofill. Nothing changes in your content: turn one off and the page is back as it was<\/li>\n<li>Content corrections from the problems list: write an image's text alternative (saved in the media library and in the page), or remove empty paragraphs. WordPress keeps a revision first, and every correction is logged on the page<\/li>\n<\/ul>\n\n<h4>Relyo Pro<\/h4>\n\n<p><a href=\"https:\/\/getrelyo.com\/pro\/\">Relyo Pro<\/a> adds image alternatives written by AI: on the fix screen, an AI model looks at the image and suggests an alternative in the page's language, which you check before saving. The Images screen does the same for the whole media library in the background: you then review the suggestions one by one or accept a selection, and each accepted alternative is saved in the media library and in the pages that show the image. It uses your own key for OpenAI, Google Gemini or Mistral AI.<\/p>\n\n<p>Relyo Pro also checks 8 more RGAA criteria: it compares each page with the rest of the site (same title as other pages, a main menu that changes, a search form or site map link that moves, a field labelled differently), and checks the page as the browser draws it (form field outlines too faint, content too wide at 320 pixels, labels far from their fields).<\/p>\n\n<h3>Third-party code<\/h3>\n\n<p>Relyo bundles <a href=\"https:\/\/github.com\/dequelabs\/axe-core\">axe-core<\/a> 4.13.0 (Mozilla Public License 2.0, compatible with the GPL), in assets\/vendor\/axe-core. It runs in your browser, on your own pages; nothing is sent anywhere. Unminified source: https:\/\/unpkg.com\/axe-core@4.13.0\/axe.js<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20relyo%20an%20overlay%3F\"><h3>Is Relyo an overlay?<\/h3><\/dt>\n<dd><p>No. Overlays add a widget on top of the page and leave the page as it is. Relyo finds the problems in your pages and corrects them, in the page's code or in your content.<\/p><\/dd>\n<dt id=\"will%20relyo%20make%20my%20site%20compliant%3F\"><h3>Will Relyo make my site compliant?<\/h3><\/dt>\n<dd><p>No tool can on its own. Relyo checks 61 of the RGAA's 106 criteria automatically (69 with Relyo Pro); 37 can only be checked by a person (is this alternative relevant, does this video have a transcript). The score shows how much of what Relyo can check is correct, not an RGAA compliance rate.<\/p><\/dd>\n<dt id=\"does%20relyo%20send%20my%20pages%20anywhere%3F\"><h3>Does Relyo send my pages anywhere?<\/h3><\/dt>\n<dd><p>The free version does not. Relyo loads your pages from your own site to check them, and axe-core runs in your browser, on your own pages.<\/p>\n\n<p>Relyo Pro sends an image to the AI service you chose only when you ask for its alternative (one image, or the media library's images without alternative from the Images screen), with your own key: <a href=\"https:\/\/openai.com\/policies\/privacy-policy\/\">OpenAI<\/a> (<a href=\"https:\/\/openai.com\/policies\/terms-of-use\/\">terms<\/a>), <a href=\"https:\/\/policies.google.com\/privacy\">Google Gemini<\/a> (<a href=\"https:\/\/ai.google.dev\/gemini-api\/terms\">terms<\/a>) or <a href=\"https:\/\/legal.mistral.ai\/terms\/privacy-policy\">Mistral AI<\/a> (<a href=\"https:\/\/legal.mistral.ai\/terms\">terms<\/a>).<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20page%20builders%3F\"><h3>Does it work with page builders?<\/h3><\/dt>\n<dd><p>Relyo checks the page as displayed, so it sees what Elementor and other builders produce. For an image in an Elementor layout, Relyo updates its alternative in the media library, which Elementor uses unless the widget sets its own.<\/p><\/dd>\n<dt id=\"can%20i%20undo%20a%20correction%3F\"><h3>Can I undo a correction?<\/h3><\/dt>\n<dd><p>Display corrections: turn them off in Relyo \u2192 Corrections. Content corrections: WordPress keeps a revision of the content before each one, which you can restore from the editor.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.1<\/h4>\n\n<ul>\n<li>Corrections applied on display go through WordPress's template enhancement output buffer (WordPress 6.9 or later), and keep working on sites where Elementor turns that buffer off<\/li>\n<li>Skip link and focus styles added as an inline style of the page, not printed in it<\/li>\n<li>Translations from translate.wordpress.org<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Pro: image alternatives suggested by AI (OpenAI, Google Gemini or Mistral AI, your own key) on the fix screen, in the page's language, checked by you before saving<\/li>\n<li>Pro: Images screen, to write suggestions for every image of the media library without alternative in the background, then accept, edit, mark as decorative or reject each one<\/li>\n<li>French translation<\/li>\n<li>Content corrections: image alternatives and empty paragraphs, with a revision saved first and a log of corrections per page<\/li>\n<li>Corrections applied on display: skip link, focus, zoom, page language, frame titles, media controls, shop messages, captions, autofill (RGAA 1.9, 2.1, 4.10, 4.11, 7.5, 8.4, 10.4, 10.7, 11.13, 12.7)<\/li>\n<li>Admin: dashboard, problems list, page detail, score column, editor panel<\/li>\n<li>Background scans (Action Scheduler or WP-Cron), REST routes for the browser checks, WP-CLI commands<\/li>\n<li>Browser checks with axe-core for 6 more criteria: contrast, ARIA, links told apart by colour only, hidden focusable elements, forced text spacing, locked orientation (RGAA 3.2, 7.1, 10.6, 10.8, 10.12, 13.9)<\/li>\n<li>Pro: 8 more criteria \u2014 each page compared with the rest of the site (titles, main menu, search form, site map link, field labels; RGAA 8.6, 11.3, 12.2, 12.4, 12.5), and checks of the page as the browser draws it (form field outlines, 320 pixels wide, labels next to their fields; RGAA 3.3, 10.11, 11.4)<\/li>\n<li>10 more rules for 11 criteria: CAPTCHA, media player controls, complex table summaries, clickable elements out of keyboard reach, lists that change the page by themselves, right-to-left text, text written by the CSS, text and background colours, content shown on hover only, option groups (RGAA 1.4, 1.5, 4.13, 5.1, 7.3, 7.4, 8.10, 10.2, 10.5, 10.14, 11.8)<\/li>\n<li>Analysis engine and 30 rules covering 44 RGAA 4.1 criteria: images and captions, frames, media, tables, links, WooCommerce notices, document and language, headings, page regions and skip link, lists, zoom, keyboard focus, forms (labels, groups, buttons, required fields, autocomplete), navigation, tab order, refresh, documents to download, moving content<\/li>\n<\/ul>","raw_excerpt":"Find and fix accessibility problems on WordPress and WooCommerce, criterion by criterion. No overlay widget, nothing sent outside your site.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/380797","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=380797"}],"author":[{"embeddable":true,"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/delsuza"}],"wp:attachment":[{"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=380797"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=380797"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=380797"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=380797"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=380797"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=380797"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}