Whit Accessibility Conformance Report
WCAG Edition — VPAT® Version 2.5
Name of Product/Version: Whit (WHIT) web application, version 2026.09 (release commit 1448aa8)
Product Description: Whit is an AI-powered writing, thinking and formative-assessment platform for grades 3 through 12, all subject areas. It is a browser-based web application (Chromebook-first, mobile-responsive) with four access levels: student, teacher, school leader and district administrator. It includes AI writing coaches that stream responses in real time (Elaboration Tutor, Talk with WHIT, Debatotron, AP FRQ Coach), formative assessment tools (exit tickets, WHIT Leaves quizzes), teacher analytics dashboards, benchmark deployment and analytics for school and district leaders, and exported documents (PDF, CSV, DOCX). Integrations: Google Classroom, OneRoster, QR class join.
Date: September 20, 2026
Contact Information: Casey Cuny, Founder & CEO — cacuny@gmail.com — https://www.whitai.app/accessibility/
Notes: This report was prepared internally by Whit's engineering team. No third-party evaluation has been performed. The product is scored as it existed at commit 1448aa8 on 2026-09-20, plus the global accessibility baseline (skip links, visible focus indicator, reduced-motion and forced-colors handling) added the same day, which is noted where it changes a verdict. Findings are identified as G1–G5 codes; they are catalogued with reproduction steps in the Audit Findings Log (docs/accessibility/AUDIT_FINDINGS.md) and tracked with target dates in the Remediation Plan (docs/accessibility/REMEDIATION_PLAN.md). This report will be reissued for each release that changes user-facing screens.
Evaluation Methods Used:
- Automated testing with axe-core 4.13.0 (via @axe-core/playwright 4.13.0, Playwright 1.63.0, Chromium 153) against 56 public and authenticated screens across all roles (student secondary, student elementary, teacher, school leader, administrator), viewport 1366×768, rule tags wcag2a, wcag2aa, wcag21a, wcag21aa, wcag22aa. The same crawl runs in continuous integration on every code change.
- Scripted checks for criteria axe cannot assess: keyboard focus visibility on every focusable element, reflow at 320 CSS px, WCAG text-spacing override, presence of skip links and main landmarks, page-title uniqueness.
- Exact contrast computation for all 443 foreground/background pairings in the design system (WCAG relative-luminance formula).
- Expert code review of all 172 Django templates, 26 first-party JavaScript files and 14 stylesheets against each WCAG 2.1 Level A and AA success criterion, organised in five surface groups, including surfaces the crawl cannot reach (streaming AI sessions, dialogs in their open state, PDF and DOCX generation code paths).
- Not performed: testing with screen readers (NVDA, VoiceOver, ChromeVox), Windows High Contrast rendering, physical tablet touch testing, user testing with people with disabilities, PDF/UA validation of generated files. Criteria that depend on assistive-technology behaviour are scored from code review and are never rated higher than Partially Supports.
Applicable Standards/Guidelines
| Standard/Guideline | Included In Report |
|---|---|
| Web Content Accessibility Guidelines 2.0 | Level A (Yes), Level AA (Yes), Level AAA (No) |
| Web Content Accessibility Guidelines 2.1 | Level A (Yes), Level AA (Yes), Level AAA (No) |
| Web Content Accessibility Guidelines 2.2 | Not formally reported; 2.2-only AA criteria (2.4.11, 2.5.7, 2.5.8, 3.3.7) are noted in remarks where evaluated |
| Revised Section 508 standards (2017) | Chapters 3, 5 and 6 included as a courtesy (see Section 508 Report); Chapter 4 (hardware) not applicable |
Terms
The terms used in the Conformance Level information are defined as follows:
- Supports: The functionality of the product has at least one method that meets the criterion without known defects or meets with equivalent facilitation.
- Partially Supports: Some functionality of the product does not meet the criterion.
- Does Not Support: The majority of product functionality does not meet the criterion.
- Not Applicable: The criterion is not relevant to the product.
- Not Evaluated: The product has not been evaluated against the criterion. This can only be used in WCAG Level AAA criteria.
WCAG 2.1 Report
Tables 1 and 2 also document conformance with Revised Section 508 Chapter 5 (501.1 Scope, 504.2 Content Creation or Editing) and Chapter 6 (602.3 Electronic Support Documentation).
Table 1: Success Criteria, Level A
| Criteria | Conformance Level | Remarks and Explanations |
|---|---|---|
| 1.1.1 Non-text Content (Level A) | Does Not Support | Icon-only buttons with no accessible name on core student and teacher screens (essay editor formatting toolbar, copy-class-code, debate carousel controls, analytics export/close/dismiss controls, sidebar and drawer controls; 27 nodes on 8 screens in the automated pass; G1-010, G2-002, G3-008, G4-009, G5-013). Chart.js canvases carry no role and no data equivalent; per-question result dots on the quiz results grid are empty spans with no exposed name (G4-003, G4-008). About thirty decorative Font Awesome icons in the teacher layout alone are not hidden from assistive technology (G3-008). Teacher-authored alt text for quiz stimulus images is discarded on per-question images and in the enlarged view (G2-019). Loading indicators and Font Awesome icons are not marked decorative (G1-017, G1-027). Teacher voice feedback has no text alternative (G2-003). Decorative images, the QR join poster (QR plus printed code and URL), elementary artwork and the newer partials are handled correctly. Remediation: October–December 2026. |
| 1.2.1 Audio-only and Video-only (Prerecorded) (Level A) | Does Not Support | Teacher-recorded audio feedback shown to students (secondary and elementary) has no transcript, and no transcript field exists in the data model (G2-003, G5-006). Silent marketing demo loops on the home and tour pages have a label but no equivalent text description (G5-008). Remediation: December 2026 (automatic transcripts); interim guidance asks teachers to add a written comment with every recording. |
| 1.2.2 Captions (Prerecorded) (Level A) | Does Not Support | The two narrated product films on the public tour page have no caption track; no <track> element exists anywhere in the product (G5-007). No captioned video exists in the authenticated application. Remediation: November 2026. |
| 1.2.3 Audio Description or Media Alternative (Prerecorded) (Level A) | Does Not Support | No transcript or audio description for the narrated tour films (G5-007). Remediation: November 2026. |
| 1.3.1 Info and Relationships (Level A) | Does Not Support | No <main> landmark on the teacher, secondary-student and sensitive-operation layouts (G2-001, G5-011). Form controls with placeholder-only or orphan labels on AI tools and sign-up flows; a contenteditable editor with no role; radio groups without group names; custom tabs, dropdowns and comboboxes without semantics (G1-005, G1-006, G1-029, G2-009, G2-011, G2-015, G2-016, G2-028). Read-aloud buttons injected inside labels and headings on elementary pages (G1-019). Roughly ninety unassociated or placeholder-only controls across the teacher authoring wizards, with hidden native inputs behind styled div cards (G3-001, G3-006, G3-024). More than 170 analytics table header cells lack scope, twenty-plus tables have no caption or accessible name, and heatmap row headers are data cells (G4-006). Every exported PDF is untagged, five PDF templates have no headings and no table header carries scope (G5-001, G5-002, G5-003). The WHIT Leaves question card, elementary shell, assignment schedule modal and class-management forms are correctly structured. |
| 1.3.2 Meaningful Sequence (Level A) | Partially Supports | Reading order is correct on HTML screens; alias annotation of streamed text preserves order. Exceptions: the closed Rhetorical Practice panel remains in the sequence off-screen (G1-009), the elementary Paragraph Builder re-parents the writing box after feedback (G1-022), and untagged PDFs have no defined reading order (G5-001). |
| 1.3.3 Sensory Characteristics (Level A) | Supports | No instructions were found that rely solely on shape, colour, size, location or sound. "Click to zoom" and similar pointer wording is reported under 2.1.1 rather than here. |
| 1.4.1 Use of Color (Level A) | Does Not Support | Formatting state in the essay editor, the active tab in account settings, assignment filters, quiz question completion state, debate stance selection and Talk with WHIT step completion are conveyed by colour or shape only (G1-008, G1-035, G2-002, G2-015, G2-017, G2-030). The safety badge's severity is colour-only once its aria-label suppresses the count (G3-025, G5-013). On teacher analytics, per-question result dots, result/trend/change indicators, canon severity dots, score tiers and lesson-plan favourite state are colour-only (G3-034, G4-003, G4-018, G4-019); heatmap cells, deltas, tier badges and status pills do carry text. AI-generated content is signalled by purple but is always paired with a text label ("Whit's Feedback"). PDF heat tables always pair colour with a text value. On the district benchmark campaign dashboard every form control (21 labels, 11 inputs, 9 selects) is unnamed and the Delete Campaign dialog has no dialog semantics (G4F-001, G4F-002). Chart and heatmap evaluation is recorded in the Audit Findings Log (groups G4 and G4F). |
| 1.4.2 Audio Control (Level A) | Partially Supports | Nothing auto-plays with sound except Talk with WHIT, which reads each AI question aloud by default using browser text-to-speech; a keyboard-reachable toggle with aria-pressed stops it (G1-024). Interaction with screen-reader speech has not been tested at runtime. All audio elements use preload="none" and never autoplay. |
| 2.1.1 Keyboard (Level A) | Does Not Support | Teacher: creating a writing assignment cannot be completed by keyboard because class, response-type, method, rubric and AI-feedback choices are styled div cards over hidden native inputs (G3-001); the same pattern blocks quiz selection, exit-ticket question type, the release-results switch and both wizards' class pickers (G3-031, G3-032); Google Classroom course selection is click-only, so roster import cannot finish (G3-023); WHIT Leaves question reordering is drag-only (G3-010); lesson-plan cards, quiz/debate selector bars, student result rows, standards bar rows and sortable headers are mouse-only (G4-001, G4-002, G4-015, G4-017, G4-018); a document-level arrow-key handler on the class dashboard steals the caret in every text field (G3-038). Student: elaboration technique cards are div elements with click handlers only (G1-003); quiz stimulus images can only be enlarged with a pointer (G2-018); the teacher-audio scrubber is click-only (G2-004); rich tooltips cannot be revealed by keyboard (G5-013). Hold-to-talk, file drop zones, debate speech input, sign-in/sign-up and the elementary surfaces are keyboard operable. Remediation: October 2026 for the teacher authoring blockers. |
| 2.1.2 No Keyboard Trap (Level A) | Supports | No keyboard trap was found on any screen. (Several dialogs have the inverse defect, focus escaping the dialog; reported under 2.4.3.) |
| 2.1.4 Character Key Shortcuts (Level A) | Partially Supports | No letter, punctuation or symbol shortcuts are implemented. The class dashboard binds Left/Right arrow keys at document level with no focus guard, no way to turn the binding off and no remap (G3-038); arrow keys are not single-character keys under the criterion's definition but the binding is reported here and under 2.1.1 and 3.2.2 because it interferes with text editing. |
| 2.2.1 Timing Adjustable (Level A) | Does Not Support | Submission confirmation screens on exit tickets, WHIT Leaves quizzes and both Elaboration Tutors navigate away automatically after 2.2–4 seconds with no way to stop or extend (G1-023, G2-006). The authenticated session expires a fixed 4 hours after sign-in with no warning and no extension mechanism (G2-007, G5-017); essay drafts are preserved in local storage, which mitigates data loss but does not meet the criterion. Teacher toasts and onboarding-tour invitations that contain actionable buttons remove themselves after 3.2–12 seconds with no way to pause or extend (G3-015); the district analytics page reloads itself when a digest run completes, with no warning (G4-013). The AP FRQ practice timer imposes no limit and never auto-submits. Remediation: October 2026 (redirects, toast timing), November 2026 (session warning and extension, reload). |
| 2.2.2 Pause, Stop, Hide (Level A) | Does Not Support | Indefinite loading, pulse and typing-dot animations across the AI tools with no pause control (G1-015); a typewriter reveal in Debatotron that runs several seconds with no skip (G1-016); the elementary read-aloud hint animates indefinitely (G2-032). The global reduced-motion baseline added 2026-09-20 disables these when the operating system preference is set, which does not by itself satisfy the criterion. The home-page marquee and carousels have pause controls. |
| 2.3.1 Three Flashes or Below Threshold (Level A) | Supports | No content flashes more than three times per second; the fastest animation is a 1 Hz streaming caret. |
| 2.4.1 Bypass Blocks (Level A) | Partially Supports | A "Skip to main content" link is present on all base layouts (added 2026-09-20) and on the home, tour and legal pages. Remaining gaps: no <main> landmark on teacher, secondary-student and sensitive layouts, and no skip link on five standalone templates including the Elaboration Tutor and Debatotron (G1-021, G5-011). Remediation: October 2026. |
| 2.4.2 Page Titled (Level A) | Does Not Support | Every teacher page inherits the hard-coded title "Whit Teacher Dashboard" (the teacher layout has no title block, so the three templates that try to override it are ignored; G3-019, G4-020). Four distinct student pages share the title " Student Dashboard"; the essay writing interface is hard-coded to "AP Language FRQ 3" regardless of assignment; account settings inherits the teacher dashboard title (G2-027). Titles are correct on the AI tools, marketing pages, elementary pages and PDF templates (though untagged PDFs discard them, G5-001). Remediation: October 2026. |
| 2.4.3 Focus Order (Level A) | Does Not Support | Of about 46 dialogs in the teacher surfaces, ten declare role="dialog", three move focus in, one traps focus and none make the background inert (G3-002); the same holds for the global teacher AI Tools modal, student class dashboard overlays, writing-interface overlays, exit-ticket success dialog, practice-sentence modal, debate feedback modal, FRQ modal, five benchmark-admin modals, Talk with WHIT student drawers and the shared chat drawer (G1-004, G1-011, G1-018, G2-005, G4-011, G4-012, G4-033, G5-009). Wizard step changes move no focus (G3-036). Off-screen panels marked aria-hidden remain in the tab order (G3-033, G4-024); the collapsed benchmark campaign picker keeps up to forty hidden buttons in the tab order (G4A-C1); list re-renders after a filter change destroy the focused control (G4A-C2); teacher-role users have focus moved to the Standards tab on every data refresh (G4A-S9, needs runtime verification). The closed Rhetorical Practice panel stays in the tab order (G1-009); a focusable off-screen honeypot leads the parent data-request form (G2-029). Correct implementations exist on the elementary practice modal, the student AI Tools modal, the FRQ text preview and the upgrade modal, and are the reference for remediation. Remediation: November 2026. |
| 2.4.4 Link Purpose (In Context) (Level A) | Does Not Support | Eight teacher navigation links lose their visible text between 768 and 1023 px (a 1366 px Chromebook at 150% zoom) and have no accessible name (G5-012). Link text elsewhere is descriptive. Remediation: October 2026. |
| 2.5.1 Pointer Gestures (Level A) | Supports | No path-based or multipoint gestures; hold-to-talk is a press-and-hold with a keyboard equivalent. |
| 2.5.2 Pointer Cancellation (Level A) | Supports | Actions complete on pointer-up; hold-to-talk aborts on pointer cancel. |
| 2.5.3 Label in Name (Level A) | Partially Supports | Accessible names contain the visible text on most controls. Exceptions: the safety-alert badge whose aria-label replaces its visible count (G5-013) and an exemplar-card button whose aria-label ("Copy exemplar card") does not contain its visible label "Copy quote" (G3-039). |
| 2.5.4 Motion Actuation (Level A) | Not Applicable | No functionality is operated by device motion or user motion. |
| 3.1.1 Language of Page (Level A) | Partially Supports | Every HTML page and PDF template declares lang="en". Generated PDFs carry no /Lang entry because they are untagged, and the DOCX export sets no language (G5-001, G5-023). |
| 3.2.1 On Focus (Level A) | Supports | No change of context occurs on focus. |
| 3.2.2 On Input (Level A) | Partially Supports | Two roster-report scope selects submit their form and navigate on change, with only a <noscript> fallback button (G4-028); the class-dashboard arrow-key handler changes the visible panel while typing in a field (G3-038). Elsewhere, changing the Talk with WHIT speech language updates a status line only and stance/topic selection only enables a button. Buttons "disabled" by CSS during an in-flight analysis remain operable and can trigger duplicate actions (G3-016, G5-021). Remediation: October 2026. |
| 3.3.1 Error Identification (Level A) | Does Not Support | Sign-in, sign-up, password-reset and exit-ticket sign-up errors are rendered as plain text blocks not associated with the field and not announced (G2-012); paste-blocked warnings, turn-in failures and character-limit states are visual only (G1-028, G2-021); Google One Tap failures are logged to the console only (G2-013); the quiz Submit button is disabled with no reachable explanation (G2-036). Teacher authoring wizards use novalidate and report errors in a footer far from the field, unannounced and unassociated; all four toast implementations are roleless (G3-004, G3-030). Talk with WHIT submit errors, the pricing form, the contact form and the benchmark campaign form (which sets aria-invalid, writes a text error and moves focus) are correct. Remediation: October–November 2026. |
| 3.3.2 Labels or Instructions (Level A) | Partially Supports | Most fields have visible labels. Exceptions: placeholder-only inputs on every AI composer (G1-005), orphan labels on exit-ticket sign-up and account settings (G2-011), unlabelled editor toolbar selects (G2-002), a placeholder-only join-class field, and the focusable honeypot (G2-029). Remediation: October 2026. |
| 4.1.1 Parsing (Level A) | Partially Supports | Two student tool templates emit markup before the doctype, putting the browser into quirks mode (G1-033); interactive controls are nested inside labels and inside role="button" cards (G1-019, G1-031). No duplicate IDs or unclosed elements were flagged by the automated pass. |
| 4.1.2 Name, Role, Value (Level A) | Does Not Support | The largest cluster of defects. Unnamed icon-only buttons and unlabelled selects on student and teacher screens (55 critical nodes in the automated pass across 9 screens); custom tabs, dropdowns, filters, comboboxes and stance selectors with no role or state; dialogs without role="dialog"; toggle buttons whose state never changes; the essay editor exposed as an unnamed textbox (G1-003 to G1-011, G1-018, G1-030, G1-031, G2-002, G2-004, G2-008, G2-009, G2-014 to G2-018, G2-035, G5-009, G5-012, G5-021). Correct patterns exist (elementary shell, quiz question card, chat drawer controls, newer partials). Remediation: October–November 2026. |
Table 2: Success Criteria, Level AA
| Criteria | Conformance Level | Remarks and Explanations |
|---|---|---|
| 1.2.4 Captions (Live) (Level AA) | Not Applicable | The product contains no live synchronized media. |
| 1.2.5 Audio Description (Prerecorded) (Level AA) | Does Not Support | No audio description or media alternative for the narrated tour films (G5-007). |
| 1.3.4 Orientation (Level AA) | Supports | No orientation lock; all layouts render in portrait and landscape. |
| 1.3.5 Identify Input Purpose (Level AA) | Does Not Support | Name, email and telephone fields on sign-up, Google sign-up completion, exit-ticket sign-up and the parent data-request form carry no autocomplete token (G2-010). Sign-in, password fields and the pricing form are correct. Remediation: October 2026. |
| 1.4.3 Contrast (Minimum) (Level AA) | Does Not Support | 151 failing text nodes on 29 of 56 screens in the automated pass (185 before the 2026-09-20 base-layout change). Root causes: muted grey and teal-grey tokens used for real content (#94a7b0, #9ca3af, #a0aec0 at 2.26:1–2.54:1), mid-greys and light blues at 3.05:1–4.4:1 for tab labels, subtitles and stat captions, white text on the semantic green and amber fills, white on a light purple gradient (1.39:1), 6.5 px labels in the quiz PDF, heatmap values and status text at 2.56:1–4.47:1, standards-list legends and inactive dashboard tab labels at 3.16:1–3.7:1, and class-card icon buttons at 1.48:1 (G1-012, G1-013, G2-024, G3-014, G3-042, G4-005, G4-019, G4-023, G5-004, G5-015, G5-016). Primary text, headings, the teal/cream brand pairing (9.66:1) and AI purple on white (5.70:1) pass. The design-system matrix (CONTRAST_MATRIX.md) identifies every failing token pairing. Remediation: October 2026 for shared tokens. |
| 1.4.4 Resize Text (Level AA) | Partially Supports | Zoom is never blocked (no viewport meta tag restricts scaling anywhere in the product) and text scales on most screens. The essay writing interface clips at 200% and above (G2-026); teacher navigation loses link names at zoomed widths (G5-012); PDF body text is set at 5.5–7 pt and untagged PDFs cannot reflow (G5-026). |
| 1.4.5 Images of Text (Level AA) | Supports | No images of text other than logos; PDFs contain live text only. |
| 1.4.10 Reflow (Level AA) | Does Not Support | At 320 CSS px, 10 of 56 screens require horizontal scrolling (6–404 px of overflow): the student class dashboard, the essay writing interface, the class dashboard, edit assignment, exit-ticket dashboard (a 600 px decorative pseudo-element), FRQ dashboard, FRQ prompt selection, the Talk with WHIT preview and the class join poster; the Rhetorical Practice panel becomes 96 px wide; four dashboard features are removed outright below 768 px instead of reflowing, and two results tables clip inside overflow: hidden wrappers (G1-025, G2-026, G3-037). Wide analytics tables scroll horizontally but the scroll containers are not keyboard focusable (G4-007). Remediation: November 2026. |
| 1.4.11 Non-text Contrast (Level AA) | Does Not Support | Component-level focus indicators were removed or replaced with 10–25% alpha rings on nine templates, including the student writing editor and the elementary answer box (G1-014, G2-025, G5-014); the elementary read-aloud focus ring is 2.65:1. The global two-tone focus ring added 2026-09-20 now provides a ≥3:1 indicator on every base-layout page, so this criterion is expected to move to Partially Supports once component overrides are removed. Analytics question-status dots (1.51:1–2.54:1), standards bar fills (1.29:1 and 2.44:1 against their track), comparison-bar fills, legend keys, icon strokes and custom form-control borders (1.23:1–2.8:1) fail against their backgrounds (G4-004, G4-023, G4B-C6, G4B-C7, G4B-C8). In Windows High Contrast every flat-colour status dot, legend key and bar chart on the benchmark page becomes a uniform block and the custom checkbox loses its checked state (G4B-FC1, not runtime-verified). Eight component :focus rules on teacher screens still strip the ring's dark backing (G3-005). Filled buttons without borders will lose their boundary in Windows High Contrast (G5-018, not runtime-verified). |
| 1.4.12 Text Spacing (Level AA) | Partially Supports | The WCAG text-spacing override produced no clipped or overlapping text on any of the 56 screens as loaded, and no fixed pixel line-heights exist in first-party CSS. Code review found expandable analytics panels with fixed max-height and overflow: hidden (standards detail 120 px, insight accordions 600 px) and line-clamped card text whose expanded content can be cut off once spacing is increased (G4-015, G4-016). |
| 1.4.13 Content on Hover or Focus (Level AA) | Does Not Support | The product-standard rich tooltip is hover-only, uses pointer-events: none, cannot be dismissed with Escape and cannot be reached by keyboard (G5-013, used in 16 templates); native title tooltips remain on two controls (G1-032). Remediation: November 2026. |
| 2.4.5 Multiple Ways (Level AA) | Supports | Public pages are reachable through site navigation, footer links and a sitemap. Authenticated screens are steps in a process (dashboard → class → assignment) and are also reachable from persistent navigation. |
| 2.4.6 Headings and Labels (Level AA) | Partially Supports | Headings and labels are descriptive on HTML screens. Exceptions: every elementary read-aloud button shares one name and pollutes the label it sits in (G1-019, G1-020); five PDF templates have no headings (G5-002); heading levels skip on a few marketing and Talk with WHIT pages (G5-019). |
| 2.4.7 Focus Visible (Level AA) | Partially Supports | A global high-contrast focus ring now applies on every base-layout page (added 2026-09-20) and the automated pass found no focusable element without a visible change on 54 of 56 screens. Remaining: standalone templates (Elaboration Tutor, Debatotron) do not load the baseline; debate stance buttons remove the outline with no replacement (G1-008); component outline: none rules with near-invisible rings remain to be removed (G2-025, G5-010, G5-014). Remediation: October 2026. |
| 3.1.2 Language of Parts (Level AA) | Does Not Support | The Talk with WHIT speech-language picker lists about 55 non-English option labels (Russian, Arabic, Chinese, Japanese, Hebrew and others) with no lang attribute and no dir for right-to-left scripts, on secondary and elementary pages (G1-007). No other multilingual content exists. Remediation: October 2026. |
| 3.2.3 Consistent Navigation (Level AA) | Supports | Navigation items appear in the same order on every page within each role's layout. |
| 3.2.4 Consistent Identification (Level AA) | Partially Supports | Close controls are variously an unnamed "×", a Font Awesome icon, or a labelled button across dialogs (G1-010, G2-005, G5-009); export and refresh controls have inconsistent or missing names. Consistency will follow from the 4.1.2 remediation. |
| 3.3.3 Error Suggestion (Level AA) | Partially Supports | Server-side form validation returns Django's descriptive messages; client-side errors on sign-up, exit-ticket sign-up and the quiz Submit state do not say what to correct (G2-012, G2-036). |
| 3.3.4 Error Prevention (Legal, Financial, Data) (Level AA) | Partially Supports | Pricing checkout requires explicit consent and review. The student data-deletion request submits with one click and no confirmation step; it is reversible only because an administrator must approve it (G2-040). |
| 4.1.3 Status Messages (Level AA) | Does Not Support | AI responses stream into containers with no live region and no completion announcement on Talk with WHIT, Debatotron, Rhetorical Practice and both Elaboration Tutors (G1-001); the shared chat drawer used by Chat with Results and the analysis dashboards places aria-live on the whole message list and rewrites the reply on every token, causing repeated announcements (G1-002, G4-010); on teacher surfaces only nine live regions exist across roughly 54,000 lines of template, all four toast implementations are roleless, AI-generation progress is written into disabled buttons, and the multi-minute district analytics progress indicator is silent (G3-004, G3-035, G4-013, G4-014); loading, save, paste-blocked, grading-progress, filter, copy and submission-success messages are silent (G1-017, G1-028, G2-006, G2-017, G2-020 to G2-022, G2-035); quiz word-count and progress regions over-announce on every keystroke (G2-023). Correct live regions exist on the student dashboard toasts, quiz save status, elementary messages and the practice-verdict region. Remediation: November 2026. |
Table 3: Success Criteria, Level AAA
Not evaluated. Level AAA criteria are outside the conformance target.
WCAG 2.2 criteria noted during evaluation (not part of the formal conformance claim)
| Criteria | Conformance Level | Remarks and Explanations |
|---|---|---|
| 2.4.11 Focus Not Obscured (Minimum) (Level AA) | Partially Supports | Sticky top navigation and fixed bottom bars set no scroll-padding, so a focused control may scroll under them (G1-026, G2-037); dialogs that do not trap focus leave focusable content under overlays (G2-005, G5-009). Needs runtime verification. |
| 2.5.7 Dragging Movements (Level AA) | Partially Supports | WHIT Leaves question reordering in the authoring wizard is drag-only with no keyboard or single-pointer alternative (G3-010). File drop zones have click and keyboard equivalents; smart/heterogeneous grouping and all other interactions do not use dragging. Remediation: October 2026. |
| 2.5.8 Target Size (Minimum) (Level AA) | Partially Supports | Elementary controls are 44–64 px and most secondary controls exceed 24 px; the teacher dashboard's class-card edit and archive buttons (about 20 px, overlapping a larger card target), six other 12–22 px icon controls and the home-page carousel dots are under 24 px (8 nodes in the automated pass; G3-027, G3-042, G5-020). |
| 3.3.7 Redundant Entry (Level A) | Supports | Form values are repopulated after errors; essay and quiz drafts are restored from server and local storage; FRQ creation carries choices between steps. |
Revised Section 508 Report
Chapter 3: Functional Performance Criteria (FPC)
| Criteria | Conformance Level | Remarks and Explanations |
|---|---|---|
| 302.1 Without Vision | Does Not Support | Streaming AI responses, many dialogs, icon-only controls and several forms are not usable without vision (see 1.1.1, 1.3.1, 2.4.3, 4.1.2, 4.1.3). Screen-reader testing has not been performed. |
| 302.2 With Limited Vision | Does Not Support | Contrast failures on 31 screens and reflow failures on 10 screens (see 1.4.3, 1.4.10, 1.4.11). |
| 302.3 Without Perception of Color | Partially Supports | Several states are conveyed by colour only (see 1.4.1); most content pairs colour with text. |
| 302.4 Without Hearing | Does Not Support | Teacher audio feedback has no transcript; tour films have no captions (see 1.2.1, 1.2.2). |
| 302.5 With Limited Hearing | Does Not Support | As 302.4. |
| 302.6 Without Speech | Supports | Every speech feature (Talk with WHIT, debate speech input) has a typed alternative that is always available. |
| 302.7 With Limited Manipulation | Does Not Support | Core teacher tasks (creating an assignment, importing a Google Classroom roster, reordering quiz questions, opening lesson plans and student results) are not keyboard operable (see 2.1.1); small targets under 2.5.8. |
| 302.8 With Limited Reach and Strength | Partially Supports | As 302.7; no functionality requires simultaneous actions or sustained pressure except hold-to-talk, which has a Space/Enter equivalent. |
| 302.9 With Limited Language, Cognitive, and Learning Abilities | Partially Supports | Plain-language instruction, grade-appropriate AI feedback, read-aloud on elementary pages and autosave support this population; timed auto-redirects and the fixed session limit work against it (see 2.2.1). |
Chapter 4: Hardware
Not applicable. Whit is a web application and does not include hardware.
Chapter 5: Software
| Criteria | Conformance Level | Remarks and Explanations |
|---|---|---|
| 501.1 Scope – Incorporation of WCAG 2.0 AA | See WCAG 2.1 section | See information in the WCAG 2.1 section. |
| 502.2.1 User Control of Accessibility Features | Not Applicable | Whit is not platform software. |
| 502.2.2 No Disruption of Accessibility Features | Supports | Whit does not disrupt browser or operating-system accessibility features; the application honours the reduced-motion and forced-colors preferences on all base layouts. |
| 502.3 Accessibility Services (502.3.1–502.3.14) | Partially Supports | Whit relies on the browser's accessibility services and standard HTML/ARIA. Name, role, state and value are not exposed on the controls listed under 4.1.2; text and focus are exposed correctly elsewhere. |
| 502.4 Platform Accessibility Features | Not Applicable | Whit is not platform software. |
| 503.2 User Preferences | Supports | Whit inherits browser and operating-system settings for colour, contrast (forced colors), font size (no zoom blocking) and reduced motion. |
| 503.3 Alternative User Interfaces | Not Applicable | Whit does not provide an alternative user interface that functions as assistive technology. |
| 503.4 User Controls for Captions and Audio Description | Not Applicable | No captions or audio descriptions are provided (see 1.2.2, 1.2.5); once provided, native browser video controls will apply. |
| 504.2 Content Creation or Editing | Partially Supports | Teachers and students author content in Whit. Authoring uses standard HTML controls and a rich-text editor (TipTap/ProseMirror) whose toolbar and editing surface lack accessible names (G2-002, G1-006). Exports: HTML content is preserved; PDF exports discard structure (G5-001). |
| 504.2.1 Preservation of Information Provided for Accessibility in Format Conversion | Does Not Support | PDF and DOCX exports do not preserve headings, table structure or alternative text (G5-001, G5-023). |
| 504.2.2 PDF Export | Does Not Support | Exported PDFs are not tagged and do not conform to PDF/UA (G5-001). Remediation: December 2026 (WeasyPrint pdf/ua-1 variant plus template structure). |
| 504.3 Prompts | Partially Supports | Quiz authoring prompts teachers for image alternative text but does not require it, and the value is not always rendered (G2-019). |
| 504.4 Templates | Partially Supports | Lesson-plan, quiz and exit-ticket templates produce HTML that inherits the defects noted above. |
Chapter 6: Support Documentation and Services
| Criteria | Conformance Level | Remarks and Explanations |
|---|---|---|
| 601.1 Scope | Heading cell – no response required | |
| 602.2 Accessibility and Compatibility Features | Supports | The public accessibility statement at https://www.whitai.app/accessibility/ documents accessibility features, known limitations and compatibility. |
| 602.3 Electronic Support Documentation | Partially Supports | The accessibility statement and this report are published as conforming HTML pages. Other product documentation is delivered in-app (subject to the defects above) and as PDF (untagged). |
| 602.4 Alternate Formats for Non-Electronic Support Documentation | Not Applicable | No non-electronic documentation is provided. |
| 603.2 Information on Accessibility and Compatibility Features | Supports | Support is available by email from the accessibility contact; the statement page explains available features and how to request assistance. |
| 603.3 Accommodation of Communication Needs | Supports | Support is provided by email; districts may request a walkthrough with their assistive-technology specialist. No telephone-only channel is used. |
Legal disclaimer (Whit)
This document describes Whit's own evaluation of its product against the standards listed above as of the date shown. It is provided for information only and does not constitute a certification, warranty or legal representation of conformance. Whit will update this report for subsequent releases and on request.