This page is available in English only. The English version is the binding one.
Accessibility
Accessibility Statement
Cairn is committed to making its service accessible to everyone, including people who use assistive technology. This page describes our current conformance status, known limitations, and how to reach us if you encounter a barrier.
Target standard
Cairn targets WCAG 2.2 Level AA conformance, the current W3C Recommendation (October 2023). No automated tool alone determines WCAG conformance. Per W3C guidance, our audit combines automated signals with manual keyboard, focus, ARIA, and semantic structure review.
Scope
This audit covers all public-facing pages and authenticated flows:
- Landing page, How it works, About, Pricing, Contact
- Legal pages: Privacy Policy, Terms of Service, Cookie Policy, Refund Policy
- Authentication: Log in, Reset password
- App shell: Assessment chat, Plan dashboard, Progress tracking
- Account settings
What passes
- Skip navigation: A visible “Skip to main content” link appears as the first focusable element on every page.
- Landmarks: Every page uses
<header>,<nav>,<main>, and<footer>with distinct ARIA labels where multiple navs appear. - Heading hierarchy: One
<h1>per page with correct descending hierarchy. - Forms: All inputs are associated to visible labels. Error messages are linked to the specific field via
aria-describedby. Success and error states are announced to screen readers viarole="alert"oraria-live. - Modals: All dialogs use Radix UI Dialog, which provides automatic focus trapping and focus-return on close. Escape dismisses all modal overlays.
- Icon buttons: Every icon-only button has an explicit
aria-label. Decorative icons carryaria-hidden="true". - Motion: All CSS animations are wrapped in
@media (prefers-reduced-motion: reduce)blocks. JavaScript-driven scroll and animation behavior is gated on the same preference. - Keyboard navigation: Locked or loading nav items expose their state via
aria-disabledandaria-busy. Account dropdowns close on Escape with focus returned to the trigger. - Current page: Active links carry
aria-current="page"in all navigation regions.
Known limitations
The --muted-foreground token in dark mode has been adjusted and now renders at a lightness that meets the WCAG 1.4.3 minimum of 4.5:1 for normal text on the dark background. This affected secondary labels in the sidebar, settings, and metadata text.
The placeholder X, Instagram, and LinkedIn footer links (previously non-functionalhref="#" anchors) have been removed, so no dead links remain in the footer. Real social links may return once accounts are established.
Small icon buttons (Add child, Delete child) have been updated to meet the WCAG 2.5.8 minimum of 24×24 CSS pixels. The stricter 44×44 px target (WCAG 2.5.5, Level AAA) is not yet met.
Section dividers in the settings navigation (“Profile”, “Plan & billing”, etc.) are visual only and are not programmatically associated with the items they group. Future work will addrole="group" with aria-label.
Testing methodology
- Static code review: all page, component, and CSS files audited for semantic structure, ARIA attributes, label associations, live regions, and motion handling
- Keyboard testing: manual verification of Tab order, focus visibility, modal traps, and Escape-key behaviour
- Automated signal: Lighthouse and ESLint (not treated as proof of conformance)
- Pattern verification: Radix UI components verified against ARIA Authoring Practices Guide
Per W3C guidance: no automated tool alone determines WCAG conformance. Items requiring live screen-reader testing (NVDA, VoiceOver) and real-device mobile testing are not yet verified.
Contact
To report an accessibility barrier or request an accommodation, email us at hello@cairnplan.com. We aim to respond within 3 business days.