Services · By framework
A Chatbot Audit for the Widget That Interrupts Everyone
For the team whose support or sales chat is a third-party widget, and who wants to know what it does to visitors who never asked for it.
What We Keep Finding
Chat widgets are guests that act like owners. They load late, plant a launcher over your content, sometimes grab focus on arrival, and open panels that hold the keyboard with no way out. New messages arrive announced loudly, or not at all. Both are wrong, and the middle setting has a name, because a live region can be told to interrupt or to wait, and told to read the whole message or only the part that changed.
The keyboard question is more forgiving than most people think, and the answer surprises teams in a useful direction. A panel that needs Escape to release focus is not automatically a failure. The rule allows an exit that needs an unusual key, as long as the user is told what that key is. So "press Escape to leave the chat" turns a failure into a pass. What has no defense is a panel with no exit and no instructions, and that is the version we keep finding.
Here is why it is worth caring even though the widget is not yours. Keyboard traps are one of a small handful of rules that apply to everything on the page, including content you never chose to rely on. A trapping chat widget does not just fail its own corner. It stops the whole page conforming, at any level, no matter how good the rest of your work is. Third-party does not mean out of scope. It means somebody else's code is holding your page's result.
The focus-ring question is worth getting right too, because it is usually overclaimed. The rule at the level you are being held to says no part of the focused control may be entirely hidden. A launcher that partly overlaps a focused link passes. A launcher that sits fully on top of it does not. We test to the rule rather than to the stricter version, so you do not spend a sprint on something nobody is asking for.
Because the widget is third-party, the audit's real product is proof. Precise, dated evidence of what it does inside your pages, ready to send the vendor, plus every fix your own configuration allows today.
What We Check
- Test the launcher for reach, label, and whether it entirely hides anything that has focus
- Open, use, and leave the chat by keyboard alone, and check whether the exit is stated anywhere
- Check message arrival at both extremes, interrupting and silent, and what the live region is set to
- Verify focus returns somewhere sensible in your page when the chat closes
- Separate the fixes your configuration allows from the behavior only the vendor can change
What You Get
Every service on this site runs the same three-pass engine: an automated scan, an expert review of all 55 WCAG 2.2 A and AA rules, and a hands-on session with a professional blind screen-reader user. You get one report with every finding screenshotted, ranked by user impact, and linked to its fix. Your team fixes, we verify: the re-audit is half price within 3 months.
The format is not a mystery either. Read the sample report before you spend anything.
The Honest Limit
One honest limit, and one route out that is better than waiting on a vendor. We cannot patch a widget we do not own. What you get is dated evidence of its behavior inside your pages, which vendors take a great deal more seriously than a vague complaint, plus every fix your own configuration allows. If the vendor will not move, the standard gives you a second option. You publish a statement saying your page would conform if the uncontrolled part were removed, naming that part so users can recognize it. That is an honest public position and we will write it with you.
What It Costs
Rapid Audit: $499, up to 10 pages you pick, report in 5 business days. Standard Audit: $1,499, up to 25 pages in 10 business days. Flat rates, no discovery calls, and a real blind screen-reader user on every engagement. Pick your pages. We bring the humans.
Worth Reading Next
Related on this site
Guides, checklists, tools, and terms that go with this service.