# Corvalon HRM Accessibility Conformance Report

## VPAT Version 2.5 (Revised Section 508 Edition)

**Product:** Corvalon HRM Platform
**Version:** Current release
**Report Date:** 2026-03-19
**Contact:** accessibility@corvalonhrm.com

---

## Evaluation Methods

Corvalon evaluates accessibility using the following methods:

| Method | Tool/Approach | Frequency |
|--------|--------------|-----------|
| Automated testing | jest-axe (axe-core engine) | Every build (CI/CD) |
| Static analysis | eslint-plugin-jsx-a11y | Every build (CI/CD) |
| Manual testing | Keyboard navigation, screen reader (NVDA, VoiceOver) | Per feature release |
| Standards reference | WCAG 2.1 AA | Continuous |

---

## Applicable Standards

This report covers the following standards:

- **WCAG 2.1** (W3C Recommendation, June 2018) at Level AA
- **Revised Section 508** (36 CFR 1194, January 2017)

---

## 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.1 Level A Conformance

| Criteria | Conformance Level | Remarks |
|----------|-------------------|---------|
| **1.1.1 Non-text Content** | Supports | All images and icons include alt text or aria-label attributes. Decorative images use `alt=""` or `aria-hidden="true"`. lucide-react icons include accessible labels. |
| **1.2.1 Audio-only and Video-only** | Not Applicable | Platform does not include audio or video content. |
| **1.2.2 Captions** | Not Applicable | No video content in the platform. |
| **1.2.3 Audio Description or Media Alternative** | Not Applicable | No video content in the platform. |
| **1.3.1 Info and Relationships** | Supports | Semantic HTML used throughout (headings, lists, tables, form labels). shadcn/ui components provide proper ARIA roles and relationships. |
| **1.3.2 Meaningful Sequence** | Supports | DOM order matches visual presentation. CSS layout does not alter reading order. |
| **1.3.3 Sensory Characteristics** | Supports | Instructions do not rely solely on shape, color, size, or location. |
| **1.4.1 Use of Color** | Supports | Color is not the sole means of conveying information. Status badges include text labels alongside color indicators. |
| **1.4.2 Audio Control** | Not Applicable | No auto-playing audio. |
| **2.1.1 Keyboard** | Supports | All interactive elements are keyboard accessible. Tab order follows logical flow. Custom components (drag-drop calibration, org chart) include keyboard alternatives. |
| **2.1.2 No Keyboard Trap** | Supports | Focus can be moved away from all components using standard keyboard controls. Modal dialogs trap focus appropriately and release on close. |
| **2.1.4 Character Key Shortcuts** | Not Applicable | No single-character keyboard shortcuts implemented. |
| **2.2.1 Timing Adjustable** | Supports | Session timeout includes warning and extension option. No other time-limited interactions. |
| **2.2.2 Pause, Stop, Hide** | Not Applicable | No auto-updating or moving content. |
| **2.3.1 Three Flashes or Below Threshold** | Supports | No content flashes more than three times per second. |
| **2.4.1 Bypass Blocks** | Supports | "Skip to content" link provided at top of every page. Landmark regions (`<main>`, `<nav>`, `<header>`) defined throughout. |
| **2.4.2 Page Titled** | Supports | Each page has a descriptive title via Next.js metadata. |
| **2.4.3 Focus Order** | Supports | Tab order follows logical reading sequence. |
| **2.4.4 Link Purpose** | Supports | Link text is descriptive or supplemented with aria-label. |
| **2.5.1 Pointer Gestures** | Supports | No multi-point or path-based gestures required. Single-pointer alternatives available for all interactions. |
| **2.5.2 Pointer Cancellation** | Supports | Actions trigger on mouseup/click, not mousedown. |
| **2.5.3 Label in Name** | Supports | Visible labels match accessible names. |
| **2.5.4 Motion Actuation** | Not Applicable | No motion-activated features. |
| **3.1.1 Language of Page** | Supports | HTML `lang` attribute set dynamically based on user locale. RTL support for applicable languages. |
| **3.2.1 On Focus** | Supports | Focus does not trigger unexpected context changes. |
| **3.2.2 On Input** | Supports | Form inputs do not trigger unexpected context changes. Submit buttons required for form submission. |
| **3.3.1 Error Identification** | Supports | Form validation errors are identified in text and associated with the relevant field via aria-describedby. React Hook Form + Zod provide structured error messages. |
| **3.3.2 Labels or Instructions** | Supports | All form fields have visible labels. Required fields are indicated. Help text provided where needed. |
| **4.1.1 Parsing** | Supports | HTML is well-formed (React/Next.js enforces valid output). |
| **4.1.2 Name, Role, Value** | Supports | shadcn/ui components built on Radix UI primitives provide correct ARIA roles, states, and properties. Custom components include appropriate ARIA attributes. |

---

## WCAG 2.1 Level AA Conformance

| Criteria | Conformance Level | Remarks |
|----------|-------------------|---------|
| **1.3.4 Orientation** | Supports | Content is not restricted to a single display orientation. |
| **1.3.5 Identify Input Purpose** | Supports | Input fields use appropriate `autocomplete` attributes for personal data fields. |
| **1.4.3 Contrast (Minimum)** | Supports | Text and interactive elements meet 4.5:1 contrast ratio. Tailwind CSS color palette reviewed for compliance. |
| **1.4.4 Resize Text** | Supports | Content remains functional at 200% zoom. Responsive design with relative units. |
| **1.4.5 Images of Text** | Supports | Text is used instead of images of text throughout. No images containing text. |
| **1.4.10 Reflow** | Supports | Content reflows without horizontal scrolling at 320px viewport width (1280px at 400% zoom). |
| **1.4.11 Non-text Contrast** | Supports | UI components and graphical objects meet 3:1 contrast ratio against adjacent colors. |
| **1.4.12 Text Spacing** | Supports | Content adapts to user-defined text spacing without loss of functionality. |
| **1.4.13 Content on Hover or Focus** | Supports | Tooltip and popover content is dismissible, hoverable, and persistent until dismissed. |
| **2.4.5 Multiple Ways** | Supports | Multiple navigation methods: sidebar navigation, search, breadcrumbs, keyboard shortcuts. |
| **2.4.6 Headings and Labels** | Supports | Descriptive headings and labels throughout. Heading hierarchy (h1-h6) properly structured. |
| **2.4.7 Focus Visible** | Supports | Keyboard focus indicators are clearly visible on all interactive elements. Tailwind CSS `focus-visible` ring applied consistently. |
| **3.1.2 Language of Parts** | Supports | i18n system handles language tagging. Content language changes are marked when applicable. |
| **3.2.3 Consistent Navigation** | Supports | Navigation structure is consistent across all pages within a module. Module sidebar persists across child pages. |
| **3.2.4 Consistent Identification** | Supports | Components with the same functionality are identified consistently across the platform. |
| **3.3.3 Error Suggestion** | Supports | Validation errors include suggestions for correction where possible. |
| **3.3.4 Error Prevention (Legal, Financial)** | Supports | Payroll submissions, benefit enrollments, and other consequential actions require confirmation. Two-phase import (dry-run + commit). Approval workflows for critical changes. |
| **4.1.3 Status Messages** | Supports | Status messages (toast notifications via Sonner, inline alerts) use `role="status"` or `aria-live` regions for screen reader announcement without focus change. |

---

## Testing Environment

| Component | Details |
|-----------|---------|
| Operating systems | Windows 11, macOS Sonoma |
| Browsers | Chrome (latest), Firefox (latest), Safari (latest), Edge (latest) |
| Screen readers | NVDA (Windows), VoiceOver (macOS/iOS) |
| Automated tools | axe-core (via jest-axe), eslint-plugin-jsx-a11y |
| Testing approach | Combination of automated scanning and manual keyboard/screen reader testing |

---

## Known Limitations

1. **Complex data visualizations** (org chart, analytics charts): While alternative text summaries are provided, some complex interactive visualizations may have limited screen reader support. Data tables are provided as alternatives.
2. **Drag-and-drop interactions** (9-box calibration): Keyboard alternative is provided via arrow keys and Enter, but the experience differs from the mouse-based interaction.

---

## Feedback

We welcome feedback on the accessibility of Corvalon HRM. If you encounter accessibility barriers:

- **Email:** accessibility@corvalonhrm.com
- **Response time:** Within 5 business days
- **Remediation:** Accessibility issues are prioritized alongside security issues in our development process

---

## Revision History

| Date | Description |
|------|-------------|
| 2026-03-19 | Initial VPAT publication |
