Votinova — Accessibility Conformance Report (PRESENTER role)
Format: VPAT® 2.5 (WCAG edition) · Report version: draft · Report date: 2026-08-15
Product: Votinova · Product version: 0.1.0-draft · Evaluation dates: 2026-07-31 – 2026-08-15
Scope: the presentation editor, live session control, and the projected live results window (web dashboard and the PowerPoint add-in fallback).
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): 12 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:presenter/16types×13answer+13results-anatomies+7states(lobby,stage,empty,paused,disconnected,ended,plan-limit). Until 2026-07-28 the sample behind every automated row was the dashboard, editor, session lobby and live stage of a deck imported from a .pptx — which carries NO questions. The projected live-results window, this report's D-06 differentiator, was therefore never audited at all: the automated rows rested on zero question types. The evaluation harness now activates all 16 types on the console with a real participant voting, auditing both the live and the closed projected window, plus 7 states.
Summary: 46 Supports · 1 Partially Supports · 8 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 mid-show projected marker for a plan-gated question was replaced in the product: the deck FLOWS past an anchored question whose type the plan does not cover (freezing on it left the presenter with no way forward), and the inactive state with its upgrade CTA lives in the EDITOR (question-inactive-notice). The automated campaign now pins the mid-show flow server-side and audits the editor notice as the plan-limit state; FREE remains the one plan that gates question types. No rating, remark or summary count changed; the evaluation period extends to 2026-08-07. 2026-08-15 — Re-evaluación del 2026-08-15 tras una remediación en las superficies del presentador: el disparador del menú de cuenta de la cabecera no tenía nombre accesible (la foto está marcada como decorativa y el botón que la contiene nunca recibió su etiqueta), lo que axe reportaba como aria-command-name «serious» —4.1.2 Name, Role, Value— en el editor y en la consola del presentador. Con la etiqueta puesta, la campaña automatizada vuelve a medir cero incidencias y el periodo de evaluación se extiende al 2026-08-15. Ninguna calificación, comentario ni recuento del resumen cambia: el criterio ya estaba en «Supports» y la remediación devuelve la evidencia a esa afirmación.
Table 1 — Success Criteria, Level A
| Criterion | Conformance Level | Remarks and Explanations |
|---|---|---|
| 1.1.1 Non-text Content | Supports | Automated audit (axe-core, cumulative WCAG 2.2 AA rule tags). |
| 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 | Automated audit (axe-core, cumulative WCAG 2.2 AA rule tags). |
| 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 | Automated audit (axe-core, cumulative WCAG 2.2 AA rule tags). |
| 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 | Supports | Manual review of the rated surfaces' DOM and components (consistent-help-support-nav). |
| 3.3.1 Error Identification | Supports | Manual review of the rated surfaces' DOM and components (editor-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 | Supports | Manual review of the rated surfaces' DOM and components (no-redundant-entry-required). |
| 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 | Manual review of the rated surfaces' DOM and components (editor-form-input-purpose). |
| 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 | Supports | Manual review of the rated surfaces' DOM and components (dashboard-multiple-ways). |
| 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 | Manual review of the rated surfaces' DOM and components (no-drag-only-controls). |
| 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 | Manual review of the rated surfaces' DOM and components (language-of-parts-review). |
| 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 (editor-form-error-suggestion). |
| 3.3.4 Error Prevention (Legal, Financial, Data) | Not Applicable | The rated authoring/presenting surfaces take no legal or financial input (billing is out of scope). |
| 3.3.8 Accessible Authentication (Minimum) | Not Applicable | Authentication precedes the rated surfaces and is out of this report's scope. |
| 4.1.3 Status Messages | Supports | Manual review of the rated surfaces' DOM and components (console-status-regions). |
Generated from `acr/evidence/presenter-draft.json` (spec 017 T028/T029). Re-issue via `acr:build` after bumping `acr/PUBLICATION.json` (see RE-ISSUE.md).