The story
What was broken
The more serious problems were in the interaction layer. The widget's logo toggled "Accessibility Mode" - a master on/off switch for all accessibility functions - with nothing to indicate it did anything at all when clicked. Logos are branding. Placing a control that disables the entire widget behind one means users either trigger it accidentally or never find it intentionally. The icon used to snooze the widget had the same problem from the other direction: it read as "close" or "disable," when its actual function was to temporarily hide the accessibility button from the page entirely. Users trying to pause the widget had no reliable way to do it without second-guessing what they were about to turn off.
The absence of onboarding made both problems worse. The widget launched with no introduction - no indication of what it was, what it did, or how to start. For website visitors encountering it for the first time, that's a cold start into a wall of controls. Given the B2B2C model - where website owners install and move on, and their visitors arrive with no prior context - there was no other channel to fill that gap. The widget itself was the only place that introduction could happen.
The visual layer had its own issues. The original icon set had been designed as a coherent system. As features were added over the years, new icons from different sources were placed alongside the originals - different styles, different stroke weights, some at incorrect scale. The result was a mixed visual language with no consistent logic. For a user relying on fast shape recognition rather than reading, that inconsistency adds friction at exactly the wrong moment. On top of that, some controls gave feedback when used while others stayed silent, with no pattern to explain why.

What I decided and why
The logo toggle was the clearest fix in the audit. The logo itself was redundant in the header - it already existed as a text link in the footer. Removing it and relocating the Accessibility Mode toggle to the footer freed the top of the widget for a clearly labeled toggle with proper screen reader description. Same function, placed where it made sense, labeled so it couldn't be missed.
The snooze function got a labeled button and was repositioned alongside related controls. The onboarding banner was designed with a manual dismiss and a session-based flag for returning users.
For the icon system, the right call was to replace everything - original icons included - with a properly designed, pre-made system built to scale. One that provides consistent icons for every existing feature and any planned ones, with uniform sizing, stroke weight, and style throughout. The trade-off was a moderate redesign effort for a meaningfully cleaner result - faster scanning, no visual noise, and a system the product could actually grow with.
Every recommendation was benchmarked against competing solutions and validated with real users to verify the findings were genuine gaps, not personal preference.
What the work recommended
A full set of specific, actionable changes across both clusters - interaction clarity and visual consistency - with before/after design work, WCAG references, and implementation notes. Each recommendation stood on its own. Some were quick. Some required more effort. All of them were grounded in how the actual users of this product experienced it.








