Calricula Accessibility Conformance Report
WCAG Edition
Based on VPAT Version 2.5 Rev
Download Word DocumentProduct Information
- Name of Product/Version
- Calricula v1.0
- Report Date
- December 20, 2025
- Product Description
- Calricula is an AI-assisted Curriculum Management System for educational institutions. It is a web-based application that allows faculty to create, modify, and approve Course Outlines of Record (CORs) and Programs. Features include AI-assisted authoring, compliance checking against state regulations (PCAH/Title 5), and an approval workflow dashboard.
- Contact Information
- accessibility@calricula.com
- Notes
- This report covers the web-based faculty interface accessed via modern web browsers (Chrome, Firefox, Safari, Edge).
- Evaluation Methods
- Automated testing via axe-core, manual code review of React components, keyboard-only navigation testing, and visual inspection of color contrast ratios.
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 | Level A (Yes), Level AA (Yes), Level AAA (No) |
Terms
- 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 (WCAG 2.x Level AAA only).
WCAG 2.x Report
This report covers WCAG 2.0, 2.1, and 2.2 success criteria at Level A and Level AA.
Table 1: Success Criteria, Level A
| Criteria | Conformance Level | Remarks and Explanations |
|---|---|---|
| 1.1.1 Non-text Content | Supports | All images have appropriate alt text. Decorative icons use aria-hidden="true". Interactive icons have accessible labels. |
| 1.2.1 Audio-only and Video-only (Prerecorded) | Not Applicable | The application does not contain audio-only or video-only content. |
| 1.2.2 Captions (Prerecorded) | Not Applicable | The application does not contain prerecorded synchronized media. |
| 1.2.3 Audio Description or Media Alternative (Prerecorded) | Not Applicable | The application does not contain prerecorded synchronized media. |
| 1.3.1 Info and Relationships | Supports | The application uses semantic HTML5 for all content. The login page uses <main> for primary content, the sidebar uses <aside> with aria-label for navigation regions. |
| 1.3.2 Meaningful Sequence | Supports | Content is presented in a logical reading order that matches the DOM structure. |
| 1.3.3 Sensory Characteristics | Supports | Instructions do not rely solely on sensory characteristics such as shape, size, or location. |
| 1.4.1 Use of Color | Supports | Color is not used as the only visual means of conveying information. Status badges use both color and text labels. |
| 1.4.2 Audio Control | Not Applicable | The application does not contain audio that plays automatically. |
| 2.1.1 Keyboard | Supports | All interactive elements are accessible via keyboard tab sequence. Custom widgets use Headless UI for proper keyboard handling. |
| 2.1.2 No Keyboard Trap | Supports | Focus is not trapped in any component. Modal dialogs properly manage focus and allow exit via Escape key. |
| 2.1.4 Character Key Shortcuts | Not Applicable | The application does not implement character key shortcuts. |
| 2.2.1 Timing Adjustable | Supports | The application does not impose time limits on user interactions. |
| 2.2.2 Pause, Stop, Hide | Not Applicable | The application does not contain moving, blinking, scrolling, or auto-updating content. |
| 2.3.1 Three Flashes or Below Threshold | Supports | The application does not contain content that flashes more than three times per second. |
| 2.4.1 Bypass Blocks | Supports | A "Skip to main content" link is present in the PageShell component, targeting #main-content on the main element. |
| 2.4.2 Page Titled | Supports | Each page has a descriptive title set via Next.js metadata. |
| 2.4.3 Focus Order | Supports | Focus order follows a logical sequence that preserves meaning and operability. |
| 2.4.4 Link Purpose (In Context) | Supports | Link text is descriptive or can be determined from context. Course links include course codes and titles. |
| 2.5.1 Pointer Gestures | Supports | All functionality that uses multipoint or path-based gestures can be operated with a single pointer. |
| 2.5.2 Pointer Cancellation | Supports | Click/tap events use the up-event pattern by default in React. |
| 2.5.3 Label in Name | Supports | Visible labels match accessible names for form controls and buttons. |
| 2.5.4 Motion Actuation | Not Applicable | The application does not use device motion for functionality. |
| 3.1.1 Language of Page | Supports | The HTML lang attribute is set to "en" in the Next.js layout. |
| 3.2.1 On Focus | Supports | Receiving focus does not trigger unexpected changes of context. |
| 3.2.2 On Input | Supports | Changing form control values does not trigger unexpected changes of context. |
| 3.3.1 Error Identification | Supports | Form validation errors are displayed with clear error messages and visual indicators. |
| 3.3.2 Labels or Instructions | Supports | Form fields have visible labels and placeholder text providing guidance. |
| 4.1.1 Parsing | Supports | HTML is validated and contains no duplicate IDs or improper nesting. |
| 4.1.2 Name, Role, Value | Supports | Custom widgets are implemented using Headless UI which manages ARIA states and focus programmatically. |
Table 2: Success Criteria, Level AA
| Criteria | Conformance Level | Remarks and Explanations |
|---|---|---|
| 1.2.4 Captions (Live) | Not Applicable | The application does not contain live synchronized media. |
| 1.2.5 Audio Description (Prerecorded) | Not Applicable | The application does not contain prerecorded synchronized media. |
| 1.3.4 Orientation | Supports | Content displays correctly in both portrait and landscape orientations. |
| 1.3.5 Identify Input Purpose | Supports | Form inputs use appropriate autocomplete attributes where applicable. |
| 1.4.3 Contrast (Minimum) | Supports | All text meets the 4.5:1 contrast ratio requirement. Primary content uses text-slate-900/dark:text-white. Secondary text uses text-slate-600/dark:text-slate-400. |
| 1.4.4 Resize Text | Supports | Text can be resized up to 200% without loss of content or functionality. Uses relative units (rem). |
| 1.4.5 Images of Text | Supports | The application does not use images of text. All text is rendered as HTML. |
| 1.4.10 Reflow | Supports | The application is built with responsive CSS that adapts to 320px width without horizontal scrolling. |
| 1.4.11 Non-text Contrast | Supports | UI components maintain at least 3:1 contrast against adjacent colors. |
| 1.4.12 Text Spacing | Supports | Content can be displayed with increased text spacing without loss of functionality. |
| 1.4.13 Content on Hover or Focus | Supports | Tooltip content can be dismissed via Escape key and remains visible while hovered. |
| 2.4.5 Multiple Ways | Supports | Users can navigate via sidebar menu, direct URL access, and search functionality. |
| 2.4.6 Headings and Labels | Supports | Headings describe topic or purpose. Form labels describe input purposes. |
| 2.4.7 Focus Visible | Supports | Interactive elements use visible focus indicators via focus-visible:ring-2. |
| 3.1.2 Language of Parts | Supports | Content is in English throughout; no mixed-language content. |
| 3.2.3 Consistent Navigation | Supports | Navigation patterns are consistent across pages. |
| 3.2.4 Consistent Identification | Supports | Components with the same functionality have consistent labels. |
| 3.3.3 Error Suggestion | Supports | Form validation provides specific suggestions for correcting errors. |
| 3.3.4 Error Prevention (Legal, Financial, Data) | Supports | Course submissions include confirmation dialogs. Data deletion requires confirmation. |
| 4.1.3 Status Messages | Supports | Status messages use appropriate ARIA live regions. |
Table 3: Success Criteria, Level AAA
WCAG 2.x Level AAA criteria are not evaluated as part of this report. Level AAA conformance is not typically required and represents an aspirational target.
Legal Disclaimer
This document is provided for informational purposes regarding the accessibility of Calricula. This is not a certification of accessibility, but rather a self-assessment based on the evaluation methods described above. Accessibility is an ongoing effort, and this report represents the status as of the report date. For questions or to report accessibility issues, please contact accessibility@calricula.com.