Accessibility Widget
Accessibility widget for Sylius 2: font size, contrast, colour-vision filters, blue light filter, reduced animations and skip link. Cookie-free, configurable per channel, readable through the Shop API.
Accessibility Widget
This documentation always describes the latest published version.
Live Demo: Try this and other plugins live — no installation, no risk: demo.markus-michalski.net
Overview
A floating accessibility widget for Sylius 2 shops. Visitors adjust font size, contrast, colour-vision filters, a blue light filter and reduced animations themselves, plus a skip link for keyboard users.
Cookie-free: a visitor's choices live in the browser's
localStorageonly. The plugin sets no cookie and does not send the choices to the server (see Privacy).
This plugin alone does not make a shop accessible. It gives visitors a few aids but cannot fix a theme's own contrast, markup or content. The documentation makes no claim of conformance with any law or standard; an audit of the whole shop is still required.
graph LR
A["Storefront Twig Hook"] --> C["Widget Config Resolver"]
B["Shop API Request"] --> C
C --> D["Admin Channel Settings"]
D --> E["Result"]
E --> F["Twig Render"]
E --> G["JSON Response"]
Documentation
| Page | Content |
|---|---|
| Installation and Operation | Installation, update, uninstall |
| Configuration | Settings per channel, admin grid, practical examples |
| Storefront Integration | Twig hooks, skip link target, theming, behaviour in detail, theme compatibility |
| Shop API / Headless | Endpoint, request/response, error format |
| Extending | Public interfaces, template override, internal classes |
| Privacy | What is stored in the browser, no cookies, no external requests |
| Troubleshooting and FAQ | Common problems, known limitations, frequently asked questions |
| Technical Details | Flow, plugin structure, entity |
Features
| Feature | Description |
|---|---|
| Five tools | Font size (small/normal/large), contrast (normal/high/inverted), colour-vision filters (protanopia, deuteranopia, tritanopia), blue light filter, reduce animations |
| Skip link | A keyboard "Skip to main content" link at the very top of the page, visible only on focus |
| Cookie-free | Settings live in localStorage only, no cookie |
| Per channel | Widget on/off, position and offered tools separately for every channel |
| Dual-mode | The Twig storefront renders the widget; the same per-channel settings are readable through the Shop API |
| No build step | Plain CSS/JavaScript, installed with assets:install |
Requirements
| Requirement | Version | Notes |
|---|---|---|
| PHP | ^8.3 | |
| Sylius | ^2.2 | |
| Symfony | ^7.4 | |
| Database | MySQL 8 or MariaDB | The migration is written in MySQL syntax and deliberately aborts on any other platform; PostgreSQL is not supported |
License
Commercial license: one license covers one Sylius installation (all channels plus its development and staging environments). Redistribution is not allowed, updates are included for 12 months from purchase.
Support
For questions about the license, technical questions or bugs, reach me at support@markus-michalski.net.