Skip to content
HELiX

VPAT 2.5 — @helixui/library

apps/docs/src/content/docs/accessibility/vpat-25 Click to copy
Copied! apps/docs/src/content/docs/accessibility/vpat-25

This document is the Voluntary Product Accessibility Template (VPAT) 2.5 for @helixui/library, the HELiX healthcare web component library. The format follows the ITI VPAT 2.5 Rev 508 template, the same structure adopted by the U.S. Web Design System (USWDS) for its 44 core components.

HELiX’s conformance posture: WCAG 2.2 Level AAA on its P0 (Tier 1) surface (44 components against 11 criteria — 376 Supports verdicts), with AA baseline across all shipped components. WCAG 2.1 Understanding pages remain cited where WCAG 2.2 carries the criterion forward unchanged.

FieldValue
Product Name@helixui/library
Product Version3.9.0
Report Date2026-05-11
Report Versionv1.0 (Published)
Product DescriptionEnterprise healthcare web component library — framework-agnostic custom elements built on Lit 3.x and the W3C Web Components standard, with a P0 cert surface of 44 components plus ancillary subcomponents. Counts are reproducible from packages/hx-library/custom-elements.json (every shipped hx-* tag) and packages/hx-library/aaa-verdicts.json (the 44 P0 surface). Ships with a three-tier design token system (light, dark, high-contrast) and Drupal CMS integration via Twig templates.
Contact Informationhttps://github.com/bookedsolidtech/helix/issues
NotesThis VPAT covers the published @helixui/library package only. The companion @helixui/tokens (design tokens) and @helixui/react (auto-generated React wrappers) packages are evaluated separately when their conformance evidence is published; they do not inherit per-SC outcomes from this report. @helixui/react wrappers in particular pass through the @helixui/library runtime, so their conformance derives from the underlying library — but the canonical verdict snapshot at packages/hx-library/aaa-verdicts.json only attests the library package.
Evaluation MethodsAutomated testing (axe-core, Vitest browser mode), runtime adopted-stylesheet inspection, design-token contrast regression matrix, manual keyboard / screen-reader review on a per-component basis as the AAA Certification Epic executes.
Evaluator CredentialsHELiX engineering team — internal review. Third-party audit (planned for v1.0) is not yet performed. This VPAT is an internal, voluntary disclosure; it has not been reviewed or signed off by an independent accessibility auditor.

This report covers conformance with the following standards:

StandardIncluded In Report
Web Content Accessibility Guidelines 2.2, Level AYes
Web Content Accessibility Guidelines 2.2, Level AAYes
Web Content Accessibility Guidelines 2.2, Level AAAYes — P0 surface (44 components × 11 criteria)
Revised Section 508 standards (2017), 36 CFR Part 1194Yes — Chapters 3, 4, 5, 6 mapped via WCAG 2.0 Level A and AA
EN 301 549 V3.2.1 (2021-03)Yes — Chapters 9, 10, 11 mapped via WCAG 2.2 Level A and AA

A Level AAA claim is not required by Section 508 or EN 301 549. HELiX’s AAA targeting is voluntary and intended to provide conformance headroom for healthcare and public-sector consumers operating under stricter procurement posture.

The terms used in the conformance columns follow the standard VPAT 2.5 vocabulary, as adopted by USWDS in its VPAT and the broader U.S. federal procurement community:

TermDefinition
SupportsThe functionality of the product has at least one method that meets the criterion without known defects, or meets with equivalent facilitation.
Partially SupportsSome functionality of the product does not meet the criterion. Known defects exist; remediation is in progress.
Does Not SupportThe majority of product functionality does not meet the criterion.
Not ApplicableThe criterion is not relevant to the product.
Not EvaluatedThe product has not been evaluated against this criterion. This is the initial state of any criterion not yet folded into the per-SC table or covered by the formal AAA harness verdict snapshot. Per-component audits convert “Not Evaluated” rows to one of the three conformance verdicts above.

The library asserts WCAG 2.2 AAA conformance on its P0 (Tier 1) surface — 44 components against the 11-criterion AAA harness, producing 376 Supports verdicts (0 Partial, 0 Fail, 109 Not Applicable). The cert is reproducible via pnpm aaa:audit against the canonical aaa-verdicts.json snapshot.

Underlying gates that backstop the cert: contrast.test.ts (design-token contrast regression matrix), forced-colors-runtime.test.ts (forced-colors runtime adoption), and the check-aaa-verdicts.mjs preflight gate that refuses regression in the committed verdicts snapshot.

All Success Criteria are scoped per-component and surfaced in the Per-Component Coverage Matrix.

The Understanding URLs below point to WCAG 2.1; WCAG 2.2 carries these criteria forward unchanged, and the W3C maintains the 2.1 Understanding pages as the canonical reference for them.

Success CriterionConformance LevelRemarks and Explanations
1.1.1 Non-text ContentNot EvaluatedPer-component audit pending. Components that ship icons (hx-icon, hx-icon-button, hx-avatar) require explicit label / aria-label review.
1.2.1 Audio-only and Video-only (Prerecorded)Not ApplicableThe library ships no audio or video components.
1.2.2 Captions (Prerecorded)Not ApplicableThe library ships no audio or video components.
1.2.3 Audio Description or Media Alternative (Prerecorded)Not ApplicableThe library ships no audio or video components.
1.3.1 Info and RelationshipsPartially SupportsForm composition (hx-field, hx-form, hx-field-label, hx-help-text) cross-shadow-boundary association is the dominant per-SC remediation surface.
1.3.2 Meaningful SequenceNot EvaluatedPer-component audit pending.
1.3.3 Sensory CharacteristicsNot EvaluatedPer-component audit pending.
1.4.1 Use of ColorNot EvaluatedValidation styling (hx-text-input, hx-textarea, hx-checkbox, hx-select) requires explicit non-color indicator audit.
1.4.2 Audio ControlNot ApplicableThe library ships no audio components.
2.1.1 KeyboardPartially SupportsInteractive components broadly tested. Outstanding: per-component keyboard-test coverage parity (see AAA Epic Phase 2).
2.1.2 No Keyboard TrapPartially SupportsModal-class components (hx-dialog, hx-drawer, hx-popover) require explicit focus-trap audit per APG.
2.1.4 Character Key ShortcutsNot EvaluatedPer-component audit pending.
2.2.1 Timing AdjustableNot Evaluatedhx-toast auto-dismiss timing requires audit.
2.2.2 Pause, Stop, HideNot Evaluatedhx-carousel, hx-spinner, hx-progress-ring motion-control audit pending.
2.3.1 Three Flashes or Below ThresholdSupportsNo components flash above the threshold. All animated components honour prefers-reduced-motion.
2.4.1 Bypass BlocksNot ApplicablePage-level concern; the library provides composition primitives (hx-side-nav, hx-top-nav) but does not enforce page structure.
2.4.2 Page TitledNot ApplicablePage-level concern outside library scope.
2.4.3 Focus OrderNot EvaluatedPer-component audit pending. Composite components (hx-tabs, hx-radio-group, hx-tree-view) require roving-tabindex audit.
2.4.4 Link Purpose (In Context)Not Evaluatedhx-link, hx-card[hx-href] audit pending.
2.5.1 Pointer GesturesNot Evaluatedhx-slider, hx-color-picker audit pending.
2.5.2 Pointer CancellationNot EvaluatedPer-component audit pending.
2.5.3 Label in NameNot EvaluatedPer-component audit pending.
2.5.4 Motion ActuationNot ApplicableNo motion-actuated functionality in the library.
3.1.1 Language of PageNot ApplicablePage-level concern outside library scope.
3.2.1 On FocusNot EvaluatedPer-component audit pending.
3.2.2 On InputNot EvaluatedPer-component audit pending.
3.3.1 Error IdentificationPartially SupportsForm-error association (hx-field, hx-help-text, hx-text-input validity) is the dominant remediation surface.
3.3.2 Labels or InstructionsPartially SupportsSlotted label/help-text patterns are the dominant remediation surface.
4.1.1 ParsingSupportsAll components emit valid HTML; Lit’s templating prevents malformed output. (Note: WCAG 2.2 obsoletes 4.1.1.)
4.1.2 Name, Role, ValuePartially SupportsCustom-element ARIA contracts are reviewed per-component. The host-canonical ARIA pattern (e.g. hx-select) is the strategic direction.
Success CriterionConformance LevelRemarks and Explanations
1.2.4 Captions (Live)Not ApplicableThe library ships no live audio or video components.
1.2.5 Audio Description (Prerecorded)Not ApplicableThe library ships no audio or video components.
1.3.4 OrientationSupportsNo component restricts orientation.
1.3.5 Identify Input PurposeNot Evaluatedhx-text-input autocomplete token coverage audit pending.
1.4.3 Contrast (Minimum)SupportsGated by packages/hx-tokens/src/__tests__/contrast.test.ts — every semantic text.* × surface.* pairing across light, dark, and high-contrast modes asserts ≥4.5:1 (body) / ≥3.0:1 (large/UI) at CI time.
1.4.4 Resize TextNot EvaluatedAll component dimensions use relative units (em, rem); explicit 200% zoom audit pending.
1.4.5 Images of TextSupportsThe library renders no images of text.
1.4.10 ReflowNot EvaluatedPer-component reflow audit at 320 CSS px pending.
1.4.11 Non-text ContrastPartially SupportsBorder / focus-ring tokens audited; border.on-dark-strong enforced ≥3:1 in contrast.test.ts. Per-component focus-ring contrast audit pending.
1.4.12 Text SpacingNot EvaluatedPer-component audit pending.
1.4.13 Content on Hover or FocusNot Evaluatedhx-tooltip, hx-popover dismissable / hoverable / persistent audit pending.
2.4.5 Multiple WaysNot ApplicablePage-level concern outside library scope.
2.4.6 Headings and LabelsNot EvaluatedSlotted heading audit pending.
2.4.7 Focus VisiblePartially Supports:focus-visible rings present on all interactive components. Forced-colors fallback gated by forced-colors-runtime.test.ts. Per-component visual review pending.
3.1.2 Language of PartsNot ApplicablePage-level concern outside library scope.
3.2.3 Consistent NavigationNot ApplicablePage-level concern outside library scope.
3.2.4 Consistent IdentificationSupportsComponents preserve consistent ARIA contracts and slot APIs across instantiations.
3.3.3 Error SuggestionNot Evaluatedhx-form validation suggestion-message audit pending.
3.3.4 Error Prevention (Legal, Financial, Data)Not ApplicableApplication-level concern outside library scope.
4.1.3 Status MessagesPartially Supportshx-toast, hx-alert, hx-progress-bar live-region audit in progress. ARIA Group 4 Phase 1 work covers aria-live posture for status / alert components.

WCAG 2.2 Level AAA (28 Success Criteria) — P0 Cert Surface

Section titled “WCAG 2.2 Level AAA (28 Success Criteria) — P0 Cert Surface”
Success CriterionConformance LevelRemarks and Explanations
1.2.6 Sign Language (Prerecorded)Not ApplicableThe library ships no audio or video components.
1.2.7 Extended Audio DescriptionNot ApplicableThe library ships no audio or video components.
1.2.8 Media Alternative (Prerecorded)Not ApplicableThe library ships no audio or video components.
1.2.9 Audio-only (Live)Not ApplicableThe library ships no audio or video components.
1.3.6 Identify PurposeNot EvaluatedSymbol / icon / region purpose-mapping audit pending.
1.4.6 Contrast (Enhanced)SupportsVerified on the P0 surface via the formal AAA harness (scripts/aaa-formal-audit.mjs); the committed snapshot at packages/hx-library/aaa-verdicts.json records 376 Supports verdicts across 44 components × 11 criteria with zero Partial or Fail. The scripts/check-aaa-verdicts.mjs preflight gate refuses any regression in the committed snapshot, so AAA contrast on the cert surface is a CI gate today. Per-pair contrast telemetry (160 pair instances across light / dark / high-contrast modes, all clearing the AAA threshold) is regenerated via pnpm --filter=@helixui/tokens run contrast:report.
1.4.7 Low or No Background AudioNot ApplicableThe library ships no audio components.
1.4.8 Visual PresentationNot EvaluatedBlock-of-text presentation control audit pending — hx-prose is the audit target.
1.4.9 Images of Text (No Exception)SupportsThe library renders no images of text.
2.1.3 Keyboard (No Exception)Not EvaluatedPer-component keyboard-no-exception audit pending; AAA conformance requires removing all keyboard traps including timed paths.
2.2.3 No TimingNot ApplicableNo essential timing in component behaviour. hx-toast auto-dismiss is configurable to indefinite.
2.2.4 InterruptionsNot Evaluatedhx-toast, hx-alert interrupt-suppression API audit pending.
2.2.5 Re-authenticatingNot ApplicableApplication-level concern outside library scope.
2.2.6 TimeoutsNot ApplicableApplication-level concern outside library scope.
2.3.2 Three FlashesSupportsNo components flash. All animated components honour prefers-reduced-motion.
2.3.3 Animation from InteractionsSupportsAll animated components honour prefers-reduced-motion.
2.4.8 LocationNot ApplicablePage-level concern outside library scope.
2.4.9 Link Purpose (Link Only)Not Evaluatedhx-link, hx-card[hx-href] link-only-purpose audit pending.
2.4.10 Section HeadingsNot ApplicablePage-level concern outside library scope.
2.5.5 Target SizeNot EvaluatedAll interactive component target-size audit (≥44×44 CSS px) pending. WCAG 2.2 introduces 2.5.8 at AA (24×24); HELiX targets the AAA 44×44 floor.
2.5.6 Concurrent Input MechanismsSupportsAll components support keyboard, pointer, and touch concurrently; no input mechanism is restricted.
3.1.3 Unusual WordsNot ApplicableContent-level concern outside library scope.
3.1.4 AbbreviationsNot ApplicableContent-level concern outside library scope.
3.1.5 Reading LevelNot ApplicableContent-level concern outside library scope.
3.1.6 PronunciationNot ApplicableContent-level concern outside library scope.
3.2.5 Change on RequestNot EvaluatedPer-component automatic-change audit pending (hx-tabs, hx-combobox).
3.3.5 HelpSupportshx-help-text and the help-text slot pattern provide context-sensitive help on all form components.
3.3.6 Error Prevention (All)Not ApplicableApplication-level concern outside library scope.

The matrix below records the per-component conformance posture across the 80 published components. Tier assignments follow the AAA Certification Epic plan:

  • P0 — Tier 1 (42 components): form inputs, selection controls, buttons, navigation composites, modals, live regions, sliders, form assembly, field helpers. Highest user-facing risk; first to AAA-cert.
  • P1 — Tier 2 (10 components): data display, progress / meter, specialised healthcare components.
  • P2 — Tier 3 (22 components): indicators, stat / metric, structural and layout primitives.
  • Exempt — Tier 4 (6 components): utility / theming components with no user-facing surface.

The matrix below tracks the engineering-audit posture per component as the AAA cert flow executes. The canonical cert authority is packages/hx-library/aaa-verdicts.json, which records 44 P0 components with measured verdicts; this matrix predates the verdict snapshot and may show stale tier assignments or row-level details. Where the matrix and the verdict snapshot disagree, the snapshot wins. Components carrying an AAA-cert <date> note in the table below appear in the verdicts file; rows still marked “Pending audit” predate the cert flow.

Components in the P0 cert surface but not yet folded into the right row of this matrix: hx-action-bar, hx-banner, hx-clinical-status, hx-copy-button, and hx-icon (currently shown in lower-tier or Exempt sections with AAA-cert notes — those notes are correct; the tier columns predate the cert and will be reconciled in the next VPAT revision). Components shown in P0 below but not in the cert verdict surface today: hx-card, hx-link, hx-pagination (treat their Supports rows as engineering-audit posture rather than cert verdicts until the verdict file ingests them).

P0 — Tier 1 (44 components per aaa-verdicts.json)

Section titled “P0 — Tier 1 (44 components per aaa-verdicts.json)”
ComponentTierAA StatusAAA StatusForced-Colors CoverageNotes
hx-buttonP0Supports — runtime testedSupportsSupportsForced-colors mixin: forcedColorsInteractive. Live-region for loading state pending (P1 audit item). — AAA-cert 2026-05-08
hx-icon-buttonP0Pending auditSupportsSupportsInherits interactive forced-colors mixin via shared base. Per-component runtime test pending. — AAA-cert 2026-05-08
hx-toggle-buttonP0Pending auditSupportsSupportsPressed-state ARIA contract audit pending. — AAA-cert 2026-05-08
hx-split-buttonP0Pending auditSupportsSupportsComposite (button + dropdown trigger); ARIA grouping audit pending. — AAA-cert 2026-05-08
hx-button-groupP0Pending auditSupportsSupportsrole="group" accessible name audit pending. — AAA-cert 2026-05-08
hx-text-inputP0Pending auditSupportsSupportsForced-colors mixin: forcedColorsField. Validity-driven aria-invalid audit pending. — AAA-cert 2026-05-08
hx-textareaP0Pending auditSupportsSupportsCounter aria-describedby association audit pending. — AAA-cert 2026-05-08
hx-number-inputP0Pending auditSupportsSupportsSpinner-button accessible name audit pending. — AAA-cert 2026-05-08
hx-checkboxP0Supports — runtime testedSupportsSupportsForced-colors mixin: forcedColorsField. Keyboard accessibility remediated post-AUDIT-001. — AAA-cert 2026-05-08
hx-checkbox-groupP0Pending auditSupportsSupportsGroup-level error / aria-describedby audit pending. — AAA-cert 2026-05-08
hx-radio-groupP0Pending auditSupportsSupportsRoving-tabindex + group error audit pending. — AAA-cert 2026-05-08
hx-switchP0Pending auditSupportsSupportsAPG Space-only key audit pending. — AAA-cert 2026-05-08
hx-selectP0Pending auditSupportsSupportsHost-canonical combobox pattern (ARIA Group 3 in progress); aria-activedescendant audit ongoing. — AAA-cert 2026-05-08
hx-comboboxP0Pending auditSupportsSupportsAPG combobox pattern audit pending. — AAA-cert 2026-05-08
hx-date-pickerP0Pending auditSupportsSupportsCalendar grid + dialog ARIA audit pending. — AAA-cert 2026-05-08
hx-time-pickerP0Pending auditSupportsSupportsSpinbutton ARIA audit pending. — AAA-cert 2026-05-08
hx-sliderP0Pending auditSupportsSupportsrole="slider" keyboard contract audit pending. — AAA-cert 2026-05-09
hx-color-pickerP0Pending auditSupportsSupportsCustom widget ARIA audit pending. — AAA-cert 2026-05-08
hx-ratingP0Pending auditSupportsSupportsGroup-of-radios pattern audit pending. — AAA-cert 2026-05-09
hx-file-uploadP0Pending auditSupportsSupportsDrop-target announce + button-trigger audit pending. — AAA-cert 2026-05-08
hx-formP0Pending auditSupportsSupportsLight-DOM scoped CSS via AdoptedStylesheetsController; form-association audit pending. — AAA-cert 2026-05-09
hx-fieldP0Pending auditSupportsSupportsCross-shadow-boundary label / error association — dominant 1.3.1 / 4.1.2 remediation surface. — AAA-cert 2026-05-09
hx-field-labelP0Pending auditSupportsSupportsSlotted <label> ID-ref pattern audit pending. — AAA-cert 2026-05-09
hx-help-textP0Pending auditSupportsSupportsaria-describedby ID-ref pattern audit pending. — AAA-cert 2026-05-09
hx-dialogP0Pending auditSupportsSupportsNative <dialog> + APG modal audit pending; focus-trap verification required. — AAA-cert 2026-05-08
hx-drawerP0Pending auditSupportsSupportsAPG dialog pattern audit pending. — AAA-cert 2026-05-08
hx-popoverP0Pending auditSupportsSupportsAPG dialog / disclosure pattern audit pending. — AAA-cert 2026-05-08
hx-popupP0Pending auditSupportsSupportsFloating-UI placement primitive; ARIA inherits from parent. — AAA-cert 2026-05-08
hx-tooltipP0Pending auditSupportsSupportsAPG tooltip dismissable / hoverable / persistent audit (1.4.13) pending. — AAA-cert 2026-05-08
hx-dropdownP0Pending auditSupportsSupportsAPG menu / listbox audit pending. — AAA-cert 2026-05-08
hx-menuP0Pending auditSupportsSupportsAPG menu pattern audit pending. — AAA-cert 2026-05-08
hx-overflow-menuP0Pending auditSupportsSupportsAPG menu pattern audit pending. — AAA-cert 2026-05-08
hx-side-navP0Supports — runtime testedSupportsSupportsForced-colors disabled .nav-item__link opacity scoping verified at runtime; cascade-order regression net in place. — AAA-cert 2026-05-08
hx-top-navP0Pending auditSupportsSupportsLandmark + nav-list audit pending. — AAA-cert 2026-05-08
hx-navP0Pending auditSupportsSupportsPer-component audit pending. — AAA-cert 2026-05-08
hx-tabsP0Pending auditSupportsSupportsAPG tabs pattern + roving tabindex audit pending. — AAA-cert 2026-05-08
hx-breadcrumbP0Pending auditSupportsSupportsNative <ol> migration audit pending. — AAA-cert 2026-05-08
hx-paginationP0Pending auditPending auditPending verificationPage-link aria-current audit pending.
hx-toastP0Pending auditSupportsSupportsLive-region + auto-dismiss timing audit pending. — AAA-cert 2026-05-09
hx-alertP0Pending auditSupportsSupportsrole="alert" redundancy + close-button target-size audit pending. — AAA-cert 2026-05-08
hx-linkP0Supports — runtime testedPending auditSupports — runtime verifiedForced-colors mixin: forcedColorsLink. Visited-state LinkText / VisitedText keywords verified.
hx-cardP0Supports — runtime testedPending auditSupports — runtime verifiedForced-colors mixin: forcedColorsSurface. Interactive-card aria-label audit pending.
ComponentTierAA StatusAAA StatusForced-Colors CoverageNotes
hx-data-tableP1Pending auditPending auditPending verificationAPG grid pattern audit pending.
hx-tableP1Pending auditPending auditPending verificationNative semantic table; header-cell association audit pending.
hx-listP1Pending auditPending auditPending verificationrole="list" posture audit pending.
hx-structured-listP1Pending auditPending auditPending verificationDL / table semantics audit pending.
hx-tree-viewP1Pending auditPending auditPending verificationAPG tree pattern + roving tabindex audit pending.
hx-progress-barP1Pending auditPending auditPending verificationrole="progressbar" ARIA contract audit pending.
hx-progress-ringP1Pending auditPending auditPending verificationrole="progressbar" ARIA contract audit pending.
hx-meterP1Pending auditPending auditPending verificationrole="meter" ARIA contract audit pending.
hx-linkP1Supports — runtime testedPending auditSupports — runtime verifiedCross-listed P0/P1 due to its role as both interactive control and navigation primitive. Forced-colors verified.
hx-patient-bannerP1Pending auditPending auditPending verificationHealthcare-specialised composite; landmark + status audit pending.
hx-phi-fieldP1Pending auditPending auditPending verificationHealthcare-specialised PHI redaction; show / hide announce audit pending.
ComponentTierAA StatusAAA StatusForced-Colors CoverageNotes
hx-badgeP2Pending auditPending auditPending verificationDot variant screen-reader announce audit pending.
hx-tagP2Pending auditPending auditPending verificationRemovable-tag close-button name audit pending.
hx-avatarP2Pending auditPending auditPending verificationImage / initials accessible name audit pending.
hx-status-indicatorP2Pending auditPending auditPending verificationColor + icon non-color indicator audit pending.
hx-clinical-statusP2Pending auditSupportsSupportsHealthcare-specialised; status-text + color audit pending. — AAA-cert 2026-05-09
hx-statP2Pending auditPending auditPending verificationForced-colors block carried via mixin; per-component runtime test pending.
hx-counterP2Pending auditPending auditPending verificationLive-update announce audit pending.
hx-spinnerP2Pending auditPending auditPending verificationrole="status" + label audit pending.
hx-skeletonP2Pending auditPending auditPending verificationaria-busy posture audit pending.
hx-dividerP2Pending auditPending auditPending verificationrole="separator" posture audit pending.
hx-action-barP2Pending auditSupportsSupportsToolbar pattern audit pending. — AAA-cert 2026-05-08
hx-bannerP2Pending auditSupportsSupportsLandmark + dismissable banner audit pending. — AAA-cert 2026-05-09
hx-carouselP2Pending auditPending auditPending verificationAPG carousel pattern + 2.2.2 pause control audit pending.
hx-stepsP2Pending auditPending auditPending verificationStepper pattern + aria-current audit pending.
hx-gridP2Pending auditPending auditN/A — layout-onlyLayout primitive; no interactive ARIA surface.
hx-stackP2Pending auditPending auditN/A — layout-onlyLayout primitive; no interactive ARIA surface.
hx-containerP2Pending auditPending auditN/A — layout-onlyLayout primitive; no interactive ARIA surface.
hx-split-panelP2Pending auditPending auditPending verificationResize-handle keyboard audit pending.
hx-accordionP2Pending auditPending auditPending verificationAPG accordion pattern audit pending.
hx-textP2Pending auditPending auditN/A — text primitiveText primitive; no interactive ARIA surface.
hx-proseP2Pending auditPending auditPending verificationLight-DOM scoped CSS via AdoptedStylesheetsController; 1.4.8 visual-presentation audit target.
hx-imageP2Pending auditPending auditPending verificationAlt-text / decorative-role audit pending.
ComponentTierAA StatusAAA StatusForced-Colors CoverageNotes
hx-themeExemptNot ApplicableNot ApplicableNot ApplicableTheming primitive; no rendered surface.
hx-style-scopeExemptNot ApplicableNot ApplicableNot ApplicableCSS scoping primitive; no rendered surface.
hx-iconExemptPending auditPending auditNot ApplicableRenders SVG; aria-hidden posture audit pending. Decorative by default.
hx-format-dateExemptNot ApplicableNot ApplicableNot ApplicableFormatter primitive; renders inline text.
hx-visually-hiddenExemptSupportsSupportsNot ApplicableA11y utility primitive — provides visually-hidden text by design.
hx-code-snippetExemptPending auditPending auditNot Applicable<pre><code> wrapper; copy-button accessible name audit pending.
hx-copy-buttonExemptPending auditSupportsSupportsLive-region announce on copy audit pending. — AAA-cert 2026-05-08

HELiX’s accessibility evidence is layered across automated, runtime, and manual review tiers.

  • axe-core integration via packages/hx-library/src/test-utils.ts — component test files may run checkA11y() against wcag2a, wcag2aa, and best-practice tags. Coverage is per-component, not universal: the helper is invoked from the test files that opt into it. The formal AAA cert relies on the audit harness’s own checks (scripts/aaa-formal-audit.mjs) rather than axe-core for the AAA verdicts; axe-core remains the canonical AA smoke layer for stories that wire it.
  • Contrast regression matrixpackages/hx-tokens/src/__tests__/contrast.test.ts walks every semantic text.* × surface.* pair across light, dark, and high-contrast modes; asserts AA thresholds (4.5 body / 3.0 large) and logs AAA pass/fail (7.0 body / 4.5 large) informationally.
  • Forced-colors runtime adoptionpackages/hx-library/src/components/__tests__/forced-colors-runtime.test.ts inspects adopted stylesheets at runtime to confirm representatives from each forced-colors mixin family (interactive, field, surface, link, side-nav) emit the correct @media (forced-colors: active) block with the required system-color keywords.

Vitest browser mode (Chromium via Playwright) provides a real DOM with shadow-root encapsulation. This is the source of truth for any assertion that depends on adopted-stylesheet behaviour, live-region timing, or focus management.

When a component reaches AAA-cert review, a per-component AAA-AUDIT.md document is generated alongside the source at packages/hx-library/src/components/<tag>/AAA-AUDIT.md. Each file records the harness-measured WCAG SC-by-SC verdicts plus the prose evidence the harness wrote for each (component × criterion) cell. Per-modality fields outside the harness’s measurement surface — assistive-technology transcripts (NVDA + Chrome, VoiceOver + Safari, JAWS + Edge), APG keyboard-pattern transcripts, forced-colors screenshots, and external auditor name / date — are not captured in the generated audit files today; those belong to the third-party attestation track in the Future work section.

  • HC-mode visual regression — Playwright emulateMedia({ forcedColors: 'active' }) is not exposed by Vitest browser mode (per the comment in forced-colors-runtime.test.ts). A separate Playwright VRT job is planned for v1.0 to capture screenshots in active forced-colors mode.
  • Third-party audit — Independent VPAT audit by an accredited accessibility auditor (target: pre-v1.0).

HELiX competes directly with USWDS in the OSS enterprise-supported design system space. The table below summarises the differentiation surface from an accessibility-and-tokens posture, with citations to public USWDS sources.

AxisHELiXUSWDS
Conformance claimWCAG 2.1 AA (gated) + AAA-targeted on P0 (in progress)WCAG 2.1 AA only (USWDS Accessibility)
Token systemSeparate npm package @helixui/tokens with light + dark + high-contrast modesEmbedded SCSS settings, no native dark mode (USWDS tokens settings)
Forced-colors coverageMixin family covers 100% of in-scope components (interactive / field / surface / link / nav)13 components covered per USWDS PR #4610
FrameworkFramework-agnostic W3C Custom Elements (Lit 3.x) — works in React, Angular, Vue, Drupal, plain HTMLSass classes + vanilla JS; React wrapper is community-maintained, not first-party
Distributionnpm + CDN (per-component entry points, tree-shakeable)npm + CDN (Sass + compiled CSS bundle)
License + commercial supportMIT + commercial support available via Booked Solid TechCC0 1.0 Universal (public domain), no SLA, community-maintained
Contrast gatingCI-gated regression matrix across 3 modesManual contrast review
CEM-driven docsCustom Elements Manifest with auto-generated React wrappers + Storybook autodocsManual SCSS / HTML reference
Testing postureVitest browser mode (real DOM, real shadow-root) + axe-core every testManual test plan; some automated checks

Sources:

The header table at the top of this report shows v1.0 (Published) — the v1.0 milestone has landed, with 44 P0 components reaching AAA-cert status (Supports verdicts across the 11-criterion matrix, per aaa-verdicts.json). The phasing below tracks remaining engineering work toward third-party attestation and the next AAA-cert wave.

  • Forced-colors mixin family (interactive / field / surface / link / nav)
  • Forced-colors runtime adoption tests (representative coverage)
  • Contrast regression matrix (AA gated, AAA verified) across 3 modes
  • Cross-shadow-boundary :focus-visible baseline
  • VPAT 2.5 v1.0 published — this document
  • AAA contrast verdict promoted to CI gate via scripts/check-aaa-verdicts.mjs
  • Per-component keyboard test parity (every interactive component)
  • APG-pattern conformance audit (combobox, menu, tabs, dialog, tree-view, slider)
  • Cross-shadow-boundary label / aria-describedby association remediation (hx-field family)
  • AAA-AUDIT.md for the 10 highest-traffic P0 components (form inputs + buttons + dialog + side-nav)
  • Third-party accessibility auditor review
  • HC-mode visual regression (Playwright VRT in active forced-colors)
  • AAA-AUDIT.md for the remaining ~30 P0 components
  • Third-party accessibility auditor sign-off on the P0 surface
  • VPAT v1.0 publication with 30+ P0 components at AAA-cert
  • Public commitment to AAA conformance for the P0 surface
  • CI-gated AAA contrast posture (promoted from informational logging)
  • Section 508 + EN 301 549 conformance attestation