Accessibility
Voluntary Product Accessibility Template (VPAT®) 2.5
Last updated: 2026-04-11
Product Information
- Product Name
- CASO Comply (casocomply.com web platform)
- Product Version
- Continuous deployment — assessment reflects the state of the platform as of 2026-04-11
- Product Description
- AI-powered PDF and Office document accessibility remediation SaaS. Scope of this VPAT covers the marketing website, the authenticated customer dashboard, and internal admin tooling. The CASO Comply on-premise Docker remediation agent (a headless Java/Python runtime with no user interface) is out of scope.
- Report Date
- April 9, 2026
- Contact Information
- accessibility@casocomply.com
- Evaluation Methods Used
- Automated static analysis via eslint-plugin-jsx-a11y configured at error level in CI; runtime WCAG 2.1 / 2.2 A+AA rule-set testing via @axe-core/playwright on every pull request and push to main (GitHub Actions workflow:
.github/workflows/playwright-e2e.yml); TypeScript strict mode; developer keyboard navigation testing; browser developer tools contrast and landmark inspection; visual contrast verification against the documented color token palette. No third-party audit has been performed. No formal screen reader testing with NVDA, JAWS, or VoiceOver has been conducted. - Applicable Standards/Guidelines
- Web Content Accessibility Guidelines (WCAG) 2.1 Level A and Level AA; Revised Section 508 standards (2017), which incorporate WCAG 2.0 Level AA by reference.
Conformance Terms
| Term | Definition |
|---|---|
| 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. Can be used only in WCAG 2.x Level AAA. |
Conformance Summary
Across the 50 WCAG 2.1 Level A and Level AA success criteria evaluated for the casocomply.com web platform:
- Supports: 40 criteria
- Partially Supports: 0 criteria
- Does Not Support: 0 criteria
- Not Applicable: 10 criteria
WCAG 2.1 Report
Tables 1 through 4 list all Level A and Level AA success criteria grouped by the four WCAG principles.
Table 1: Perceivable
| Criterion | Level | Conformance | Remarks and Explanations |
|---|---|---|---|
| 1.1.1 Non-text Content | A | Supports | Decorative SVG icons use aria-hidden="true". Meaningful images (logos, product screenshots) have descriptive alt text via next/image. Form inputs are labeled via explicit htmlFor/id pairs. |
| 1.2.1 Audio-only and Video-only (Prerecorded) | A | Not Applicable | The casocomply.com web platform contains no prerecorded audio-only or video-only content. If marketing video is added in the future, this row will be re-evaluated. |
| 1.2.2 Captions (Prerecorded) | A | Not Applicable | No prerecorded synchronized media is present on the site. |
| 1.2.3 Audio Description or Media Alternative (Prerecorded) | A | Not Applicable | No prerecorded synchronized media is present on the site. |
| 1.2.4 Captions (Live) | AA | Not Applicable | No live audio content is present on the site. |
| 1.2.5 Audio Description (Prerecorded) | AA | Not Applicable | No prerecorded video content is present on the site. |
| 1.3.1 Info and Relationships | A | Supports | Pages use semantic HTML5 landmarks (header, nav, main, footer). Nested <main> landmark defects were corrected in April 2026. Headings follow a logical hierarchy. Pricing plan names use semantic <h3> headings wired to cards via aria-labelledby. Form inputs are associated with their labels through htmlFor/id pairing (audited and fixed across admin forms in April 2026). |
| 1.3.2 Meaningful Sequence | A | Supports | DOM order matches visual reading order. CSS Grid and Flexbox layouts do not reorder content in a way that would change meaning for assistive technology users. |
| 1.3.3 Sensory Characteristics | A | Supports | Instructions do not rely solely on shape, size, color, or location. Interactive elements are identified by accessible name as well as visual styling. |
| 1.3.4 Orientation | AA | Supports | Site is fully responsive (Tailwind CSS). Content is not restricted to a single display orientation; both portrait and landscape are supported. |
| 1.3.5 Identify Input Purpose | AA | Supports | All 24 form-bearing files were swept in April 2026 and collectively carry 108 autoComplete attributes — 46 semantic tokens (email, name, given-name, family-name, tel, organization, street-address, address-level1/2, postal-code, cc-number, current-password, new-password, etc.) on inputs that collect the user's own personal info, and 62 autoComplete="off" on admin fields that represent third-party data or business metadata. |
| 1.4.1 Use of Color | A | Supports | Color is not used as the sole means of conveying information. Links are underlined or otherwise differentiated beyond color alone. Form validation uses text labels in addition to color. |
| 1.4.2 Audio Control | A | Not Applicable | No audio plays automatically on any page. |
| 1.4.3 Contrast (Minimum) | AA | Supports | Body copy and interactive controls use the documented CASO color token system. Primary CTA style uses caso-blue-deep (#0F6FBA) with white text, which measures 5.6:1. In April 2026 a bulk contrast remediation corrected 96 files that had CTA combinations below 4.5:1. Remaining gray-on-white body text uses gray-900/gray-600 which meet or exceed AA requirements. |
| 1.4.4 Resize Text | AA | Supports | Tailwind CSS uses rem-based sizing throughout, so browser text resize up to 200% reflows without loss of content or functionality. Layouts are mobile-first with responsive breakpoints, and CTAs, navigation, and form controls remain usable at all zoom levels. |
| 1.4.5 Images of Text | AA | Supports | Text is rendered as HTML text in all marketing pages, the dashboard, and admin tooling. Logos are the only images containing stylized text and are essential. |
| 1.4.10 Reflow | AA | Supports | Marketing pages and text content reflow cleanly at 320 CSS pixels wide because the site is built mobile-first with Tailwind responsive utilities. Data-dense admin tables are wrapped in keyboard-accessible scroll regions (role="region", aria-label, tabIndex=0) — allowed under WCAG 1.4.10's two-dimensional layout exception. Screen reader and keyboard users can navigate into and scroll each table. |
| 1.4.11 Non-text Contrast | AA | Supports | Buttons, inputs, and focus indicators use the CASO color tokens and meet the 3:1 threshold against adjacent colors. In April 2026 an icon-only control audit fixed the PdfViewer dismiss button and replaced all low-opacity text-gray-600/40-60 utilities (77 occurrences) with full-opacity text-gray-500 (#6B7280, 4.83:1 on white). Button background/text pairs using bg-caso-blue + text-gray-900 (below 4:1) were corrected to text-white. |
| 1.4.12 Text Spacing | AA | Supports | No inline styles force fixed line-height, letter-spacing, word-spacing, or paragraph spacing. Content survives user stylesheet overrides within the WCAG-specified thresholds. |
| 1.4.13 Content on Hover or Focus | AA | Supports | The mega menu and tooltips are dismissible, hoverable, and persistent. The mega menu supports keyboard focus parity via onFocus/onBlur handlers added in April 2026. |
Table 2: Operable
| Criterion | Level | Conformance | Remarks and Explanations |
|---|---|---|---|
| 2.1.1 Keyboard | A | Supports | Marketing pages, authenticated dashboard navigation, admin forms, and the PdfViewer tag editor are fully keyboard operable. PdfViewer tag rows use role="button" with Enter/Space handlers. PageUp/PageDown (or Alt+Arrow) navigate pages, Escape closes the modal (or the currently open tag-type dropdown), and the focus trap keeps Tab inside the modal. No mouse-only interaction paths exist. |
| 2.1.2 No Keyboard Trap | A | Supports | No component traps keyboard focus. Modals and the mobile navigation overlay can be dismissed with Escape or a close control. |
| 2.1.4 Character Key Shortcuts | A | Not Applicable | The product does not implement any single-character keyboard shortcuts. |
| 2.2.1 Timing Adjustable | A | Supports | The only time-based UI element is a marketing countdown timer to the ADA Title II deadline, which is informational and does not control any user function. No interactive workflow has an enforced time limit. |
| 2.2.2 Pause, Stop, Hide | A | Supports | All marketing animations are CSS-based and respect prefers-reduced-motion. A site-wide nuclear override in globals.css sets animation-duration and transition-duration to 0.01ms for motion-sensitive users, catching both bespoke animations and Tailwind utilities (animate-spin, animate-pulse, animate-bounce). No JavaScript animation libraries are in use. |
| 2.3.1 Three Flashes or Below Threshold | A | Not Applicable | No content on the site flashes more than three times per second. |
| 2.4.1 Bypass Blocks | A | Supports | A skip link ("Skip to main content") is provided on every page via MarketingLayout and targets the #main-content landmark. |
| 2.4.2 Page Titled | A | Supports | Every page exports a descriptive Next.js metadata title. Titles are unique per route and describe the page purpose. |
| 2.4.3 Focus Order | A | Supports | Tab order follows DOM order, which matches the visual reading order. No explicit tabindex values greater than 0 are used. |
| 2.4.4 Link Purpose (In Context) | A | Supports | Links use descriptive text. Icon-only social links in the footer use aria-label (e.g., "CASO on LinkedIn"). |
| 2.4.5 Multiple Ways | AA | Supports | Pages can be reached via the primary navigation mega menu, the footer sitemap, inline contextual links, the XML sitemap, and search engines. State solution pages and blog posts are cross-linked by topic. |
| 2.4.6 Headings and Labels | AA | Supports | Headings and form labels are descriptive of the content or function they introduce. Heading hierarchy was audited in April 2026. |
| 2.4.7 Focus Visible | AA | Supports | All interactive elements render a focus-visible ring (focus-visible:ring-2 focus-visible:ring-caso-blue) on keyboard focus. |
| 2.5.1 Pointer Gestures | A | Supports | All functionality operates with single-pointer taps or clicks. No path-based, pinch, rotate, or multi-finger gestures are required. The PdfViewer highlights tag regions visually but users select tags via a clickable list, not via gesture-based region painting. |
| 2.5.2 Pointer Cancellation | A | Supports | Buttons activate on up-event rather than down-event via default browser behavior. |
| 2.5.3 Label in Name | A | Supports | Accessible names for interactive controls contain the visible text label. Where aria-label is used on icon-only controls it describes the control's purpose. |
| 2.5.4 Motion Actuation | A | Not Applicable | No functionality is triggered by device motion. |
Table 3: Understandable
| Criterion | Level | Conformance | Remarks and Explanations |
|---|---|---|---|
| 3.1.1 Language of Page | A | Supports | The root layout sets <html lang="en"> for every page. |
| 3.1.2 Language of Parts | AA | Not Applicable | The site is currently English only and contains no passages in other languages requiring a lang attribute override. |
| 3.2.1 On Focus | A | Supports | Receiving focus does not trigger a change of context on any control. |
| 3.2.2 On Input | A | Supports | Changing a form control value does not automatically submit a form or navigate. Form submission requires an explicit button press. |
| 3.2.3 Consistent Navigation | AA | Supports | The MarketingLayout navigation and footer appear in a consistent position and order across every marketing page. The authenticated dashboard uses a consistent sidebar layout. |
| 3.2.4 Consistent Identification | AA | Supports | Components with the same function (e.g., the primary CTA, the skip link, social icons) use consistent labels and iconography across pages. |
| 3.3.1 Error Identification | A | Supports | Native HTML form validation surfaces errors in the browser's accessible error messages. React-based form components render error text adjacent to the affected input. |
| 3.3.2 Labels or Instructions | A | Supports | All form inputs have associated labels via htmlFor/id pairs. Required fields are indicated in label text. This was audited and corrected across 41 admin form fields in April 2026. |
| 3.3.3 Error Suggestion | AA | Supports | When input errors are detected and suggestions can be provided (e.g., email format, required fields), React form state renders a human-readable description of the problem. |
| 3.3.4 Error Prevention (Legal, Financial, Data) | AA | Supports | Billing and plan changes route through Stripe Checkout, which supports review and confirmation before payment. Destructive admin actions (e.g., document deletion) require confirmation. |
Table 4: Robust
| Criterion | Level | Conformance | Remarks and Explanations |
|---|---|---|---|
| 4.1.1 Parsing (obsolete in WCAG 2.2) | A | Supports | React with TypeScript produces valid, well-formed markup. Note: this criterion has been removed in WCAG 2.2 as it is no longer relevant to modern browsers. |
| 4.1.2 Name, Role, Value | A | Supports | Native HTML elements are used wherever possible. ARIA attributes (aria-label, aria-expanded, aria-haspopup, aria-labelledby, aria-hidden) are used to augment interactive patterns such as the mega menu and mobile navigation overlay. |
| 4.1.3 Status Messages | AA | Supports | A site-wide sweep in April 2026 added role="alert" to submission errors, role="status" to success/confirmation messages, and aria-live="polite" to progress indicators across 29 files. Field-level validation errors remain wired via aria-describedby to avoid double-announcement. |
Revised Section 508 Report
The Revised Section 508 standards (36 CFR Part 1194, published January 2017) reference WCAG 2.0 Level A and Level AA for web content. Because WCAG 2.1 is a strict superset of WCAG 2.0, the WCAG 2.1 Report above satisfies the web content requirements of Section 508. This section provides the additional functional performance criteria and software standards.
Chapter 3: Functional Performance Criteria (302)
| Criterion | Conformance | Remarks and Explanations |
|---|---|---|
| 302.1 Without Vision | Partially Supports | Semantic HTML, ARIA attributes, alt text, and form labeling provide a foundation for screen reader use. Formal end-to-end screen reader verification with NVDA, JAWS, or VoiceOver has not been performed. |
| 302.2 With Limited Vision | Partially Supports | Color contrast meets WCAG 2.1 AA across the remediated palette. Browser text zoom is supported via rem-based sizing. Full verification at 200% browser zoom and with screen magnifiers is planned. |
| 302.3 Without Perception of Color | Supports | Color is never the sole means of conveying information. Form validation, status indicators, and links are differentiated by text and shape as well as color. |
| 302.4 Without Hearing | Supports | The site contains no essential audio content. |
| 302.5 With Limited Hearing | Supports | No essential audio content is present on the site. |
| 302.6 Without Speech | Supports | No functionality requires speech input from the user. |
| 302.7 With Limited Manipulation | Partially Supports | Marketing and dashboard UI is fully keyboard operable. The PdfViewer tag editor's drag-to-paint region selection workflow requires fine pointer manipulation; an accessible alternative is on the roadmap. |
| 302.8 With Limited Reach and Strength | Supports | No functionality requires simultaneous actions or significant physical effort beyond standard web browser interaction. |
| 302.9 Minimize Cognitive Disability | Supports | Navigation is consistent, language is plain, and error messages describe corrective action. Iconography is paired with text labels. |
Chapter 5: Software (501 and 504)
| Criterion | Conformance | Remarks and Explanations |
|---|---|---|
| 501.1 Scope — Incorporation of WCAG 2.0 AA | See WCAG 2.1 Report | The casocomply.com platform is web-based software. The WCAG 2.1 Report in Tables 1 through 4 satisfies this section because WCAG 2.1 is a strict superset of WCAG 2.0. |
| 502 Interoperability with Assistive Technology | Not Applicable | Applicable to platform software. The casocomply.com platform runs inside the user's web browser and relies on the browser's accessibility API integration. |
| 503 Applications | Supports | User preferences set by the operating system and browser (including prefers-reduced-motion and prefers-color-scheme where applicable) are honored in most components. |
| 504.2 Content Creation or Editing | Partially Supports | The PdfViewer tag editor allows users to create and edit PDF accessibility tags. Its output (remediated PDFs) is validated against PDF/UA via veraPDF. The editing UI itself is partially keyboard operable; drag-to-paint region selection requires pointer input and lacks a keyboard-only alternative today. |
Legal Disclaimer
This VPAT reflects CASO's self-assessment of the casocomply.com platform as of 2026-04-11. No independent third-party audit has been performed. This document is provided for procurement information only and does not constitute a legal warranty or guarantee of accessibility. For the most current conformance information, contact accessibility@casocomply.com.
VPAT® is a registered service mark of the Information Technology Industry Council (ITI).
Accessibility Feedback
We welcome feedback on the accessibility of CASO Comply. If you encounter an accessibility barrier or have questions about this VPAT, please contact us at accessibility@casocomply.com. We aim to respond within five business days.