Votinova — Accessibility Conformance Report (PARTICIPANT role)
Format: VPAT® 2.5 (WCAG edition) · Report version: draft · Report date: 2026-08-19
Product: Votinova · Product version: 0.1.0-draft · Evaluation dates: 2026-07-31 – 2026-08-19
Scope: the /join web participant experience and the iOS/Android participant app.
Conformance target: WCAG 2.2 Level A and Level AA.
Evaluation methods: automated audit (axe-core via Playwright, cumulative WCAG 2.2 AA rule tags); keyboard, focus-order, live-region and reduced-motion interaction walkthroughs (Playwright specs); and manual review of the rated surfaces' DOM and components. No rating is asserted without a recorded measurement (FR-003). A full assistive-technology user walkthrough (screen reader) is scheduled before first publication and will upgrade the interaction-heavy "manual" evidence to "at-walkthrough"; until then those rows are honestly marked as reviewed by inspection.
Measurement basis (automated rows): 11 of the 55 criteria in this report are rated from an automated axe-core run. Those rows rest on exactly the surface sample recorded in the evidence log: axe:participant/16types×13answer+13results-anatomies+7states(entry,denied,waiting,hidden,paused,disconnected,plan-limit). Until 2026-07-28 the sample behind every automated row was the /join join → active question → results path driven with a SINGLE MULTIPLE_CHOICE question: 1 of the catalogue's 16 question types, and no state outside the happy path (no empty, closed, denied, plan-limited or disconnected screen). The evaluation harness now drives all 16 types across their 13 distinct answer anatomies and 13 distinct results anatomies, plus 7 states.
Summary: 43 Supports · 1 Partially Supports · 11 Not Applicable · 0 Does Not Support (of 55 criteria).
Notes: timed live questions rely on WCAG's real-time event exception (Conformance Requirement 5); the affected timing criteria state this in their remarks. Brand orange (#FF6200) is a conscious, documented deviation on 1.4.3 (FR-013).
Corrections (in place, no rating changed): 2026-07-28 — Added the "Measurement basis" paragraph disclosing the surface sample behind the automated rows, which the report had never stated. No rating, remark or summary count changed. 2026-07-29 — T062 (H-017-11): the brand-contrast gate exception narrowed to NEUTRAL near-white surfaces only (channel spread <= 4) - tinted surfaces are no longer swept. Two real defects the old carve-out hid were remediated the same day: the sidebar active pill (orange on its own 12% tint, 2.61:1) now uses the neutral system surface, and the API-credential dismiss button (2.67:1 over the tinted panel) gained its own white background. The 1.4.3 brand deviation remains orange on WHITE/NEUTRAL only, as originally accepted. 2026-07-31 — Re-evaluation after the 2026-07-31 rebrand: the primary colour moved to blue #0071E3 across public and presenter surfaces (indigo-* ramp override). Evidence was re-collected the same day; brand text on tinted/soft surfaces now uses the 700 step (#005CBA) and accent-on-tint tokens the emphasis mix, so the ratios that the colour change had pushed under 4.5:1 measure compliant again. Report date advanced to the new evaluation end. 2026-08-07 — Re-measured 2026-08-07 after the harness cure (T156): the cookie-consent banner intercepted pointer events across the suite and the 2026-08 tariff moved the FREE participant cap, so the automated campaign re-ran end to end. The plan-limit join screen is now reached by filling to the API refusal instead of a hard-coded cap. No rating, remark or summary count changed; the evaluation period extends to 2026-08-07. 2026-08-19 — Re-measured 2026-08-19: the automated campaign re-ran end to end against develop after the spec 042 design-engine work. No rating, remark or summary count changed — only the measurement dates of the thirteen automated criteria; the evaluation period extends to 2026-08-19 and the report date advances with it.
Table 1 — Success Criteria, Level A
| Criterion | Conformance Level | Remarks and Explanations |
|---|---|---|
| 1.1.1 Non-text Content | Supports | Manual review of the rated surfaces' DOM and components (non-text-alternatives-review). |
| 1.2.1 Audio-only and Video-only (Prerecorded) | Not Applicable | No time-based media (audio/video) exists on the rated surfaces. |
| 1.2.2 Captions (Prerecorded) | Not Applicable | No prerecorded video exists on the rated surfaces. |
| 1.2.3 Audio Description or Media Alternative (Prerecorded) | Not Applicable | No prerecorded video exists on the rated surfaces. |
| 1.3.1 Info and Relationships | Supports | Automated audit (axe-core, cumulative WCAG 2.2 AA rule tags). |
| 1.3.2 Meaningful Sequence | Supports | Manual review of the rated surfaces' DOM and components (dom-reading-order). |
| 1.3.3 Sensory Characteristics | Supports | Manual review of the rated surfaces' DOM and components (instructions-not-sensory-only). |
| 1.4.1 Use of Color | Supports | Manual review of the rated surfaces' DOM and components (color-not-sole-means). |
| 1.4.2 Audio Control | Not Applicable | No audio plays automatically on the rated surfaces. |
| 2.1.1 Keyboard | Supports | Interaction walkthrough — image-pin-keyboard.spec.ts exercises this behaviour (keyboard / focus / live-region / reduced-motion). |
| 2.1.2 No Keyboard Trap | Supports | Interaction walkthrough — live-results-announce.spec.ts#tab-out exercises this behaviour (keyboard / focus / live-region / reduced-motion). |
| 2.1.4 Character Key Shortcuts | Supports | Manual review of the rated surfaces' DOM and components (no-single-character-key-shortcuts). |
| 2.2.1 Timing Adjustable | Supports | Timed live questions rely on the real-time event exception (WCAG Conformance Requirement 5): the timing is an essential part of a live, synchronous activity. |
| 2.2.2 Pause, Stop, Hide | Supports | Interaction walkthrough — reduced-motion.spec.ts exercises this behaviour (keyboard / focus / live-region / reduced-motion). |
| 2.3.1 Three Flashes or Below Threshold | Supports | Manual review of the rated surfaces' DOM and components (no-flashing-content). |
| 2.4.1 Bypass Blocks | Supports | Manual review of the rated surfaces' DOM and components (no-repeated-blocks-single-view). |
| 2.4.2 Page Titled | Supports | Automated audit (axe-core, cumulative WCAG 2.2 AA rule tags). |
| 2.4.3 Focus Order | Supports | Interaction walkthrough — live-results-announce.spec.ts#focus-order exercises this behaviour (keyboard / focus / live-region / reduced-motion). |
| 2.4.4 Link Purpose (In Context) | Supports | Automated audit (axe-core, cumulative WCAG 2.2 AA rule tags). |
| 2.5.1 Pointer Gestures | Supports | Manual review of the rated surfaces' DOM and components (no-path-or-multipoint-gestures). |
| 2.5.2 Pointer Cancellation | Supports | Manual review of the rated surfaces' DOM and components (pointer-cancellation-up-event). |
| 2.5.3 Label in Name | Supports | Manual review of the rated surfaces' DOM and components (label-in-name-review). |
| 2.5.4 Motion Actuation | Supports | Manual review of the rated surfaces' DOM and components (no-motion-actuation). |
| 3.1.1 Language of Page | Supports | Automated audit (axe-core, cumulative WCAG 2.2 AA rule tags). |
| 3.2.1 On Focus | Supports | Manual review of the rated surfaces' DOM and components (no-context-change-on-focus). |
| 3.2.2 On Input | Supports | Manual review of the rated surfaces' DOM and components (no-context-change-on-input). |
| 3.2.6 Consistent Help | Not Applicable | The join view exposes no help mechanism; the criterion does not apply. |
| 3.3.1 Error Identification | Supports | Manual review of the rated surfaces' DOM and components (join-form-error-identification). |
| 3.3.2 Labels or Instructions | Supports | Automated audit (axe-core, cumulative WCAG 2.2 AA rule tags). |
| 3.3.7 Redundant Entry | Not Applicable | No step re-asks information already provided. |
| 4.1.2 Name, Role, Value | Supports | Automated audit (axe-core, cumulative WCAG 2.2 AA rule tags). |
Table 2 — Success Criteria, Level AA
| Criterion | Conformance Level | Remarks and Explanations |
|---|---|---|
| 1.2.4 Captions (Live) | Not Applicable | No live audio-only content exists on the rated surfaces. |
| 1.2.5 Audio Description (Prerecorded) | Not Applicable | No prerecorded video exists on the rated surfaces. |
| 1.3.4 Orientation | Supports | Manual review of the rated surfaces' DOM and components (no-orientation-lock). |
| 1.3.5 Identify Input Purpose | Supports | Automated audit (axe-core, cumulative WCAG 2.2 AA rule tags). |
| 1.4.3 Contrast (Minimum) | Partially Supports | Conscious, documented brand deviation (FR-013): brand orange #FF6200 on white measures ~3:1, below the 4.5:1 minimum. Accepted by the product owner over the off-brand accessible alternative; all other text meets 4.5:1. Recorded here so the claim stays honest. |
| 1.4.4 Resize Text | Supports | Automated audit (axe-core, cumulative WCAG 2.2 AA rule tags). |
| 1.4.5 Images of Text | Supports | Manual review of the rated surfaces' DOM and components (no-images-of-text). |
| 1.4.10 Reflow | Supports | Manual review of the rated surfaces' DOM and components (reflow-320-no-h-scroll). |
| 1.4.11 Non-text Contrast | Supports | Manual review of the rated surfaces' DOM and components (non-text-contrast-review). |
| 1.4.12 Text Spacing | Supports | Automated audit (axe-core, cumulative WCAG 2.2 AA rule tags). |
| 1.4.13 Content on Hover or Focus | Supports | Manual review of the rated surfaces' DOM and components (hover-focus-content-dismissable). |
| 2.4.5 Multiple Ways | Not Applicable | The join view is a single-step process; the criterion does not apply. |
| 2.4.6 Headings and Labels | Supports | Manual review of the rated surfaces' DOM and components (headings-and-labels-review). |
| 2.4.7 Focus Visible | Supports | Manual review of the rated surfaces' DOM and components (focus-visible-review). |
| 2.4.11 Focus Not Obscured (Minimum) | Supports | Manual review of the rated surfaces' DOM and components (focus-not-obscured-review). |
| 2.5.7 Dragging Movements | Supports | Interaction walkthrough — image-pin-keyboard.spec.ts#no-drag exercises this behaviour (keyboard / focus / live-region / reduced-motion). |
| 2.5.8 Target Size (Minimum) | Supports | Automated audit (axe-core, cumulative WCAG 2.2 AA rule tags). |
| 3.1.2 Language of Parts | Supports | Automated audit (axe-core, cumulative WCAG 2.2 AA rule tags). |
| 3.2.3 Consistent Navigation | Supports | Manual review of the rated surfaces' DOM and components (consistent-nav-review). |
| 3.2.4 Consistent Identification | Supports | Manual review of the rated surfaces' DOM and components (consistent-identification-review). |
| 3.3.3 Error Suggestion | Supports | Manual review of the rated surfaces' DOM and components (join-form-error-suggestion). |
| 3.3.4 Error Prevention (Legal, Financial, Data) | Not Applicable | The anonymous participant surface takes no legal, financial or data-modifying input. |
| 3.3.8 Accessible Authentication (Minimum) | Not Applicable | Participants are anonymous; no authentication step exists. |
| 4.1.3 Status Messages | Supports | Interaction walkthrough — live-results-announce.spec.ts exercises this behaviour (keyboard / focus / live-region / reduced-motion). |
Generated from `acr/evidence/participant-draft.json` (spec 017 T028/T029). Re-issue via `acr:build` after bumping `acr/PUBLICATION.json` (see RE-ISSUE.md).