How to add the Sienna accessibility widget to WordPress

Last updated: 4 November 2026

Sienna is a free accessibility widget by an independent developer, Benny Luk, requested more than 119 million times in a month from the jsDelivr CDN. Its website says it works on WordPress, but there is no official Sienna plugin and no WordPress guide: you add its script yourself. Here is how to do that cleanly, with code we ran on WordPress 7.1.4, and what changes compared with a toolbar plugin.

Short version: put a few lines of PHP in a tiny plugin of your own that loads Sienna with wp_enqueue_script, either from jsDelivr with a fixed version number or from a copy on your own site. Before you choose, know two things: with the CDN, every visitor's browser connects to jsDelivr, which receives their IP address; and the current Sienna package ships a license file that says something different from its other pages (see two license texts).

We make a free accessibility toolbar plugin for WordPress, so weigh what we say with that in mind. Sienna is a popular open project and we have tried to describe it fairly: every fact below comes from its package, its code or its website, read on 4 November 2026. This is general information, not legal advice.

An accessibility toolbar helps some visitors; it does not make a website conform to WCAG or to the law. Fix your content and code first.

What Sienna is

Two license texts

This is the part to read before you choose an option. The Sienna files say two different things:

Version 2.1.0 (23 March 2026) is the last release whose license file is MIT; its script also says "License: MIT" in its first lines. We don't know which text the author means to apply to the newer versions, and we are not the right people to decide it: if it matters for your site, ask the author through the contact page on Sienna's website. In the steps below, the CDN option uses the current version, as Sienna's own install snippet does, and the self-hosted option uses 2.1.0, because copying the file onto your server is exactly what the newer license file restricts. If the proprietary text is the one that applies, it also covers using the newer versions from the CDN on a commercial site (it speaks of using the software "for any commercial purpose" and of a license key for each production domain): a business should ask the author before option 1 as well.

Option 1: load it from jsDelivr

Sienna's website gives a <script> tag to paste before </body>. In WordPress it is cleaner to let WordPress add it, so a theme update cannot remove it and you can switch it off from the Plugins screen. This needs WordPress 6.3 or newer.

  1. Connect to your site with your host's file manager or SFTP and open wp-content/plugins.
  2. Create a folder called sienna-cdn and, inside it, a file called sienna-cdn.php with this code:
<?php
/**
 * Plugin Name: Sienna accessibility widget (jsDelivr)
 * Description: Loads the Sienna accessibility widget from the jsDelivr CDN.
 * Version: 1.0
 */

defined( 'ABSPATH' ) || exit;

add_action( 'wp_enqueue_scripts', function () {
  wp_enqueue_script(
    'sienna-accessibility',
    'https://cdn.jsdelivr.net/npm/sienna-accessibility@2.2.333/dist/sienna-accessibility.umd.js',
    array(),
    null,
    array( 'strategy' => 'defer', 'in_footer' => true )
  );
} );

// Checks that jsDelivr serves exactly this file, and puts the button in the bottom-right corner.
add_filter( 'script_loader_tag', function ( $tag, $handle ) {
  if ( 'sienna-accessibility' !== $handle ) {
    return $tag;
  }
  $extra = ' integrity="sha384-0KH2WYpIKGviyNd2L73jN0B5O/d6vMdncUyRe/ZuE1f9wLaExDOAJE6OH5TQRtOQ"'
    . ' crossorigin="anonymous" data-asw-position="bottom-right"';
  return str_replace( ' src=', $extra . ' src=', $tag );
}, 10, 2 );
  1. In your dashboard, go to Plugins → Installed Plugins and click Activate under "Sienna accessibility widget (jsDelivr)".
  2. Open your site in a private window: the round blue button appears in the bottom-right corner.

Three details in that code are deliberate:

We tested exactly this plugin on WordPress 7.1.4 with Twenty Twenty-Five, in Chromium: the script tag came out with the integrity, crossorigin and position attributes, the file passed the integrity check and loaded, the button sat in the bottom-right corner, the Dyslexia Font tool worked and stayed on after a reload, and no cookies were set.

Privacy. jsDelivr's privacy policy says its Usage Data "may include information such as your computer's Internet Protocol address" and that its third-party providers serving cdn.jsdelivr.net "have access to your IP address and other information sent by your web browser". Sienna's FAQ calls jsDelivr GDPR-compliant; whether your privacy notice should mention it is a question for your own privacy policy.

Option 2: host it on your own site

Serving the file yourself keeps the script on your own domain. We use version 2.1.0 here, the last one released with an MIT license file (see above). It is a bigger file, 295 KB or about 63 KB gzipped, because its translations are built in.

  1. Download sienna-accessibility.umd.js version 2.1.0 and its LICENSE file (both from the npm package, via jsDelivr).
  2. Create the folder wp-content/plugins/sienna-local and put both files in it. Keep LICENSE: the MIT license asks that its notice stays with every copy.
  3. In the same folder, create sienna-local.php with this code:
<?php
/**
 * Plugin Name: Sienna accessibility widget (local copy)
 * Description: Loads Sienna 2.1.0 (MIT license) from this plugin's folder.
 * Version: 1.0
 */

defined( 'ABSPATH' ) || exit;

add_action( 'wp_enqueue_scripts', function () {
  wp_enqueue_script(
    'sienna-accessibility',
    plugins_url( 'sienna-accessibility.umd.js', __FILE__ ),
    array(),
    '2.1.0',
    array( 'strategy' => 'defer', 'in_footer' => true )
  );
} );
  1. Activate "Sienna accessibility widget (local copy)" in Plugins → Installed Plugins. If the CDN version is active, deactivate it: two copies would add two buttons.

We tested this one too, on the same site: the script loaded from the plugin's folder, and on an Italian-language page the panel appeared in Italian with no request to any other server. The button sits in the bottom-left corner; to move it, add the script_loader_tag filter from option 1 with only data-asw-position="bottom-right" (we checked that 2.1.0 reads it too).

One thing still leaves your site: when a visitor turns on Dyslexia Font, version 2.1.0 downloads the font from website-widgets.pages.dev, an address written in its code. The MIT license lets you change that address in your copy to a font file on your own server; our guide to adding a dyslexia-friendly font explains where the font comes from and its license.

What Sienna loads in your pages

We read the code of both versions and watched the network in our test site:

2.2.333 from jsDelivr (option 1)2.1.0 on your site (option 2)
The widget scriptFrom cdn.jsdelivr.netFrom your site
Panel translationsOne file from cdn.jsdelivr.net when the page is not in English (it takes the language from your page's lang, which WordPress sets)Built into the script
Dyslexia FontFont from cdn.jsdelivr.net, only when a visitor turns it onFont from website-widgets.pages.dev, only when a visitor turns it on
Visitor choicesIn the browser's local storage (key asw-user-settings). Per its code, only if local storage is unavailable does it fall back to a cookie that lasts 365 days; in our tests no cookies were set.
Links outThe panel footer links to Sienna's website (2.2.333 also links to Sienna's own accessibility statement, not yours); in 2.2.333 the PDF Reader button opens lumiopdf.pages.dev, a partner's site.
AnalyticsWe found no analytics or tracking calls in either file.

The translation and font addresses in 2.2.333 carry no version number, so those files come from the newest package even when you pin the script.

Sienna or a WordPress plugin

Sienna is a good fit if you want a free widget with many languages and you are happy to paste a little code. If you would rather click through a settings page, a WordPress plugin does the same job in a different way. Here is ours, Quicksloth Accessibility Toolbar, next to Sienna, with what each one has that the other doesn't:

Sienna (2.2.333 / 2.1.0)Quicksloth Accessibility Toolbar 0.1.2 (ours)
How you install itCode, as abovePlugins → Add Plugin, from WordPress.org
SettingsCorner and offset through attributes on the script tagA settings page: corner, color, icon and size, which tools to show, pages to skip, hide on phones, an optional skip link
Visitor tools22 / 2025
Only in SiennaOne-click profiles, read-aloud with the browser's speech, a smaller-text button, page structure, image tooltips, and a language menu with more than 50 languages
Only in oursReading mask, invert colors, mute media, underline links, text alignment, highlight on hover, a site map, the skip link and the settings above
Panel languageFollows the page, more than 50 languagesEnglish for now: no translations are published yet
Requests to other serversSee the table aboveNone: script, styles and the dyslexia font come from your site
CookiesOnly as a fallbackNone
Credit on your pagesLink to Sienna in the panel footerNone unless you turn it on
UpdatesYou change the version number yourselfFrom your dashboard, like any plugin
LicenseSee two license textsGPLv2 or later
Track recordPackages on npm since January 2024, very widely usedNew: on WordPress.org since 21 October 2026, no ratings yet

Tool names differ between the two, and similar names may not work in exactly the same way. If you want Sienna as a plugin from the directory, the only one we found is Bauhaus Accessibility (10+ active installations, added on 24 August 2026): it bundles its own copy of Sienna 2.0.1 under the MIT license with the fonts included, and can also load the Brazilian government's VLibras sign-language widget from vlibras.gov.br when you enable it.

What a toolbar does not do

Sienna's own FAQ is clear about this: it "does not rewrite your underlying source code to fix structural issues" and "No overlay can replace a proper structural audit." The same goes for ours. A toolbar changes how a page looks in one visitor's browser; it does not add alt text, fix heading order or label forms. Sienna's FAQ also says it "helps satisfy" frameworks such as the EAA; we make no such claim for ours. Read what a widget can and cannot do for the European Accessibility Act and start with the WordPress accessibility checklist.

An accessibility toolbar helps some visitors; it does not make a website conform to WCAG or to the law. Fix your content and code first.

Questions and answers

Is there an official Sienna plugin for WordPress?
Not that we could find. Sienna's website lists WordPress among the platforms it works on and gives one script tag for all of them. A search for "sienna" in the WordPress.org plugin directory on 4 November 2026 found only Bauhaus Accessibility, by another developer.
Can I paste Sienna's script tag into my theme instead?
You can, for example in a child theme's footer, but a parent theme update or a theme change can drop it, and a caching or optimization plugin may move it. Loading it with wp_enqueue_script from a small plugin, as above, keeps it in one place that you can switch off.
Will a caching plugin break it?
It should not: the widget runs in the visitor's browser and every visitor gets the same HTML. If your optimization plugin delays JavaScript until the first click or scroll, the button appears only after that; exclude sienna-accessibility from the delay. We worked this out from how the code runs and did not test it with each caching plugin.
Does Sienna slow my site down?
Version 2.2.333 adds one deferred script of about 18–21 KB compressed, plus a small translation file on non-English pages. Version 2.1.0 is about 63 KB gzipped. Our toolbar's script is about 9 KB gzipped, with about 2 KB of styles.
How do I remove it?
Deactivate and delete the small plugin you created. Visitors' saved choices stay in their own browsers until they clear them; nothing is stored in your WordPress database.

Try ours

Open the live demo to use every tool on a sample page, or get the plugin from its WordPress.org listing. Comparing other toolbars? See OneTap, Ally, UserWay, accessiBe, AccessibleWP, WP Accessibility Helper and All in One Accessibility.

Sources

All read on 4 November 2026.

Written with AI tools and checked by Quicksloth: Sienna facts taken from its npm package, its code and its website; both plugins above tested on WordPress 7.1.4 with Twenty Twenty-Five in Chromium; our toolbar's facts taken from its code (version 0.1.2). Found something out of date? Tell us at support@quicksloth.dev and we will correct this page.