VPAT® 2.4 WCAG Edition — Voluntary Product Accessibility Template
← Security & data protection · swiftscorm.com
Accessibility Conformance Report
Based on VPAT® Version 2.4
Product Information
| Product name | SwiftSCORM |
|---|---|
| Product version | 1.0 (web application + SCORM 1.2 and cmi5/xAPI export) |
| Report date | June 2026 |
| Report version | 1.0 |
| Contact | security@swiftscorm.com |
| Notes | This report covers (1) the SwiftSCORM web application at swiftscorm.com and (2) the SCORM 1.2 learner packages exported from it, including the interactive quiz player and the lesson player. |
Applicable Standards / Guidelines
This report covers the degree of conformance for the following accessibility standard/guidelines:
| Standard / Guideline | Included In Report |
|---|---|
| Web Content Accessibility Guidelines 2.1, https://www.w3.org/TR/WCAG21/ | Level A, Level AA |
| Revised Section 508 standards (36 CFR Part 1194), https://www.access-board.gov/ict/ | E101–E103, 302–304, 402–404, 502–504, 601–602 |
Terms
Supports
Fully meets the criterion.
Partially Supports
Meets in most but not all cases; exception noted.
Does Not Support
Criterion not met.
Not Applicable
Criterion does not apply to this product.
WCAG 2.1 — Level A
| Criteria | Conformance Level | Remarks |
|---|---|---|
| 1.1.1 Non-text Content | Supports | Decorative icons carry aria-hidden. Tutorial walkthrough SVGs use role="img" with aria-label for their accessible name. Player flowchart SVGs are marked aria-hidden and wrapped in a role="group" figure with an aria-label naming the diagram and its step count, accompanied by a visually-hidden ordered-list text alternative. The PDF-parse progress indicator uses aria-live text, not images. |
| 1.2.1 Audio-only and Video-only (Prerecorded) | Not Applicable | No pre-recorded audio-only or video-only content is produced or displayed by the application. |
| 1.2.2 Captions (Prerecorded) | Not Applicable | No video content. |
| 1.2.3 Audio Description or Media Alternative (Prerecorded) | Not Applicable | No video content. |
| 1.3.1 Info and Relationships | Supports | Semantic HTML throughout. Quiz questions use role="group" with aria-labelledby on the stem. Labels are programmatically associated with all form controls. |
| 1.3.2 Meaningful Sequence | Supports | Reading order follows DOM order. No CSS-only reordering that would alter meaning. |
| 1.3.3 Sensory Characteristics | Supports | No instructions rely solely on shape, size, colour, or position. |
| 1.4.1 Use of Color | Supports | Correct-answer indication uses both colour and a visible check mark. Error states use both colour and text. |
| 1.4.2 Audio Control | Not Applicable | No auto-playing audio. |
| 2.1.1 Keyboard | Supports | All interactive controls (quiz answers, navigation buttons, modal dialogs, dropzone, file input) are keyboard-operable. Modal focus is trapped while open and restored on close. The quiz progress dots are a visual-only mouse shortcut (aria-hidden); every question stays reachable by keyboard via the Back/Next buttons. |
| 2.1.2 No Keyboard Trap | Supports | No keyboard traps. Modal dialogs follow ARIA modal pattern with managed Escape key. |
| 2.1.4 Character Key Shortcuts | Not Applicable | No single-key shortcuts are implemented. |
| 2.2.1 Timing Adjustable | Not Applicable | No time limits. |
| 2.2.2 Pause, Stop, Hide | Supports | No moving, blinking, or scrolling content. Spinner during generation has prefers-reduced-motion: uses a static indicator when motion preference is set to reduce. |
| 2.3.1 Three Flashes or Below Threshold | Supports | No flashing content. |
| 2.4.1 Bypass Blocks | Supports | A visually-hidden skip-to-main-content link is the first focusable element on every page and targets that page's main landmark (<main id="maincontent">, or an equivalent role="main" region), so keyboard and screen-reader users can bypass the repeated navigation. |
| 2.4.2 Page Titled | Supports | Every page has a descriptive <title>. SCORM packages include a <title> matching the course name. |
| 2.4.3 Focus Order | Supports | Focus order is logical and matches the visual sequence. Learner section progression moves focus to the next section heading. |
| 2.4.4 Link Purpose (In Context) | Supports | All links have descriptive text or accessible names. Generic 'click here' links do not appear. |
| 2.5.1 Pointer Gestures | Supports | No multi-point or path-based gestures required. |
| 2.5.2 Pointer Cancellation | Supports | All actions trigger on mouseup/click, not mousedown. Drag and drop to the upload zone also supports click-to-browse. |
| 2.5.3 Label in Name | Supports | Visible button labels match or are contained in the accessible name. |
| 2.5.4 Motion Actuation | Not Applicable | No device-motion activation. |
| 3.1.1 Language of Page | Supports | All pages set html lang="en". SCORM lesson packages set the lang attribute to match the selected generation language (en, es, fr, de, pt). |
| 3.2.1 On Focus | Supports | No context change occurs on focus. |
| 3.2.2 On Input | Supports | No context change occurs automatically on input. Settings take effect only when the generation button is clicked. |
| 3.3.1 Error Identification | Supports | Validation errors are described in text. File-type errors, API errors, and form validation messages are surfaced as labelled text alerts. |
| 3.3.2 Labels or Instructions | Supports | All form fields have visible labels. Instructions appear before or adjacent to the relevant control. |
| 4.1.1 Parsing | Supports | HTML output from the Next.js build passes W3C validation for structural correctness. No duplicate IDs in generated markup. |
| 4.1.2 Name, Role, Value | Supports | All UI components have names from visible labels or aria-label. Custom interactive elements use appropriate ARIA roles and states. |
| 4.1.3 Status Messages | Supports | Dynamic status messages (generation progress, toast notifications, quiz feedback) use aria-live regions so screen readers announce them without focus change. |
WCAG 2.1 — Level AA
| Criteria | Conformance Level | Remarks |
|---|---|---|
| 1.2.4 Captions (Live) | Not Applicable | No live audio content. |
| 1.2.5 Audio Description (Prerecorded) | Not Applicable | No video content. |
| 1.3.4 Orientation | Supports | Layout adapts to both portrait and landscape. No orientation lock. |
| 1.3.5 Identify Input Purpose | Supports | Email fields use autocomplete="email". No other WCAG 1.3.5 input purposes apply to the current form surface (the invite field is a free-form multi-line list, not a single structured name input). |
| 1.4.3 Contrast (Minimum) | Supports | Text-to-background contrast meets 4.5:1 for body text and 3:1 for large text. Primary blue (#2563eb on white) is 5.17:1. Muted text (#5e6e82 on white) is 5.21:1; on the page background (#f6f8fb) it is 4.90:1. The faint slate (#94a3b8) is reserved for large/bold eyebrow labels and decorative numerals, not body text. The training player's “Not Passed” result heading (#b91c1c on #fef2f2, 5.91:1) meets the full 4.5:1 body-text minimum. |
| 1.4.4 Resize Text | Supports | Page text can be resized to 200% without loss of content or functionality. Layout uses relative units (rem/em). |
| 1.4.5 Images of Text | Supports | No images of text. All text is rendered as HTML/CSS. |
| 1.4.10 Reflow | Supports | Content reflows at 320px viewport width without horizontal scrolling (except data tables which have overflow-x scroll with a visible scroll affordance). |
| 1.4.11 Non-text Contrast | Supports | Interactive UI components (buttons, inputs, dropzone border) have at least 3:1 contrast ratio against adjacent colours. |
| 1.4.12 Text Spacing | Supports | No CSS hard-codes line-height, letter-spacing, or word-spacing in ways that would break layout when overridden by user stylesheets. |
| 1.4.13 Content on Hover or Focus | Supports | Tooltip-style content is not used. Hover states do not introduce new meaningful content. |
| 2.4.5 Multiple Ways | Supports | Users can reach any page via navigation links or the site footer. Pages are linked from related content. |
| 2.4.6 Headings and Labels | Supports | Headings are hierarchical and descriptive. Form labels describe their purpose. |
| 2.4.7 Focus Visible | Supports | A visible focus indicator is present on all keyboard-focusable elements using :focus-visible with a 2px solid accent-colour outline. |
| 3.1.2 Language of Parts | Partially Supports | SCORM packages export with the correct html lang for English and Spanish. French, German, and Portuguese packages set html lang correctly on the outer shell; individual section content is AI-generated and may contain incidental English phrases (section check answers) in edge cases. This will be fully resolved in a forthcoming update. |
| 3.2.3 Consistent Navigation | Supports | Navigation is presented consistently on every page. |
| 3.2.4 Consistent Identification | Supports | Identical components are identified consistently across pages. |
| 3.3.3 Error Suggestion | Supports | When errors are detected (invalid file type, empty quiz, API error), the message describes what went wrong and what the user can do to correct it. |
| 3.3.4 Error Prevention (Legal, Financial, Data) | Supports | Publishing a hosted course shows the email address and course name before submitting. Regeneration of a quiz prompts for confirmation when edits would be lost. |
Section 508 — Functional Performance Criteria (Chapter 3)
| Functional Performance Criteria | Conformance Level | Remarks |
|---|---|---|
| 302.1 Without Vision | Supports | The web application and SCORM player are operable with a screen reader. All content is available to users relying on assistive technology without vision. |
| 302.2 With Limited Vision | Supports | Text resizes to 200% without loss of function. High-contrast CSS variables are respected. Focus indicators are visible. |
| 302.3 Without Perception of Color | Supports | No information is conveyed by colour alone. |
| 302.4 Without Hearing | Not Applicable | No audio content. |
| 302.5 With Limited Hearing | Not Applicable | No audio content. |
| 302.6 Without Speech | Not Applicable | No speech input required. |
| 302.7 With Limited Manipulation | Supports | All controls are keyboard-accessible. No actions require fine motor control beyond standard mouse/keyboard interaction. |
| 302.8 With Limited Reach and Strength | Partially Supports | No physical hardware requirements. Quiz answer options meet or exceed 44×44 CSS px via padding, and the hosted player's Back/Next buttons clear it (~44.3 px). The quiz progress dots are a supplementary visual-only mouse shortcut with enlarged 20×20 px hit areas at 26 px spacing (WCAG 2.2 target-size minimum); in the exported SCORM package the Back/Next buttons render about 43.6 px tall — marginally under the 44 px floor, which is not enforced on all controls. |
| 302.9 With Limited Language, Cognitive, and Learning Abilities | Partially Supports | SCORM packages export in 5 languages. The guided tour and inline help lower cognitive load for the authoring tool. Completion certificates and section progress cues support learners. A full plain-language review has not been conducted. |
Section 508 — Software (Chapter 5)
| Criteria | Conformance Level | Remarks |
|---|---|---|
| 502.2.1 User Control of Accessibility Features | Supports | The application does not override system accessibility features. |
| 502.2.2 No Disruption of Accessibility Features | Supports | The application does not interfere with assistive technology. |
| 502.3 Accessibility Services | Supports | Built with standard HTML, CSS, and WAI-ARIA; compatible with OS-level accessibility APIs through the browser. |
| 503.4 User Controls for Captions and Audio Description | Not Applicable | No audio or video content. |
| 504.2 Authoring Tool Accessibility | Partially Supports | The SwiftSCORM authoring interface is keyboard and screen-reader accessible. The section flowchart editor uses standard inputs. A full ATAG 2.0 audit is planned. |
Chapter 6 — Support Documentation and Services
| Criteria | Conformance Level | Remarks |
|---|---|---|
| 601.1 Scope | Supports | This conformance report serves as the accessibility documentation for SwiftSCORM. |
| 602.2 Accessibility and Compatibility Features | Supports | Accessibility features are documented in this Accessibility Conformance Report (VPAT). Keyboard navigation, screen reader support, and reduced-motion behavior are described in the sections above. |
| 602.3 Electronic Support Documentation | Supports | The tutorial, FAQ, and this VPAT are available as accessible HTML pages. |
| 602.4 Alternate Formats | Supports | Accessible HTML format is the primary format. PDF export of this page is available via browser print-to-PDF. |
| 603.2 Assistance to People with Disabilities | Supports | Support is available via security@swiftscorm.com. Accessibility issues are treated as high-priority bugs. |
Known Limitations
Items in active development:
- 3.1.2 Language of Parts: Section-check answers in multi-language SCORM packages may occasionally contain English phrases in edge cases. Under review.
- 302.9 Cognitive Load: A plain-language audit of authoring-tool copy and in-app instructions is planned.
VPAT® is a registered service mark of the Information Technology Industry Council (ITI).
Questions about this report? Contact security@swiftscorm.com. Enterprise and government buyers may request a completed 508 questionnaire.