Product Information
| Product Name | Velaro Platform — Visitor Chat Widget |
| Product Version | v11 (velaro-frame, releasing May 2026) |
| Report Date | May 2026 |
| Report Version | 2.0 |
| VPAT Template | VPAT 2.5 WCAG Edition |
| Primary Contact | accessibility@velaro.com |
| Organization | Velaro, Inc., 1 West Elm Street, Suite 300, Conshohocken, PA 19428 |
Applicable Standards
This report covers conformance with the following standards and versions:
- WCAG 2.0 Level AA — Fully covered. WCAG 2.1 is backward compatible with WCAG 2.0; all 2.0 Level AA criteria are met.
- WCAG 2.1 Level AA — Primary standard for this report. All Level A and Level AA criteria are documented in the tables below.
- WCAG 2.2 Level AA — Fully covered. All new WCAG 2.2 Level AA criteria are documented in a dedicated conformance table below.
- Section 508 — 36 CFR Part 1194, as revised in 2017, incorporating WCAG 2.0 Level AA by reference.
- EN 301 549 — v3.2.1 (2021-03), incorporating WCAG 2.1 Level AA by reference.
This report reflects the v11 release of the Velaro visitor chat widget (velaro-frame), shipping May 2026. All previously identified accessibility gaps (P1–P3) were resolved in this release. The Velaro Platform visitor widget and the LiveFluence Edition visitor widget share the same velaro-frame codebase; conformance status is identical across both product lines.
WCAG 2.1 Level A — Conformance Table
Assessment was performed through manual source code inspection of all 22 visitor-facing React components in velaro-frame/src/components/ and the primary stylesheet, incorporating all fixes from the May 2026 v11 code review.
| Criteria | Level | Status | Notes |
|---|---|---|---|
| 1.1.1 Non-text Content | A | Supports | Decorative images marked role="presentation". Interactive image buttons carry descriptive alt text. Agent headshot images carry descriptive alt. |
| 1.2.1 Audio-only and Video-only (Prerecorded) | A | Not Applicable | No prerecorded audio or video content is present in the visitor chat widget. |
| 1.2.2 Captions (Prerecorded) | A | Not Applicable | No prerecorded video with audio is present. |
| 1.2.3 Audio Description or Media Alternative (Prerecorded) | A | Not Applicable | No prerecorded video is present. |
| 1.3.1 Info and Relationships | A | Supports | Semantic HTML throughout; form labels linked via htmlFor. Message list uses role="log" appropriately. Form buttons use semantic <button> elements. |
| 1.3.2 Meaningful Sequence | A | Supports | Visual reading order and DOM order are consistent. Messenger renders in a single column with logical top-to-bottom flow. |
| 1.3.3 Sensory Characteristics | A | Supports | Instructions and state changes do not rely solely on sensory characteristics. Message failure state communicates via text in addition to visual indicators. |
| 1.4.1 Use of Color | A | Supports | Color is not the only means of conveying information. Error states include text labels in addition to color indicators. |
| 1.4.2 Audio Control | A | Not Applicable | No auto-playing audio is present in the visitor widget. |
| 2.1.1 Keyboard | A | Supports | All controls are keyboard-operable. Tab, Enter, and Space key events are handled across all interactive controls including header menu items, star rating, and message rating controls. Deprecated keyCode usage replaced with e.key throughout. |
| 2.1.2 No Keyboard Trap | A | Supports | Widget is closeable via keyboard. Focus returns to the triggering element on the host page upon close. No focus traps prevent users from leaving the widget. |
| 2.1.4 Character Key Shortcuts | A | Not Applicable | No single-character key shortcuts are implemented. |
| 2.2.1 Timing Adjustable | A | Not Applicable | No time limits are imposed on user interactions within the chat. |
| 2.2.2 Pause, Stop, Hide | A | Supports | Queue screen wait time updates dynamically. aria-live="off" is applied to the time display, preventing unnecessary screen reader announcements. |
| 2.3.1 Three Flashes or Below Threshold | A | Supports | No animated content that flashes more than 3 times per second was identified. |
| 2.4.1 Bypass Blocks | A | Supports | A visually hidden <h1 class="velaro-skip">Live Chat</h1> provides a landmark heading. The widget is a single-purpose embedded component; internal skip navigation is not required. |
| 2.4.2 Page Titled | A | Not Applicable | The widget loads inside a hidden container iframe (aria-hidden="true", tabIndex=-1). This iframe is never exposed to assistive technology or navigated to by users. The criterion applies to pages and navigable documents; it does not apply to this hidden host iframe. The host page title is the responsibility of the site owner. |
| 2.4.3 Focus Order | A | Supports | Tab order follows logical DOM order throughout the widget. Interactive elements receive focus in a sequence consistent with the meaning and operability of the content. |
| 2.4.4 Link Purpose (In Context) | A | Supports | All buttons carry explicit aria-label values (e.g., "Minimize Live Chat", "Close Chat", "Send Message", "Upload File"). ARIA labels provide sufficient context for all interactive controls. |
| 2.5.1 Pointer Gestures | A | Supports | No multi-point or path-based gestures are required. All interactions use single-point activation (click/tap). |
| 2.5.2 Pointer Cancellation | A | Supports | Primary functionality is activated on pointer up (click completion), not on pointer down. |
| 2.5.3 Label in Name | A | Supports | All buttons have aria-label values that match or contain their visible text. ARIA labels and roles applied to all custom controls. |
| 2.5.4 Motion Actuation | A | Not Applicable | No device motion or orientation-based functionality was identified. |
| 3.1.1 Language of Page | A | Supports | The velaro-frame widget shell declares lang="en" on the root <html> element. The language of widget UI text (labels, buttons, system messages) is English. |
| 3.2.1 On Focus | A | Supports | No context change occurs on focus alone. |
| 3.2.2 On Input | A | Supports | No unexpected context changes occur when users type. Sending a message requires explicit button click or Enter key press. |
| 3.3.1 Error Identification | A | Supports | EmailModal renders a FieldError component for invalid email input with aria-invalid on the input and aria-describedby linking the input to the error message. File upload errors communicated via browser alert() dialogs, which are natively accessible. |
| 3.3.2 Labels or Instructions | A | Supports | ChatMessageBox uses aria-label="message". EmailModal <label> is linked to its input via htmlFor/id. Star rating uses role="radiogroup" with per-star aria-label values. |
| 4.1.1 Parsing | A | Supports | Per the September 2023 WCAG 2.1 errata update, this criterion is always considered supported. |
| 4.1.2 Name, Role, Value | A | Supports | ARIA labels, roles, and state attributes applied to all custom controls. Star rating uses role="radiogroup" / role="radio" / aria-checked. Message rating uses role="group" / role="button" / aria-pressed. |
WCAG 2.1 Level AA — Conformance Table
| Criteria | Level | Status | Notes |
|---|---|---|---|
| 1.2.4 Captions (Live) | AA | Not Applicable | Live voice/video calling is out of scope. This VPAT covers visitor-facing text chat only. |
| 1.2.5 Audio Description (Prerecorded) | AA | Not Applicable | No prerecorded video content is present in the visitor chat widget. |
| 1.3.4 Orientation | AA | Supports | The widget renders correctly in both portrait and landscape orientations on mobile. No orientation restriction is present in code. |
| 1.3.5 Identify Input Purpose | AA | Supports | EmailModal email input uses type="email", enabling browsers and assistive technologies to infer input purpose via autocomplete. Pre-chat survey inputs use appropriate type values. |
| 1.4.3 Contrast (Minimum) | AA | Supports | Default theme meets the 4.5:1 minimum contrast ratio. Customer-applied custom color themes are outside Velaro's control; customers are responsible for verifying contrast compliance for any custom theme. |
| 1.4.4 Resize Text | AA | Supports | Widget reflows correctly at 200% browser zoom without loss of content or functionality. Flexible layout units are used throughout. |
| 1.4.5 Images of Text | AA | Supports | No images of text were identified. All UI text is rendered as HTML text. |
| 1.4.10 Reflow | AA | Supports | CSS includes a responsive breakpoint at 600px. The widget switches to full-screen mode on mobile viewports. Content reflows without horizontal scrolling at 320px equivalent width. |
| 1.4.11 Non-text Contrast | AA | Supports | Focus indicators use 3px solid #005fcc, meeting the 3:1 non-text contrast requirement applied to all interactive controls. |
| 1.4.12 Text Spacing | AA | Supports | No inline styles override letter-spacing, word-spacing, line-height, or paragraph spacing in ways that would prevent user stylesheet overrides. |
| 1.4.13 Content on Hover or Focus | AA | Supports | Message rating controls (thumbs up/down), when enabled by site configuration, are persistently visible and keyboard accessible. Controls carry correct aria-pressed state and respond to Enter/Space key events. When disabled, controls are not rendered in the DOM. |
| 2.4.5 Multiple Ways | AA | Not Applicable | The visitor widget is a single-purpose real-time chat interface. Multiple navigation paths to the same content are not applicable. |
| 2.4.6 Headings and Labels | AA | Supports | A hidden <h1>Live Chat</h1> provides a top-level heading. ActionCard uses <h3> for card titles. Form inputs are associated with labels. Modal dialogs include programmatic headings. |
| 2.4.7 Focus Visible | AA | Supports | :focus-visible rings (3px solid #005fcc) applied to all interactive controls. Global outline: none overrides removed from CSS. |
| 3.1.2 Language of Parts | AA | Not Applicable | Multi-language content within a chat session is not product-controlled. The widget renders visitor and agent text as provided by the session participants. |
| 3.2.3 Consistent Navigation | AA | Supports | Header controls (minimize, close, menu) appear consistently across all widget views. |
| 3.2.4 Consistent Identification | AA | Supports | Repeated components (Send button, Upload button, Close button) use consistent labels and icons across all views. |
| 3.3.3 Error Suggestion | AA | Supports | EmailModal provides a FieldError component linked via aria-describedby for email validation feedback. Error message text is customer-configurable via EmailModalValidationText in the site configuration. |
| 3.3.4 Error Prevention (Legal, Financial, Data) | AA | Not Applicable | The visitor chat widget does not involve legal, financial, or irreversible data transactions. |
| 4.1.3 Status Messages | AA | Supports | Status messages (new messages, queue position updates, send errors) use aria-live regions and role="log" so they are announced by screen readers without requiring focus movement. |
WCAG 2.2 Level AA — Conformance Table
WCAG 2.2 (W3C Recommendation, October 2023) adds nine new success criteria on top of WCAG 2.1. The Velaro chat widget conforms to all WCAG 2.2 Level AA criteria as documented below.
| Criteria | Level | Status | Notes |
|---|---|---|---|
| 2.4.11 Focus Not Obscured (Minimum) | AA | Supports | The widget header and message composer footer reserve internal scroll margin so keyboard-focused content within the conversation pane is never visually obscured. |
| 2.5.7 Dragging Movements | AA | Not Applicable | No dragging interactions are required to use the widget. |
| 2.5.8 Target Size (Minimum) | AA | Supports | The launcher button, close button, send button, and all in-widget controls meet or exceed the 24×24 CSS pixel minimum target size. |
| 3.2.6 Consistent Help | A | Not Applicable | The widget is a single-purpose embedded component; there are no repeated views in which a help mechanism could be placed inconsistently. |
| 3.3.7 Redundant Entry | A | Supports | Pre-chat form values (name, email) are not requested again later in the same session. |
| 3.3.8 Accessible Authentication (Minimum) | AA | Not Applicable | The widget does not impose any authentication flow on the visitor. No CAPTCHA, transcription test, or other cognitive function test is present. |
Known Gaps
No open accessibility issues as of this report date. This VPAT will be updated if new issues are identified following the v11 release.
Remarks and Explanations
Shared Widget Engine
The Velaro Platform visitor chat widget and the LiveFluence Edition visitor chat widget are built on the same underlying widget engine (velaro-frame). Conformance status, known gaps, and remediation timelines are identical. Changes to the shared codebase are reflected in both product VPATs simultaneously.
Customer Theming
The widget supports customer-defined color themes. Velaro's default theme meets WCAG 2.1 AA contrast requirements. Customers who apply custom color schemes are responsible for verifying that their chosen colors meet contrast requirements.
Host Page Context
The widget is loaded as an embedded component on third-party customer websites. Velaro controls the widget's internal markup and behavior. The accessibility of the surrounding page content is outside Velaro's scope.
Contact
To report an accessibility barrier, request an accommodation, or obtain this document in an alternative format:
- Email: accessibility@velaro.com
- Phone: 800-983-5276