Accessibility Conformance Report
Based on VPAT® Version 2.5 Rev — WCAG 2.2 edition. Product: Eco Heroes (public website, Learn Hub intranet, SDG Adventure game, Trivia, Games hub, Live quiz, teacher tools) at eco-heroes.org, all 13 languages.
Evaluation methods
Automated testing with axe-core 4.10.2 (rule sets wcag2a, wcag2aa, wcag21a, wcag21aa, wcag22aa) over 20 page renders: 2 languages × 1 viewports (1280 px), covering the public site, the Learn Hub and every teacher page with a demo school session. Result at the report date: 0 serious or critical violations; remaining advisory findings are "best-practice" rules (regions outside landmarks on decorative blocks, heading-level hints) that do not fail a WCAG success criterion. Scripted browser checks (Chromium): keyboard operation of sign-in, class set-up, the game start, a trivia round and the live quiz; 390 px reflow with no horizontal scrolling in every language; prefers-reduced-motion; RTL (Arabic). Assistive-technology testing with VoiceOver and NVDA is scheduled as part of the independent audit and is not claimed here.
Applicable standards
WCAG 2.2 Level A and AA. EN 301 549 clauses 9 (web) map to the same criteria. Level AAA criteria are not claimed.
Summary
WCAG 2.2 Report — Level A and AA
| Criterion | Level | Conformance | Remarks and explanations |
|---|---|---|---|
| 1.1.1 Non-text Content | A | Supports | Images carry alt text or are marked decorative; the SDG wheel is a labelled group; icon-only buttons have names. Automated: image-alt, button-name, link-name clean on all tested pages. |
| 1.2.1 Audio-only and Video-only (Prerecorded) | A | Not Applicable | No audio-only or video-only media. |
| 1.2.2 Captions (Prerecorded) | A | Supports | All 221 story episodes and the teacher tutorial ship WebVTT captions in the language of the episode. |
| 1.2.3 Audio Description or Media Alternative (Prerecorded) | A | Supports | Each episode has a text alternative: the same script and scene cues are printed in the handbooks; the tutorial is mirrored in the written Getting-started guide. |
| 1.2.4 Captions (Live) | AA | Not Applicable | No live media. |
| 1.2.5 Audio Description (Prerecorded) | AA | Partially Supports | Episode narration already describes what is on screen (narrated picture-book style); a separate described-audio track is not provided. |
| 1.3.1 Info and Relationships | A | Supports | Semantic headings, lists, tables with headers, form labels, landmarks (header/nav/main/footer) on every page; ARIA roles only where native semantics are insufficient (tablist, dialogs, live regions). |
| 1.3.2 Meaningful Sequence | A | Supports | DOM order matches reading order, including RTL layouts for Arabic. |
| 1.3.3 Sensory Characteristics | A | Supports | Instructions never rely on shape, colour or position alone; answer options carry letters A–D as well as colours. |
| 1.3.4 Orientation | AA | Supports | No orientation lock. |
| 1.3.5 Identify Input Purpose | AA | Supports | Autocomplete tokens on name, e-mail, given-name fields. |
| 1.4.1 Use of Color | A | Supports | Links in text are underlined; quiz results use icons/text in addition to colour; heat strips carry titles with the numbers. |
| 1.4.2 Audio Control | A | Supports | No audio plays automatically; sound effects are opt-in and the player has native controls. |
| 1.4.3 Contrast (Minimum) | AA | Supports | All text meets 4.5:1 (3:1 for large text) after the October 2026 review; verified by axe-core on 20 page renders. |
| 1.4.4 Resize Text | AA | Supports | Zoom is never disabled; layouts reflow to 200%% zoom. |
| 1.4.5 Images of Text | AA | Supports | Text is real text except logos. |
| 1.4.10 Reflow | AA | Supports | Every page tested at 390 px wide without horizontal scrolling (intranet audit, 13 languages). |
| 1.4.11 Non-text Contrast | AA | Supports | Controls and focus indicators meet 3:1. |
| 1.4.12 Text Spacing | AA | Supports | No fixed-height text containers; spacing overrides do not clip content. |
| 1.4.13 Content on Hover or Focus | AA | Supports | Tooltips are native title attributes or persistent; no hover-only content. |
| 2.1.1 Keyboard | A | Supports | All functionality operable by keyboard, including the game map, quizzes, live quiz and dialogs. Scrollable tables are focusable. |
| 2.1.2 No Keyboard Trap | A | Supports | Dialogs trap focus intentionally and release on Escape. |
| 2.1.4 Character Key Shortcuts | A | Not Applicable | No single-character shortcuts. |
| 2.2.1 Timing Adjustable | A | Partially Supports | The live quiz has a 20-second answer window set by the teacher; the teacher can pause between questions and the rest of the platform has no time limits. |
| 2.2.2 Pause, Stop, Hide | A | Supports | Animations respect prefers-reduced-motion; no auto-updating content except the live quiz the user joined. |
| 2.3.1 Three Flashes or Below Threshold | A | Supports | No flashing content. |
| 2.4.1 Bypass Blocks | A | Supports | Skip link to main content on every page. |
| 2.4.2 Page Titled | A | Supports | Unique, descriptive titles in each language. |
| 2.4.3 Focus Order | A | Supports | Logical focus order; dynamic content inserted in reading order. |
| 2.4.4 Link Purpose (In Context) | A | Supports | Link text describes the destination; icon links have labels. |
| 2.4.5 Multiple Ways | AA | Supports | Navigation bar, hub tiles, sitemap and cross-links between sections. |
| 2.4.6 Headings and Labels | AA | Supports | Descriptive headings in a consistent outline; form labels visible. |
| 2.4.7 Focus Visible | AA | Supports | Visible focus ring on every interactive element (focus-visible styling). |
| 2.4.11 Focus Not Obscured (Minimum) | AA | Partially Supports | Sticky headers are short (≤ 60 px); scroll-margin on focus targets is applied on the intranet pages and is being extended to the public pages. |
| 2.5.1 Pointer Gestures | A | Supports | No path-based or multipoint gestures required. |
| 2.5.2 Pointer Cancellation | A | Supports | Actions fire on click/up events. |
| 2.5.3 Label in Name | A | Supports | Accessible names contain the visible text. |
| 2.5.4 Motion Actuation | A | Not Applicable | No motion-operated functions. |
| 2.5.7 Dragging Movements | AA | Supports | No drag-only interactions. |
| 2.5.8 Target Size (Minimum) | AA | Supports | Interactive targets are at least 24×24 CSS px with spacing; verified by axe target-size. |
| 3.1.1 Language of Page | A | Supports | Valid BCP-47 lang on every page in 13 languages (Catalan: ca). |
| 3.1.2 Language of Parts | AA | Partially Supports | Product names and a few English references inside other locales are not yet marked with their own lang attribute. |
| 3.2.1 On Focus | A | Supports | No context change on focus. |
| 3.2.2 On Input | A | Supports | Language selectors change the page language on explicit selection, announced by the page reload; no other automatic submissions. |
| 3.2.3 Consistent Navigation | AA | Supports | Same navigation bar and hub structure across sections. |
| 3.2.4 Consistent Identification | AA | Supports | Same icons and labels for the same functions. |
| 3.2.6 Consistent Help | AA | Supports | Contact & suggestions is available in the same place on every page. |
| 3.3.1 Error Identification | A | Supports | Form errors described in text next to the field and announced via aria-live. |
| 3.3.2 Labels or Instructions | A | Supports | Every field has a visible label; formats are explained (class code, PIN). |
| 3.3.3 Error Suggestion | AA | Supports | Errors say what to correct (e.g. "Type your name, 2+ letters"). |
| 3.3.4 Error Prevention (Legal, Financial, Data) | AA | Supports | Destructive actions (remove pupil, delete class, end quiz) ask for confirmation; quotes are reviewed before submission. |
| 3.3.7 Redundant Entry | A | Supports | Previously entered information (class code, nickname, language) is remembered within the session. |
| 3.3.8 Accessible Authentication (Minimum) | AA | Supports | School code, Google/Microsoft/district SSO and e-mail login — no cognitive function test; the bot check (Turnstile) is non-interactive. |
| 4.1.2 Name, Role, Value | A | Supports | Custom controls expose name/role/state (tabs with aria-selected, menu button with aria-expanded, live regions). |
| 4.1.3 Status Messages | AA | Supports | Toasts, quiz feedback and form results use aria-live polite regions. |
Known limitations and roadmap
- Episode videos: narration describes the on-screen action but there is no separate audio-description track (1.2.5). Planned: described-audio variants for the 17 English episodes first.
- Live quiz: the 20-second answer window is fixed per question (2.2.1). Planned: teacher-adjustable 20/40/60 s and a no-timer mode for inclusive classes.
- Third-party content: the partner programme deck is a PDF; the embedded video player on the public site is the platform's own HTML5 player with captions.
Legal disclaimer
This report is a self-assessment made in good faith against WCAG 2.2 using the methods above. It will be updated with every significant release; the automated audit runs in the release pipeline so regressions are caught before deployment. Feedback: [email protected] — we answer within 5 business days.