{"id":375755,"date":"2026-09-26T11:09:19","date_gmt":"2026-09-26T11:09:19","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/ariade-companion\/"},"modified":"2026-09-26T11:08:50","modified_gmt":"2026-09-26T11:08:50","slug":"ariade-companion","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/ariade-companion\/","author":7479496,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.5.2","stable_tag":"1.5.2","tested":"7.1.2","requires":"6.6","requires_php":"7.4","requires_plugins":null,"header_name":"Ariade Header and Menu","header_author":"Shivaji Mitra","header_description":"The Ariade theme's one accessible header: drop-down menu, mobile drawer, header buttons, brand and colour settings on the block, plus an auto-built sitemap block and valid HTML fixes. WCAG 2.2 AA.","assets_banners_color":"f6f6f7","last_updated":"2026-09-26 11:08:50","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/ananyoo.com","header_plugin_uri":"https:\/\/ananyoo.com\/ariade-accessible-wordpress-theme\/","header_author_uri":"https:\/\/ananyoo.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":52,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.5.2":{"tag":"1.5.2","author":"anblik","date":"2026-09-26 11:08:50","revision":3714156}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3714164,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3714164,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3714164,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3714164,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"ariade\/header-actions":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"ariade\/header-actions","version":"1.0.0","title":"Ariade Header Actions","category":"theme","icon":"button","description":"Header action buttons - search, account, cart, the \"Get the theme\" button, and the mobile menu button. Show or hide account, cart and the CTA, and edit the CTA, from the block settings.","keywords":["header","cart","account","button","search"],"textdomain":"ariade-companion","supports":{"html":false,"reusable":false,"multiple":false,"align":false,"customClassName":false},"attributes":{"showAccount":{"type":"boolean","default":true},"showCart":{"type":"boolean","default":true},"showCta":{"type":"boolean","default":true},"ctaText":{"type":"string","default":""},"ctaUrl":{"type":"string","default":""}},"editorScript":"file:.\/index.js","render":"file:.\/render.php"},"ariade\/primary-nav":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"ariade\/primary-nav","version":"1.0.0","title":"Ariade Primary Menu","category":"theme","icon":"menu","description":"The accessible primary navigation - desktop mega-menu plus mobile drawer. Menu items are managed in Appearance \u2192 Menus (assign a menu to the \"Primary\" location).","keywords":["navigation","menu","nav"],"textdomain":"ariade-companion","supports":{"html":false,"reusable":false,"multiple":false,"align":false,"customClassName":false},"editorScript":"file:.\/index.js","render":"file:.\/render.php"},"ariade\/sitemap":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"ariade\/sitemap","version":"1.0.0","title":"Ariade Sitemap","category":"theme","icon":"networking","description":"A dynamic, WCAG-friendly HTML sitemap that auto-populates from your content. Choose which content types to list, the marker style, columns, and how large catalogues are handled (link to archives or numbered pages).","keywords":["sitemap","index","wayfinding","accessibility"],"textdomain":"ariade-companion","attributes":{"includePages":{"type":"boolean","default":true},"includePosts":{"type":"boolean","default":true},"includeProducts":{"type":"boolean","default":true},"includePortfolio":{"type":"boolean","default":true},"columns":{"type":"number","default":0},"marker":{"type":"string","default":"dot"},"markerIcon":{"type":"string","default":""},"showCounts":{"type":"boolean","default":true},"overflowMode":{"type":"string","default":"viewall"},"perSectionLimit":{"type":"number","default":30}},"supports":{"html":false,"reusable":false,"multiple":false,"align":["wide","full"],"customClassName":false},"editorScript":"file:.\/index.js","render":"file:.\/render.php"},"ariade\/site-header":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"ariade\/site-header","version":"1.5.0","title":"Ariade Site Header","category":"theme","icon":"menu","description":"The one Ariade accessible header - brand, drop-down menu, mobile drawer and header buttons. Brand style, header colours, letter case and the buttons are all set in the block settings.","keywords":["header","navigation","menu","cart"],"textdomain":"ariade-companion","supports":{"html":false,"reusable":false,"multiple":false,"align":false,"customClassName":false},"attributes":{"showAccount":{"type":"boolean","default":true},"showCart":{"type":"boolean","default":true},"showCta":{"type":"boolean","default":true},"ctaText":{"type":"string","default":""},"ctaUrl":{"type":"string","default":""},"brandStyle":{"type":"string","enum":["auto","logo","logo-text","text"],"default":"auto"},"headerBg":{"type":"string","default":""},"linkColor":{"type":"string","default":""},"buttonBg":{"type":"string","default":""},"buttonText":{"type":"string","default":""},"uppercase":{"type":"boolean","default":true},"hoverColor":{"type":"string","default":""},"currentColor":{"type":"string","default":""},"dropdownBg":{"type":"string","default":""},"dropdownText":{"type":"string","default":""},"drawerBg":{"type":"string","default":""},"drawerText":{"type":"string","default":""},"drawerAccent":{"type":"string","default":""},"logoWhite":{"type":"boolean","default":false},"darkLogoId":{"type":"number","default":0}},"editorScript":"file:.\/index.js","render":"file:.\/render.php"}},"tagged_versions":["1.5.2"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"The accessible header with the drop-down menu and header buttons.","2":"The mobile menu drawer with the same header button.","3":"The auto-built sitemap block."}},"plugin_section":[],"plugin_tags":[1953,211323,1431,1865,1753],"plugin_category":[34,43],"plugin_contributors":[85416],"plugin_business_model":[],"class_list":["post-375755","plugin","type-plugin","status-publish","hentry","plugin_tags-accessibility","plugin_tags-block-theme","plugin_tags-header","plugin_tags-menu","plugin_tags-navigation","plugin_category-accessibility","plugin_category-customization","plugin_contributors-anblik","plugin_committers-anblik"],"banners":{"banner":"https:\/\/ps.w.org\/ariade-companion\/assets\/banner-772x250.png?rev=3714164","banner_2x":"https:\/\/ps.w.org\/ariade-companion\/assets\/banner-1544x500.png?rev=3714164","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/ariade-companion\/assets\/icon-128x128.png?rev=3714164","icon_2x":"https:\/\/ps.w.org\/ariade-companion\/assets\/icon-256x256.png?rev=3714164","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Ariade Header and Menu gives the free <a href=\"https:\/\/wordpress.org\/themes\/ariade\/\">Ariade<\/a> block theme its header. WordPress.org theme rules keep this kind of functionality out of themes, so it lives here, in a small plugin you install once and forget. Activate it and the Ariade header is in place - there is nothing to switch on.<\/p>\n\n<p><strong>What you get<\/strong><\/p>\n\n<ul>\n<li><strong>One header, set up from its own settings.<\/strong> Select the Ariade Site Header block in the Site Editor and everything is in its settings panel: brand style, colours, the menu it shows, the header buttons and letter case. No code and no CSS needed.<\/li>\n<li><strong>Brand style.<\/strong> Logo only, logo with site name and tagline, or name and tagline only.<\/li>\n<li><strong>Header colours with a contrast check.<\/strong> Background, menu links, hover, current page, button, drop-down panel and the mobile menu. Each pair is checked against WCAG as you choose, and hover and the current page are also underlined, so they never rely on colour alone.<\/li>\n<li><strong>A logo that works on a dark header.<\/strong> Show the logo in white, or choose a separate logo for dark backgrounds.<\/li>\n<li><strong>You can see where the menu comes from.<\/strong> The settings panel names the menu shown in the header and links straight to it.<\/li>\n<li><strong>A drop-down menu that works for everyone.<\/strong> Arrow keys move between items, Escape closes a sub-menu, focus is always visible, and screen readers hear each item once, with no stray numbers or icons.<\/li>\n<li><strong>A mobile drawer with the same buttons.<\/strong> The menu drawer on small screens shows the same header button as the desktop header, with the text and link you set once.<\/li>\n<li><strong>An auto-built sitemap block.<\/strong> Drop it on a page and it lists every page, post and category on the site, grouped and paginated, kept up to date on its own.<\/li>\n<li><strong>Valid HTML, kept that way.<\/strong> Under Settings, Ariade Header and Menu: one title tag per page when an SEO plugin prints its own, no invalid \"auto\" in image sizes, stray style code moved out of the body, and anything injected between the head and the body removed. All four are on by default and can be switched off.<\/li>\n<li><strong>Text exactly as you wrote it.<\/strong> Made to match Ariade's house style: plain hyphens, no automatic dashes.<\/li>\n<\/ul>\n\n<p><strong>Built accessibility-first<\/strong><\/p>\n\n<p>Every part of this plugin was tested by hand with JAWS, NVDA, VoiceOver and TalkBack, on the keyboard alone, and at 200 and 400 percent zoom. It meets WCAG 2.2 Level AA.<\/p>\n\n<p><strong>For developers<\/strong><\/p>\n\n<p>The filter <code>ariade_brand_markup<\/code> still replaces the brand lockup completely (it now also receives the chosen brand style). <code>ariadec_use_ariade_header<\/code> set to false keeps the theme's core Navigation header.<\/p>\n\n<p>Live demo: <a href=\"https:\/\/showcase.ananyoo.com\/\">showcase.ananyoo.com<\/a><\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the free Ariade theme from Appearance, Themes, Add New.<\/li>\n<li>Install and activate Ariade Header and Menu from Plugins, Add New. The Ariade header is used straight away.<\/li>\n<li>Open Appearance, Menus, and assign a menu to the Primary location. Until you do, the header lists your published top-level pages.<\/li>\n<li>To change the brand, colours or header button, open Appearance, Editor, edit the Header, select the Ariade Site Header block and use its settings panel.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"my%20page%20had%20two%20title%20tags.%20is%20that%20fixed%3F\"><h3>My page had two title tags. Is that fixed?<\/h3><\/dt>\n<dd><p>Yes. With Rank Math, Yoast, All in One SEO or SEOPress active, WordPress no longer prints its own block-theme title, so each page has exactly one. It is on by default under Settings, Ariade Header and Menu.<\/p><\/dd>\n<dt id=\"do%20i%20need%20the%20ariade%20theme%3F\"><h3>Do I need the Ariade theme?<\/h3><\/dt>\n<dd><p>The blocks work on any block theme, but they are designed for Ariade and match its header without any extra styling.<\/p><\/dd>\n<dt id=\"where%20do%20i%20set%20the%20header%20button%2C%20brand%20and%20colours%3F\"><h3>Where do I set the header button, brand and colours?<\/h3><\/dt>\n<dd><p>In the Site Editor, edit the Header template part, select the Ariade Site Header block, and use its settings panel. The mobile drawer button follows the same button setting.<\/p><\/dd>\n<dt id=\"why%20was%20the%20plugin%20renamed%3F\"><h3>Why was the plugin renamed?<\/h3><\/dt>\n<dd><p>It was called Ariade Companion. The new name says what it does. The plugin folder and all settings are unchanged, so updating keeps everything as it was.<\/p><\/dd>\n<dt id=\"how%20do%20i%20add%20the%20sitemap%3F\"><h3>How do I add the sitemap?<\/h3><\/dt>\n<dd><p>Add the Ariade Sitemap block to any page. It lists your pages, posts and categories automatically and keeps itself current.<\/p><\/dd>\n<dt id=\"does%20it%20load%20anything%20from%20outside%20my%20site%3F\"><h3>Does it load anything from outside my site?<\/h3><\/dt>\n<dd><p>No. The plugin makes no external requests and collects no data.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.5.2<\/h4>\n\n<ul>\n<li>Security: all block output is now escaped late, on output. The header,\nmenu and header-actions blocks pass their markup through wp_kses()\nwith an allow-list of the elements the header uses (new filter\nariadec_header_allowed_html); the Sitemap block escapes its lists,\npager and wrapper attributes; the cart badge uses wp_kses_post().<\/li>\n<\/ul>\n\n<h4>1.5.1<\/h4>\n\n<ul>\n<li>Mobile menu colours now also reach third-level rows (a sub-menu inside\na sub-menu), which kept the theme blue in 1.5.0.<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>New colours on the Ariade Site Header block: menu link on hover and\nfocus, current page, drop-down background and text, and a Mobile menu\ncolours panel (background, text, accent). Every pair has a WCAG\ncontrast check in the editor; hover and the current page are also\nunderlined, so they never rely on colour alone.<\/li>\n<li>The mobile menu button follows the header button colours.<\/li>\n<li>New: logo on a dark header. \"White logo\" shows the logo in white (the\nbundled Ariade logo switches to its white version), or choose a\nseparate logo image for dark backgrounds.<\/li>\n<li>Each new setting only acts when it is chosen, so existing headers look\nexactly as before.<\/li>\n<\/ul>\n\n<h4>1.4.2<\/h4>\n\n<ul>\n<li>The \"No site logo is set yet\" hint in the Brand panel no longer shows\non sites that display the bundled Ariade logo.<\/li>\n<\/ul>\n\n<h4>1.4.1<\/h4>\n\n<ul>\n<li>Fix: on a site with no logo of its own but the Ariade branding switch\non (theme demos), the logo brand styles now show the bundled Ariade\nlogo, as the theme's Site Logo block does, instead of the site name.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Renamed from Ariade Companion to Ariade Header and Menu. The slug\n(ariade-companion) and all saved settings are unchanged.<\/li>\n<li>New: Brand style on the Ariade Site Header block - logo only, logo with\nsite name and tagline, or name and tagline only. Replaces the need for\nthe ariade_brand_markup filter on client sites; the filter stays for\ndevelopers and now also receives the chosen style.<\/li>\n<li>New: header colours on the block - background, menu links and icons,\nbutton background and button text - each with a WCAG contrast check in\nthe editor. Drop-down panels and the mobile menu keep their own colours.<\/li>\n<li>New: capital letters in the menu and buttons can be switched off.<\/li>\n<li>New: the block settings name the menu shown in the header, with links\nto edit it or choose another.<\/li>\n<li>One header only: with the plugin active, Ariade's stock core Navigation\nheader is replaced by the Ariade header in memory. The \"Use the Ariade\nheader \/ No thanks\" notice is gone. Headers customised in the Site\nEditor and child themes with their own header file are left alone.\nFilter ariadec_use_ariade_header (default true).<\/li>\n<li>With no menu assigned, the header now lists the site's published\ntop-level pages instead of sample links.<\/li>\n<li>Fix: the default browser icon on fresh installs pointed at image files\nthe plugin never shipped. It now uses the icon bundled with Ariade.<\/li>\n<\/ul>\n\n<h4>1.3.5<\/h4>\n\n<ul>\n<li>New filter ariade_brand_markup on the header brand block, so a child theme\nor plugin can supply its own brand lockup (for example a client logo mark\nbeside the site name and tagline). The default output is unchanged.<\/li>\n<\/ul>\n\n<h4>1.3.4<\/h4>\n\n<ul>\n<li>All four Valid HTML corrections are now on by default, so a fresh\ninstall validates out of the box. Saved settings are kept as they are.<\/li>\n<li>The settings row is created on activation and checked on each admin\nload, so a reinstall or a stale cache can no longer lose the settings.<\/li>\n<\/ul>\n\n<h4>1.3.3<\/h4>\n\n<ul>\n<li>Fix: the page-rewriting corrections now wrap every other plugin's\noutput buffer, so they also catch markup that another plugin adds at\nthe very end of the page, such as an element injected before the body.<\/li>\n<\/ul>\n\n<h4>1.3.2<\/h4>\n\n<ul>\n<li>New Valid HTML option: remove anything placed between the head and the\nbody. Some hosting page-speed layers inject an element there, which\nmakes the W3C validator stop reading the page. Off until switched on.<\/li>\n<\/ul>\n\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>Fix: the single title tag correction now runs just before the title\nprints, so it also works when WordPress adds its block-theme title while\nthe template loads. 1.3.0 could leave two title tags with Rank Math.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>New: Valid HTML module, under Settings, Ariade Companion. One title tag\nper page when an SEO plugin prints its own; no invalid \"auto\" value in\nimage sizes; and an optional fix that moves style code printed inside\nthe body into the head. The first two act at the source and rewrite\nnothing; the third is off until you switch it on.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>First release on WordPress.org.<\/li>\n<li>The header button now defaults to \"Contact us\", linking to your contact\npage. Set your own text and link on the Header actions block.<\/li>\n<li>Passes WordPress Plugin Check with no findings: every header link is\nescaped at output, sitemap template variables carry the plugin prefix.<\/li>\n<\/ul>\n\n<h4>1.1.5<\/h4>\n\n<ul>\n<li>House style: every en dash and em dash in the plugin's own text and\nreadme is now a plain hyphen.<\/li>\n<\/ul>\n\n<h4>1.1.4<\/h4>\n\n<ul>\n<li>The mobile menu button now shows the same text and link as the header\nbutton. It reads the Header actions block's settings from the header\ntemplate part, so setting the button once in the Site Editor changes\nboth. Before, the mobile menu always fell back to the contact page.<\/li>\n<\/ul>\n\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>The mobile drawer button now follows the header block's own call to action settings. It is hidden when the header call to action is switched off, and it uses the header's button text and link when they are set. Before, the drawer ignored both and always showed the default \"Get the theme\". Without header settings it keeps the theme default, and the ariade_drawer_cta filter still has the final say; it now also receives the header options as a second argument.<\/li>\n<li>The desktop header button now falls back to the contact page this site actually uses, the same lookup the drawer button already had, instead of a hard coded \/contact\/.<\/li>\n<li>Menu numbers in the mobile drawer (01, 02 and so on) are hidden from screen readers with aria-hidden. They sat inside the link text, so links were announced as \"Home zero one\" and \"Contact zero seven\". The accessible name is now just the menu label.<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>The mobile drawer button now links to the contact page this site actually uses. It was hard coded to \/contact\/, so on any install that names the page differently the button spent a redirect before arriving. The lookup is cached for a day and the ariade_drawer_cta filter still overrides it.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Fix: the auto-populated sitemap is back on the Sitemap page. Since Ariade 1.5.0 the theme's \"ariade\/sitemap\" pattern is a core-blocks list, and although this plugin carried the Ariade Sitemap block, nothing inserted it into the page - so the Sitemap page (and child-theme pages such as ananyoo.com's \/table-of-contents\/ that reuse the pattern) lost the patterned hero, the card grid and the per-section pagination. The companion now swaps the pattern's content for the block on init (priority 30, after theme patterns and block registration), in memory only; theme files and the database are untouched. Skipped automatically when the block or the pattern is missing, or when the pattern already contains the block (classic full Ariade theme). New filter <code>ariadec_restore_sitemap_pattern<\/code> (default true) to keep the core-blocks version.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>New: LinkedIn-friendly link previews. The plugin removes the two WordPress oEmbed discovery <code>&lt;link&gt;<\/code> tags from the page head (filter <code>ariadec_remove_oembed_discovery<\/code>, default on). LinkedIn's crawler reads oEmbed before Open Graph and the WordPress oEmbed \"rich\" response has only the post title and author, so every post preview on LinkedIn showed the wrong title, \"Rich media\" and \"No image found\". With the links gone LinkedIn uses the Open Graph title, description and image, like Facebook and X. The oEmbed endpoint itself is unchanged. Placed in the companion rather than the theme because the WordPress.org theme requirements list wp_oembed_add_discovery_links as a hook a theme must not remove. Verified with the LinkedIn Post Inspector on 81 ananyoo.com URLs, 4 September 2026.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release. Carries the four Ariade blocks (site-header, primary-nav, header-actions, sitemap) moved out of the theme for WordPress.org compliance, the front-end navigation script, the header inserter pattern, the one-click header switch, and the default-favicon fallback. Safe alongside the classic full Ariade theme (all registrations and definitions are guarded).<\/li>\n<\/ul>","raw_excerpt":"The Ariade theme&#039;s one accessible header: drop-down menu, mobile drawer, header buttons, brand and colour settings, plus a sitemap block.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/375755","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=375755"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/anblik"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=375755"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=375755"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=375755"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=375755"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=375755"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=375755"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}