Accessibility Conformance Report
Voluntary Product Accessibility Template (VPAT® 2.4) · WCAG 2.1 Level AA · Effective: March 28, 2026 · GabaNode Lab, LLC
Product Description
The Idioma widget is a JavaScript-based web accessibility tool that enables website visitors to translate page content into 100+ languages. It is embedded as a single script tag and renders a floating globe icon that, when activated, displays a language selector dropdown and translation controls.
The widget operates without requiring user accounts, cookies, or any personally identifiable information from website visitors. It is designed to run on existing government websites without modification to layout or content structure.
Evaluation Methodology
- Manual code review of widget HTML, ARIA attributes, and JavaScript event handling
- Keyboard-only navigation testing (Tab, Enter, Escape, Arrow keys)
- Color contrast analysis using WCAG contrast ratio calculations
- Screen reader compatibility review (NVDA on Windows, VoiceOver on macOS)
WCAG 2.1 Conformance Table
| Criterion | Level | Conformance | Notes |
|---|---|---|---|
| 1.1.1 Non-text Content | A | Supports | The globe icon has aria-label. All interactive elements have accessible text. |
| 1.3.1 Info & Relationships | A | Supports | Widget uses semantic HTML. Dropdowns are <select> elements with <label> associations. |
| 1.3.3 Sensory Characteristics | A | Supports | Instructions do not rely solely on color or position. |
| 1.4.1 Use of Color | A | Supports | Color is not the only means of conveying information. Icons and text labels are used. |
| 1.4.3 Contrast (Minimum) | AA | Supports | All text elements meet or exceed a 4.5:1 contrast ratio against widget backgrounds. |
| 1.4.4 Resize Text | AA | Supports | Widget layout is fluid and responds correctly to browser zoom up to 200%. |
| 2.1.1 Keyboard | A | Supports | All controls are keyboard-accessible. The Focus overlay dialog uses requestAnimationFrame to place focus on the first interactive element on open, and returns focus to the trigger button on close. A full Tab-cycle focus trap is active within the dialog. |
| 2.1.2 No Keyboard Trap | A | Supports | Users can navigate out of any widget component using the keyboard without issue. |
| 2.4.3 Focus Order | A | Supports | Tab order follows the logical document order within the widget. |
| 2.4.6 Headings & Labels | AA | Supports | All interactive controls have descriptive labels. |
| 2.4.7 Focus Visible | AA | Supports | Focus indicators are visible on all interactive elements. |
| 3.1.1 Language of Page | A | Supports | The widget updates the document lang attribute when a language is selected. |
| 3.2.2 On Input | A | Supports | No unexpected context changes occur when the user selects a language. |
| 3.3.1 Error Identification | A | Supports | Translation errors surface a visible, plain-text error message to the user. |
| 4.1.1 Parsing | A | Supports | Widget generates valid HTML. No duplicate IDs or unclosed elements. |
| 4.1.2 Name, Role, Value | A | Supports | All UI components use native HTML elements with correct role and state attributes. |
Known Limitations & Roadmap
- Screen reader announcements: When a page is translated, an
aria-liveannouncement is emitted. Some screen readers may announce the new language name with a slight delay depending on DOM mutation timing. This is a known browser/AT behavior, not a widget defect. - Third-party page content: The widget translates content provided by the host page. Accessibility of the translated content structure (e.g., heading levels, table structure) is inhereted from the host page and is not within the widget's control.
Contact
To report an accessibility issue or request a manual accessibility review for your agency's deployment:
accesstreec@gmail.com
We commit to responding to accessibility reports within 5 business days and resolving critical issues within 30 days.