Accessibility conformance (interim statement)¶
LessonKit targets WCAG 2.1 Level AA patterns for shipped React blocks (framework 1.7.x, block catalog v3). This page is an interim statement for enterprise evaluators—not a VPAT or formal conformance report.
Current status¶
Item |
Status |
|---|---|
WCAG 2.1 AA target |
Design goal for framework components |
Published VPAT / ACR |
Not available |
Third-party audit |
Not completed |
Automated a11y CI gate |
Component unit tests + Storybook; no full-page audit in CI |
What is implemented¶
Semantic structure (
Course,Lesson, assessments with labels and live regions)Keyboard alternatives for drag-and-drop style blocks
Focus utilities in
@lessonkit/accessibility(focus trap, roving tabindex)Reduced-motion handling where applicable (e.g. parallax fallbacks)
Theme tokens (
--lk-*) for contrast-aware authoringTouch targets (
--lk-touch-target-min, 44px default) and pointer-based drag on web (1.8+)
See Accessibility reference, Theming and accessibility, and Touch and mobile.
Per-block interim status (1.7.x catalog)¶
Status key: Implemented = keyboard + labeled controls in framework code; Partial = known gaps or author-dependent content; Author = framework provides structure; author must supply accessible content.
Block |
Category |
Interim status |
Target size (2.5.5) |
Notes |
|---|---|---|---|---|
|
Assessment |
Implemented |
Implemented (1.8) |
Radio/checkbox group semantics; multi-select Check gate (1.7); |
|
Assessment |
Implemented |
Implemented (1.8) |
Up/Down reorder buttons; no drag reorder |
|
Assessment |
Implemented |
Partial |
Text input or reveal-only mode (1.7) |
|
Assessment |
Implemented |
Implemented (1.8) |
Labeled media choices; required |
|
Compound |
Implemented |
Implemented (1.8) |
Sequential MCQ steps; aggregated score (1.7) |
|
Assessment |
Implemented |
Implemented (1.8) |
Two-option labeled controls |
|
Assessment |
Implemented |
Partial |
Inline inputs with labels |
|
Assessment |
Implemented |
Implemented (1.8) |
Pick-and-place on touch; pointer drag; keyboard paths |
|
Compound |
Implemented |
Implemented (1.8) |
Focus on choice navigation (1.5+) |
|
Compound |
Implemented |
Implemented (1.8) |
Keyboard nav; resume announcements |
|
Compound |
Implemented |
Implemented (1.8) |
Cue overlays; keyboard pause |
|
Content |
Partial |
N/A |
Sandboxed iframe; author supplies |
|
Content |
Implemented |
N/A |
Data table fallback for screen readers |
|
Content |
Implemented |
N/A |
Caption + header cells (1.6) |
|
Content |
Implemented |
N/A |
List semantics + focus (1.6) |
|
Assessment |
Implemented |
Implemented (1.8) |
Crossword: Tab between inputs; WordSearch: pointer/tap selection |
|
Assessment |
Implemented |
Implemented (1.8) |
Digit inputs with labels (1.6) |
|
Compound |
Partial |
Implemented (1.8) |
Spatial map UI; enlarged stage markers |
|
Content |
Author |
N/A |
Alt text, captions are author responsibility |
|
Content |
Partial |
Implemented (1.8) |
Browser permission UX varies by host (1.6) |
For the full catalog, see Block catalog. Storybook stories document focus order for representative states.
Roadmap (informal)¶
Expand Storybook a11y checks for all P0 assessment blocks
Document known LMS iframe focus limitations per export target
Publish a formal accessibility conformance summary (VPAT/ACR) when audit scope is funded
Questions¶
Open a GitHub issue for accessibility bugs in framework components. For course-specific content, test in your authoring workflow.