Title: Handrail Accessibility Widget
Author: ifrederico
Published: <strong>July 6, 2026</strong>
Last modified: July 6, 2026

---

Search plugins

![](https://ps.w.org/handrail-widget/assets/banner-772x250.png?rev=3597253)

![](https://ps.w.org/handrail-widget/assets/icon-256x256.png?rev=3597253)

# Handrail Accessibility Widget

 By [ifrederico](https://profiles.wordpress.org/ifrederico/)

[Download](https://downloads.wordpress.org/plugin/handrail-widget.1.5.2.zip)

 * [Details](https://wordpress.org/plugins/handrail-widget/#description)
 * [Reviews](https://wordpress.org/plugins/handrail-widget/#reviews)
 *  [Installation](https://wordpress.org/plugins/handrail-widget/#installation)
 * [Development](https://wordpress.org/plugins/handrail-widget/#developers)

 [Support](https://wordpress.org/support/plugin/handrail-widget/)

## Description

Handrail is a small floating panel that gives your visitors accessibility controls
they actually want — font sizing, contrast modes, a dyslexia-friendly font, animation
pausing, text-to-speech, and more. Like a real handrail: quiet support that helps
without claiming to fix the building.

Everything the widget needs is bundled with the plugin and served from your own 
site — the widget script, the OpenDyslexic font, and the optional audit engine. 
No external requests, no CDNs, no tracking, no accounts. Configure position, button
size, and language from Settings > Handrail Accessibility Widget.

The widget is free and open source (MIT), with no paid tier. Visitor preferences
are stored locally in their browser and never sent anywhere.

Note: this widget is a complement to — not a substitute for — real accessibility
work (semantic HTML, ARIA, keyboard navigation, alt text). It does not guarantee
compliance with WCAG, ADA, Section 508, or any other standard.

### Source Code

The bundled JavaScript is built from public, human-readable source code:

 * `js/accessible-web-widget.wp.min.js` — the widget itself. Source repository: 
   https://github.com/ifrederico/accessible-web-widget (MIT). Build with `npm install&&
   npm run build` (Rollup); this file is the `dist/accessible-web-widget.wp.min.
   js` output, a WordPress-specific build with no remote fallback URLs.
 * `js/axe.min.js` — axe-core 4.11.1 by Deque Systems, unmodified. Source repository:
   https://github.com/dequelabs/axe-core (MPL-2.0). Loaded only in developer mode(`?
   acc-dev=true`).
 * `fonts/OpenDyslexic3-Regular.*` — OpenDyslexic by Abbie Gonzalez, https://opendyslexic.
   org/ (SIL OFL 1.1; see `fonts/LICENSE.txt`).

## Screenshots

[⌊The Handrail panel open on a page — accessibility profiles, text-to-speech, and
text controls.⌉⌊The Handrail panel open on a page — accessibility profiles, text-
to-speech, and text controls.⌉[

The Handrail panel open on a page — accessibility profiles, text-to-speech, and 
text controls.

## Installation

 1. Upload the `handrail-widget` folder to `/wp-content/plugins/`, or install via the
    Plugins screen.
 2. Activate the plugin through the Plugins screen in WordPress.
 3. Go to Settings > Handrail Accessibility Widget to configure position, size, and
    language.

## FAQ

### Does this make my site WCAG/ADA compliant?

No. No overlay does. Use it as a convenience layer on top of a properly built, accessible
site.

### Where does the script load from?

From your own site. The widget script, the OpenDyslexic font, and the audit engine(
axe-core, used only in developer mode) are all bundled inside the plugin — no external
requests are made.

### Does the plugin collect any data?

No. There is no tracking, no analytics, and no phoning home. Visitor preferences(
such as font size or contrast choices) are stored in their own browser.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Handrail Accessibility Widget” is open source software. The following people have
contributed to this plugin.

Contributors

 *   [ ifrederico ](https://profiles.wordpress.org/ifrederico/)

[Translate “Handrail Accessibility Widget” into your language.](https://translate.wordpress.org/projects/wp-plugins/handrail-widget)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/handrail-widget/), 
check out the [SVN repository](https://plugins.svn.wordpress.org/handrail-widget/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/handrail-widget/)
by [RSS](https://plugins.trac.wordpress.org/log/handrail-widget/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.5.2

 * Site language: the widget now follows the site’s declared language (`<html lang
   >`) instead of defaulting to the visitor’s browser language. A language the visitor
   picks in the widget menu still wins.
 * Stop Animations — and the Seizure Safe profile — now also pauses videos and freezes
   animated GIFs.
 * The Dyslexia Font toggle is now a Readable Font control with three choices: OpenDyslexic,
   Atkinson Hyperlegible, and Lexend. All three fonts are bundled with the plugin
   and served from your own site.
 * Seven new languages: Swedish, Danish, Catalan, Slovenian, Latvian, Greek, and
   Georgian (20 total).
 * Profiles display two per row, halving the menu’s height.
 * The widget works on sites with a strict Content Security Policy.

#### 1.3.5

 * Renamed to Handrail Accessibility Widget.
 * Removed the credit link from the widget panel.
 * The bundled widget script is now a WordPress-specific build that contains no 
   remote fallback URLs, and the readme documents where all bundled source code 
   lives.

#### 1.3.4

 * All assets are now bundled with the plugin and served from your own site: the
   widget script (previously loaded from the jsDelivr CDN), the OpenDyslexic font,
   and the axe-core audit engine used in developer mode. The plugin no longer makes
   any external requests.

#### 1.3.3

 * Completes the developer-mode gating from 1.3.2: a previously saved Annotations
   preference no longer downloads or runs the audit engine (axe-core) on normal 
   visits. The audit engine now loads only with ?acc-dev=true, without exceptions.

#### 1.3.2

 * The background accessibility scan (axe-core) and the violation-count bubble now
   run only in developer mode (?acc-dev=true). Regular visitors no longer download
   or execute the audit engine, making the widget lighter on every page view.
 * Security maintenance for development dependencies (build and test tooling only;
   the shipped widget has no runtime dependencies).

#### 1.3.1

 * Fixes the menu opening on the right side when the widget button is positioned
   bottom-left or top-left; the panel now docks to the button’s edge.
 * Adds an optional menuPosition (‘left’ or ‘right’) setting to override the docking
   side independently of the button position.

#### 1.3.0

 * Bundles widget version 1.3.0: the menu now opens as a full-height side panel 
   with an “Accessibility Options” header, the language picker beside the close 
   button, one-tap profiles as toggle switches, and a roughly 20% wider layout.
 * Improved keyboard and screen-reader behavior: opening the menu focuses the dialog
   itself and the focus trap handles Shift+Tab from the dialog.

#### 1.2.0

 * Bundles widget version 1.2.0: accessibility profiles, page structure navigator,
   text magnifier, mute sounds, Shadow DOM UI, RTL layout with Arabic and Hebrew,
   and pt-BR translations.
 * Regional language codes such as “pt-BR” now resolve to the matching dictionary
   instead of falling back to English.

#### 1.1.4

 * Initial plugin release, bundling widget version 1.1.4.

## Meta

 *  Version **1.5.2**
 *  Last updated **8 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.0 or higher **
 *  Tested up to **7.0**
 *  PHP version ** 7.2 or higher **
 * Tags
 * [a11y](https://wordpress.org/plugins/tags/a11y/)[accessibility](https://wordpress.org/plugins/tags/accessibility/)
   [contrast](https://wordpress.org/plugins/tags/contrast/)[text to speech](https://wordpress.org/plugins/tags/text-to-speech/)
   [widget](https://wordpress.org/plugins/tags/widget/)
 *  [Advanced View](https://wordpress.org/plugins/handrail-widget/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/handrail-widget/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/handrail-widget/reviews/)

## Contributors

 *   [ ifrederico ](https://profiles.wordpress.org/ifrederico/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/handrail-widget/)