idioma.chat

Accessibility Conformance Report

Voluntary Product Accessibility Template (VPAT® 2.5) · WCAG 2.1 / 2.2 Level AA (selected AAA) · Section 508 · EN 301 549 · Effective: May 30, 2026 · GabaNode Lab, LLC

Summary: The Idioma platform — translation ribbon plus inline document viewer (Document Reader) — achieves 30 of 30 criteria Supports against WCAG 2.1 Level AA and selected 2.2 AA / AAA criteria. It is designed to be deployed on government websites that must comply with Section 508 of the Rehabilitation Act, ADA Title II, EN 301 549, and agency-specific web accessibility standards. Continuous regression coverage is provided by an automated axe-core sweep (npm run test:a11y).

Product Description

The Idioma platform is a JavaScript-based web accessibility toolset embedded as a single script tag on government websites. It has two surfaces, both covered by this report:

  • Translation Ribbon — a floating globe control that, when activated, displays a language selector and translates the host page's content into 100+ languages.
  • Document Reader (Inline Document Viewer) — intercepts links to PDF documents and renders them as semantic, translatable, accessible HTML inside a modal dialog. Performs OCR on scanned PDFs, recovers hyperlinks, generates alt text for figures, detects and links footnotes / page references / table of contents, preserves inline typography (sup/sub/bold/italic), and ships with four built-in themes (dark, light, sepia, high-contrast) plus a dyslexia-friendly font option.

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, n / p / g / G / ? shortcut keys)
  • Color contrast analysis using WCAG contrast ratio calculations — ratios documented inline in the stylesheet at every themed surface
  • Screen reader compatibility review (NVDA on Windows, VoiceOver on macOS, JAWS on Windows)
  • Automated axe-core sweep over a representative corpus of fixtures (tables with merged cells, multi-column reading, footnote-bearing docs, scanned PDFs, figure-heavy reports, real-world government agendas / bills) — CI-enforced, zero serious or critical violations
  • OS-level preference verification (prefers-reduced-motion, prefers-color-scheme, forced-colors / Windows High Contrast Mode)

WCAG 2.1 Conformance Table

CriterionLevelConformanceNotes
1.1.1 Non-text ContentASupportsThe globe icon has aria-label. All interactive elements have accessible text. Document figures rendered by the Document Reader carry alt text from the source caption when present, or a vision-model-generated description, or are flagged as decorative when small / repeated / in a header band.
1.3.1 Info & RelationshipsASupportsWidget uses semantic HTML. Dropdowns are <select> elements with <label> associations. Document Reader output uses semantic tags throughout (h1-h6, ul/ol, table/th/td/thead/tbody with scope and rowspan/colspan, figure/figcaption) plus DPUB-ARIA roles (doc-pagebreak, doc-footnote, doc-noteref, doc-backlink, doc-pageref, doc-toc) where the document structure supports them.
1.3.2 Meaningful SequenceASupportsDocument Reader reading order is computed from page geometry: paragraphs in single-column docs read top-down; multi-column pages are detected via a vertical-gutter test and interleaved column-by-column in correct reading order.
1.3.3 Sensory CharacteristicsASupportsInstructions do not rely solely on color or position.
1.4.1 Use of ColorASupportsColor is not the only means of conveying information. Icons and text labels are used. Link affordances combine color with underline; the warning role uses both icon and text.
1.4.3 Contrast (Minimum)AASupportsAll text elements meet or exceed a 4.5:1 contrast ratio. Computed ratios are documented inline in the stylesheet at each themed surface; dark theme body text reaches 14:1.
1.4.4 Resize TextAASupportsWidget layout is fluid and responds correctly to browser zoom up to 200% without horizontal scroll.
1.4.6 Contrast (Enhanced)AAASupportsHigh-Contrast theme (data-theme="hc") achieves 21:1 (white on black). Sepia theme achieves ~9.4:1 — both pass AAA.
1.4.10 ReflowAASupportsThe Document Reader dialog and its content reflow without loss of information at 320 CSS pixels (default mobile width).
1.4.11 Non-text ContrastAASupportsAll interactive UI components (buttons, link bars, form controls) and meaningful graphical components have ≥3:1 contrast against adjacent colors.
1.4.12 Text SpacingAASupportsContent remains readable with user-overridden line-height 1.5×, letter-spacing 0.12×, word-spacing 0.16×, paragraph-spacing 2×. Inline-runs/abbr/pageref rendering uses inline elements so spacing overrides apply uniformly.
1.4.13 Content on Hover or FocusAASupportsabbr-tooltip content is browser-native (dismissable via Escape, persistent until pointer moves, hoverable). All hover/focus content is reachable by keyboard.
2.1.1 KeyboardASupportsAll controls are keyboard-accessible. The Focus dialog places focus on the Read Document button on open and returns focus to the trigger on close. Document Reader shortcuts: n/p (next/previous heading), g/Shift+G (top/bottom), ? (shortcuts help), Esc (close). A full Tab-cycle focus trap is active within the dialog.
2.1.2 No Keyboard TrapASupportsUsers can navigate out of any widget component using the keyboard. Focus trap in the dialog is dismissable via Escape.
2.3.3 Animation from InteractionsAAASupports@media (prefers-reduced-motion: reduce) disables loading-spinner rotations.
2.4.1 Bypass BlocksASupportsA "Skip to document content" link is the first focusable element inside the Focus dialog and jumps past the dialog header into the document body.
2.4.3 Focus OrderASupportsTab order follows the logical document order within the widget. The Focus dialog skip link → header buttons → body content → footer matches the visual order.
2.4.4 Link Purpose (In Context)ASupportsRecovered hyperlinks carry visible anchor text derived from the source PDF's annotation rect contents. In-document references — footnote markers (doc-noteref), page references (doc-pageref), figure/table cross-references ("Figure 3.2" / "Table 1"), and TOC entries — all include their target in the href and label so the link's purpose is clear from text alone. Print stylesheet emits each external link's URL in parens for paper readers.
2.4.5 Multiple WaysAASupportsDocuments are navigable via scroll, keyboard heading-jump (n/p), the detected Table of Contents (role="doc-toc", each entry a clickable link to its heading), in-line page references (doc-pageref), figure/table cross-references, and footnote round-trips (noteref ↔ backlink).
2.4.6 Headings & LabelsAASupportsAll interactive controls have descriptive labels. Document headings detected by the OCR pipeline are emitted as h1-h6 with stable anchor IDs.
2.4.7 Focus VisibleAASupportsFocus indicators are visible on all interactive elements. High-Contrast theme uses a 3px system Highlight outline; forced-colors mode maps to system Highlight.
2.5.8 Target Size (Minimum)AASupportsAll interactive targets in the Focus dialog (close, Read Document, Load More, refine controls) are ≥24×24 CSS px.
3.1.1 Language of PageASupportsThe widget updates the document lang attribute when a language is selected, and stamps it on the Focus dialog root when translating.
3.1.2 Language of PartsAASupportsPer-block BCP-47 detection: a stop-word scoring pass over the rendered document text identifies paragraphs / headings / lists whose dominant language differs from the document default (e.g. a Spanish quote inside an English minute) and stamps lang="es" on those blocks. Screen readers then switch voices appropriately. Languages currently detected: English, Spanish, French, Vietnamese. Zero false positives observed on English-only fixture set.
3.1.4 AbbreviationsAAASupportsA curated dictionary of ~140 federal, state, and local government acronyms (ADA, WCAG, CFR, USC, DOJ, EPA, NIST, OSHA, SNAP, WIC, FEMA, USDA, USGS, USPS, NOAA, FAFSA, EITC, LIHEAP, …) wraps the first occurrence per block in <abbr title="…">.
3.2.2 On InputASupportsNo unexpected context changes occur when the user selects a language. Theme/font preference changes update styling in place.
3.3.1 Error IdentificationASupportsTranslation errors and document-processing errors surface a visible, plain-text error message. Low-confidence OCR pages render a role="note" warning.
4.1.1 ParsingASupportsWidget generates valid HTML. Anchor IDs are guaranteed unique per document via a slug + numeric suffix.
4.1.2 Name, Role, ValueASupportsAll UI components use native HTML elements with correct role and state attributes. The Focus dialog uses role="dialog" aria-modal="true" aria-labelledby. DPUB-ARIA roles emitted where the document structure supports them: doc-pagebreak on page boundaries, doc-footnote / doc-noteref / doc-backlink on footnote round-trips, doc-pageref on inline page references, doc-toc on detected tables of contents (with each entry a clickable in-document link), doc-bibliography on References / Works Cited sections, role="img" + aria-label on figure description cards.
4.1.3 Status MessagesAASupportsProgressive page loading and translation progress use role="status" aria-live="polite" so screen-reader users hear updates without losing focus.

Known Limitations & Roadmap

  • Screen reader announcements: When a page is translated, an aria-live announcement 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 inherited from the host page and is not within the widget's control.
  • Footnote markers in untagged scanned PDFs: Azure Document Intelligence occasionally substitutes a footnote sup glyph (e.g. "²") with a similar punctuation character ("-", """, "®") during OCR. Where the source is a digital PDF, the inline-runs pass cross-references pdf.js glyph data and salvages the marker; where the source is image-only, the corrupted character is rendered as-is.
  • Mathematical notation (roadmap): Inline superscript/subscript chemistry and Pythagorean-style equations render correctly via <sup>/<sub>. Full equation parsing into MathML (radicals, summations, fractions) is on the roadmap.
  • Tagged-PDF StructTree (roadmap): When a source PDF contains an authored /StructTreeRoot, the widget will be able to use that structure directly and bypass OCR-based inference entirely — eliminating the residual Azure-marker substitution above. Currently planned, not yet shipped.
  • Per-paragraph language detection — shipped: Stop-word scoring identifies blocks whose dominant language differs from the document default and stamps lang=\"…\" on them so screen-reader voice switches. Currently supports English, Spanish, French, Vietnamese. Additional languages (Mandarin, Arabic, Korean, Tagalog) are on the roadmap as the dictionary expands.

Contact

To report an accessibility issue or request a manual accessibility review for your agency's deployment:
admin@gabanodelab.com

We commit to responding to accessibility reports within 5 business days and resolving critical issues within 30 days.