Launcher and controls
- Use native buttons where possible.
- Give icon-only controls accessible names.
- Keep labels stable and specific.
- Provide visible hover, focus, disabled, and open states.
A practical, source-cited checklist for reviewing the launcher, keyboard path, focus, dialog behavior, dynamic messages, lead forms, errors, zoom, mobile use, and fallback contact options.
A website chatbot is more than its message text. The launcher, dialog, controls, focus behavior, status updates, form fields, errors, and fallback contact route all affect whether a visitor can use it. WCAG provides testable accessibility requirements, while the WAI-ARIA Authoring Practices explain interaction patterns for widgets.[1][2]
WAI-ARIA guidance distinguishes focus—the active keyboard location—from selection, and warns against positive tabindex values because they are difficult to maintain.[2] Begin with the chatbot closed. Tab to the launcher, open it, move through every control, enter and edit a message, submit it, reach any error or retry control, and close the panel. Confirm that focus remains visible and returns somewhere predictable.
If the chat is implemented as a modal dialog, compare its behavior with the APG modal-dialog pattern: focus moves inside on open, keyboard focus stays within the modal, Escape closes it, and focus generally returns to the invoking control.[4] Apply that pattern only when the implementation really is modal; a nonmodal panel needs behavior appropriate to its actual interaction model.
Chat replies, typing states, send failures, and lead confirmations are dynamic updates. ARIA Technique ARIA23 describes using role="log" for sequential information such as chat logs and notes that new content is announced while focus remains on the visitor's current task.[3]
W3C's forms tutorial recommends explicit labels, instructions, validation, and understandable feedback.[5] A chatbot that asks for a name, email, phone number, location, or service need still creates a form-like task even when fields appear one question at a time.
Tell visitors why information is needed, distinguish required from optional fields, preserve their entries after an error, and provide a way to correct information before submission. Do not rely on placeholder text as the only label.
Host-page CSS, overlays, sticky headers, zoom, viewport height, and mobile keyboards can change the widget after it leaves a dashboard preview. Test at narrow and wide widths, 200% zoom, text enlargement, light and dark themes, touch, keyboard, and reduced motion. Check that the launcher does not obscure essential content and that the open panel does not place its close or send controls offscreen.
Accessibility is not established by automated scanning alone. Combine machine checks with keyboard testing, assistive-technology testing, visual inspection, and task-based review by people with relevant access needs.
For measurement after launch, read How to Measure AI Chatbot Performance. For broader planning, return to the industries hub.
Bring the host page, expected visitor tasks, target devices, and known constraints to a scoped accessibility review.