D2i Accessibility Toolkit

Description

D2i Accessibility Toolkit injects a floating accessibility panel into the front-end of any WordPress site. Visitors can activate assistive adjustments in a single click without needing to change their browser or operating system settings.

Important notice: This plugin helps users customise their browsing experience. It does not automatically make your website fully compliant with WCAG, ADA, Section 508, or EN 301 549. Website owners remain responsible for ensuring their content (semantic HTML, image alt text, captions, heading structure, and color contrast in their own designs) meets applicable standards.

Features

  • Contrast modes — Dark, Light, High Contrast (cycle through)
  • Highlight Links — high-visibility outlines and backgrounds on all links
  • Bigger Text — 100 % 120 % 140 % 160 % 180 % 200 % (rem-based, reflows correctly)
  • Text Spacing — applies WCAG 1.4.12 exact values (line-height 1.5, letter-spacing 0.12 em, word-spacing 0.16 em, paragraph spacing 2 em)
  • Pause Animations — stops CSS animations/transitions; pauses <video autoplay>; respects prefers-reduced-motion automatically
  • Hide Images — hides img/picture/SVG; injects alt text as visible text nodes
  • Dyslexia Friendly — applies OpenDyslexic font (bundled locally, no CDN), increases line-height and letter-spacing
  • Big Cursor — 64 px white or black cursor SVG, locally bundled
  • Line Height — Default 1.5 1.75 2.0 2.5
  • Text Alignment — Default Left Centre Right (justify excluded per WCAG 1.4.8)
  • Reset All — one click restores defaults, clears LocalStorage

Compliance support

The widget provides user-facing adjustments that support meeting:

  • WCAG 2.1 Level AA (all applicable SCs)
  • WCAG 2.2 new SCs (2.4.11 Focus Not Obscured, 2.5.8 Target Size ≥ 44 × 44 px, 3.2.6 Consistent Help)
  • ADA Title II / III
  • Section 508 Refresh
  • EN 301 549

Privacy

  • No external requests — all fonts, cursors, and icons are bundled locally
  • No tracking, no analytics, no phone-home
  • User preferences are stored in browser LocalStorage only — no cookies, no database writes

Widget accessibility

The widget itself is fully accessible:

  • All controls are semantic <button> elements
  • Color contrast ≥ 4.5:1 within the widget
  • Touch targets ≥ 44 × 44 px
  • Keyboard navigable; focus trapped while panel is open; Escape to close
  • Full ARIA: role="dialog", aria-modal, aria-labelledby, aria-pressed, aria-expanded, aria-live
  • Tested with NVDA, JAWS, VoiceOver, TalkBack
  • Widget is never affected by its own filters (invert/saturation are counter-filtered on the widget container)

Screenshots

  • Widget trigger button (bottom-right, default position)
  • Open accessibility panel showing all feature tiles
  • High-contrast mode active
  • Admin settings page
  • Statement generator

Installation

  1. Upload the d2i-accessibility-toolkit folder to /wp-content/plugins/
  2. Activate the plugin from Plugins Installed Plugins
  3. Go to Settings D2i Accessibility to configure the widget

FAQ

Where does the OpenDyslexic font come from?

OpenDyslexic is an open-source font licensed under the SIL Open Font Licence. OpenDyslexic-Regular.woff2 and OpenDyslexic-Bold.woff2 are downloaded from opendyslexic.org and bundled in the public/fonts/ directory — no CDN or external request is made.

Does this plugin make my site WCAG compliant?

No. Accessibility overlays and toolkits are a supplemental aid, not a substitute for accessible design and content. You must still ensure your site’s HTML is semantic, images have alt text, videos have captions, and your color scheme meets contrast requirements.

Where are user preferences stored?

Browser LocalStorage under the key d2i_a11y_user_prefs. No data is sent to a server.

Is this plugin GDPR-friendly?

Yes. It makes no external requests, sets no cookies, and stores no personal data on the server.

Reviews

There are no reviews for this plugin.

Contributors & Developers

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

Contributors

Changelog

1.0.0

  • Initial release