MathVoice — Voluntary Product Accessibility Template (VPAT) 2.5 WCAG Edition
Voluntary Product Accessibility Template (VPAT®) 2.5
WCAG Edition — Conformance Report for MathVoice Studio v5 & MathVoice API v2.0
Product Name
MathVoice Studio / MathVoice API
Product Version
Studio v5.0, API v2.0.0
Report Date
May 2026
Report Version
1.0
Vendor
MathVoice — [email protected]
URL
https://mathvoice.app
Contact
mathvoice.app/contact
Notes
Testing conducted via automated axe-core checks (Playwright CI) and manual testing on Windows 11 + NVDA 2026.1 + MathCAT 0.7.5, Chrome 148.

Applicable Standards / Guidelines

Terms

WCAG 2.1 Success Criteria — Level A

CriterionLevelConformanceRemarks
1.1.1 Non-text ContentASupportsAll icons have aria-hidden="true". Formula images have aria-hidden="true"; MathML is the accessible alternative. Mic button has descriptive aria-label.
1.3.1 Info and RelationshipsASupportsSemantic HTML5 landmarks (header, main, aside, nav). Mode toggle uses role="group" with aria-label. Diff log uses role="status" and aria-live="polite".
1.3.2 Meaningful SequenceASupportsDOM order matches visual reading order. CSS grid layout does not alter logical tab sequence.
1.3.3 Sensory CharacteristicsASupportsNo instructions rely solely on colour or position. Status indicated by text label and icon together.
1.4.1 Use of ColourASupportsStatus states (ready/thinking/error) use both colour and a text label. Mode buttons labelled by text, not colour alone.
2.1.1 KeyboardASupportsAll functionality operable via keyboard. Spacebar triggers mic. Tab navigates all interactive controls. Formula clickable area redirects focus to command input.
2.1.2 No Keyboard TrapASupportsNo keyboard traps present. ASK mode picker dismissable via Escape equivalent.
2.4.1 Bypass BlocksASupportsSkip links provided: "Skip to formula" and "Skip to command input".
2.4.2 Page TitledASupportsDocument title "MathVoice Studio v5" identifies purpose.
2.4.3 Focus OrderASupportsFocus order follows logical sequence: mode bar → formula → mic → command input → sidebar.
4.1.1 ParsingASupportsHTML validates. No duplicate IDs. KaTeX-generated markup is well-formed.
4.1.2 Name, Role, ValueASupportsAll form controls have visible or programmatic labels. Mode buttons use aria-pressed. Mic button uses aria-pressed for toggle state. ASR provider uses role="radiogroup".

WCAG 2.1 Success Criteria — Level AA

CriterionLevelConformanceRemarks
1.4.3 Contrast (Minimum)AASupportsAll text/background combinations meet ≥4.5:1 ratio. Primary text (#0e1117 on #ffffff) = 19.1:1. Muted text (#596070 on #f7f8fa) = 5.1:1. Accent colour (#1a5fff on #ffffff) = 5.7:1.
1.4.4 Resize TextAASupportsLayout is responsive. Text scales to 200% without horizontal scroll or loss of content. KaTeX formulas scale proportionally.
1.4.5 Images of TextAANot ApplicableNo images of text used. All text rendered as live text or SVG.
1.4.10 ReflowAASupportsSingle-column layout at 320px CSS width. No two-dimensional scrolling required.
1.4.11 Non-text ContrastAASupportsIcon buttons have 3:1+ contrast on background. Focus indicators visible at 3:1+ against surrounding colour.
1.4.12 Text SpacingAASupportsIncreased letter-spacing, word-spacing, and line-height via user stylesheet does not cause content loss.
1.4.13 Content on HoverAANot ApplicableNo hover-only content. Tooltips are supplementary.
2.4.6 Headings and LabelsAASupportsAll sections have descriptive headings. Form inputs have visible labels or aria-label.
2.4.7 Focus VisibleAASupports:focus-visible style applied globally: 2px solid #1a5fff with 2px offset. Visible on all interactive elements.
3.1.1 Language of PageASupportslang="en" set on all HTML documents.
3.2.1 On FocusASupportsNo unexpected context changes on focus.
3.2.2 On InputASupportsNo context changes on input without user initiation. Form submit requires explicit Run button click or Enter key.
3.3.1 Error IdentificationASupportsParse errors announced in aria-live="polite" status region with descriptive text.
3.3.2 Labels or InstructionsASupportsCommand input has placeholder with example commands. All form controls have accessible names.
4.1.3 Status MessagesAASupportsAll mutation results, errors, and status changes announced via aria-live="polite" regions. Verified with NVDA on Windows 11.

WCAG 2.2 — New Success Criteria

CriterionLevelConformanceRemarks
2.4.11 Focus Appearance (minimum)AASupportsFocus indicator area ≥CSS pixels for perimeter. Offset ensures visibility against adjacent colours.
2.5.3 Label in NameASupportsVisible button labels match or are contained within accessible names.
2.5.7 Dragging MovementsAANot ApplicableNo drag operations required.
2.5.8 Target Size (minimum)AASupportsInteractive targets are ≥24×24 CSS pixels. Mic button is 38×38px. Primary buttons ≥44px tall.
3.2.6 Consistent HelpASupportsHelp contact ([email protected]) available in consistent location across pages.
3.3.7 Redundant EntryANot ApplicableNo multi-step form flows that would require redundant entry.
3.3.8 Accessible AuthenticationAANot ApplicableFree tier requires no authentication. Pro tier authentication not included in this scope.

Section 508 — Additional Requirements

CriterionConformanceRemarks
E205.3 — Alternative formatsSupportsMathML output via /api/mathml provides accessible alternative to visual rendering.
E207.2 — WCAG 2.0 Level AASupportsAll WCAG 2.0 AA criteria met as evidenced above.
E501.1 — Single point of accessSupportsAll features accessible from the Studio web application without separate assistive products (beyond a screen reader).

Math-Specific Accessibility Notes

MathVoice has specific accessibility considerations related to its core function — rendering and editing mathematical formulas — that go beyond standard WCAG conformance:

LTI 1.3 / Learning Management System Embedding

MathVoice Studio supports embedding via LTI 1.3 (Learning Tools Interoperability) in Learning Management Systems including Canvas (Instructure), Moodle, Schoology, and Blackboard. The embedded Studio interface meets all applicable WCAG 2.1 AA criteria listed above when rendered inside an LMS iframe.

FeatureConformanceRemarks
LTI 1.3 OIDC LaunchSupportsOIDC discovery and JWKS endpoints provided at /.well-known/openid-configuration and /api/jwks.
iframe embedding (Canvas, Moodle)SupportsCSP frame-ancestors allows known LMS domains. Keyboard and screen reader access preserved in embedded context.
postMessage APISupportsHost page can control Studio (SET_LATEX, GET_LATEX, SET_MODE, RUN_COMMAND) via postMessage with origin validation.
Certification
This VPAT was completed by MathVoice in May 2026.

Testing conducted:
• Automated: axe-core via Playwright CI (all builds)
• Manual: Windows 11 + NVDA 2026.1 + MathCAT 0.7.5, Chrome 148

For questions or corrections, contact [email protected]

VPAT® is a registered trademark of the Information Technology Industry Council (ITI).