Accessibility Widget: Troubleshooting and FAQ
Accessibility widget for Sylius - common problems with symptom/check/solution, known limitations, frequently asked questions
Accessibility Widget: Troubleshooting and FAQ
Live Demo: Try this and other plugins live — no installation, no risk: demo.markus-michalski.net
Troubleshooting
The widget does not appear on any page
- Check: Does the channel have an enabled row in the admin? Is at least one tool switched on?
- Solution: Create the row under MMKreativ Plugins → Accessibility widget and enable "Show the accessibility widget on this channel". If all five tools are off, no floating button appears on purpose - only the skip link, if it is on.
The skip link is not visible
- Check: Is the "Skip-to-content link" setting switched on for the channel? Do you press Tab right after the page has loaded?
- Solution: The link is visible only on keyboard focus on purpose and is the first focusable element of the page. If it is on but still missing, the theme replaces the hook slot
sylius_shop.base.header(see below).
The admin page "Accessibility widget" shows a server error
- Check: Has
bin/console mmd:accessibility:setup(ordoctrine:migrations:migrate) been run? - Solution: Run the setup command. On the storefront nothing bad happens in this case: the settings are read there inside a try/catch, a database error is only logged as a warning (Monolog channel
mmd_accessibility) and the widget stays invisible.
After a theme change the widget is gone although the channel is enabled
- Check: Does the new theme still render the hook slots
sylius_shop.base#javascripts,#stylesheets,.headerand.offcanvas? - Solution: A theme that replaces these slots has to call the plugin templates itself (see Storefront Integration).
Colour filters shift a sticky header or a banner
- Check: Has custom CSS accidentally applied the filter to a wrapper element instead of
<html>? - Solution: The plugin's filters deliberately sit on
<html>; your own filter on a wrapper creates a new containing block forposition: fixed.
Known limitations
- MySQL/MariaDB only. The migration is written in MySQL syntax and deliberately aborts on other databases.
- Strict Content Security Policy. The colour filters are printed as an inline
<style>becauseurl('#id')from an external stylesheet cannot reach the SVG filters; a strict CSP needs a nonce or hash for it. - Colour filters are an approximation. They are fixed colour matrices, not individually calculated corrections.
- One filter property. Contrast and colour filter share the CSS property
filteron<html>; the plugin combines both, afilterof your own on<html>from the theme would override them.
FAQ
General
Does the widget set cookies? No, all settings live in the browser's localStorage (see Privacy).
Does the plugin make the shop accessible or legally compliant automatically? No. It offers visitors aids (skip link, contrast, font size, colour filters, blue light filter, reduced animations) but replaces neither changes to the theme nor a full audit.
Configuration
Can I show the widget on only one of several channels? Yes, the setting is per channel; a channel without a row shows nothing.
What happens to a visitor's saved choice if I disable a tool later? As long as the visitor does not use any control of the widget, the stored value stays untouched in localStorage but is not applied. As soon as the visitor uses a control or chooses "Reset all settings", the widget rewrites the storage and the values for tools that are no longer offered are lost. If you enable the tool again later, the old choice therefore applies only if the visitor has not operated the widget in the meantime.
Compatibility
Does the widget work with every theme? Only if the theme still renders the four Twig hook slots from Storefront Integration.
Does the widget work headless? Yes, through the Shop API; the rendering itself has to be done by the headless storefront.