For every body.
Last updated June 6, 2026 · View change history
Chill Flows should work as well with a screen reader at 2 a.m. as it does with a trackpad in the afternoon. This page explains what we've done, where we're still catching up, and how to tell us when we've missed something.
Our commitment
Chill Flows is a mind-body-soul community, which means every breath, ritual, and prompt should be usable by everyone, including people who navigate with keyboards, screen readers, voice control, or reduced motion. We measure ourselves against WCAG 2.1 Level AA and work to exceed it wherever we can.
Conformance status
Chill Flows is designed to meet WCAG 2.1 Level AA. As of the date above, all 17 primary routes (Landing, Login, Terms, Privacy, Feed, Profile, Settings, Supporters, Donate, DMs, Meals, Sounds, Events, Boards, Journal, Schedule, Notifications) pass automated axe-core audits with zero violations. We also test manually with keyboard and screen readers.
Features we've built in
Skip-to-content link (first Tab on any page). Semantic landmarks and heading order throughout. Keyboard focus outlines in the brand teal on every interactive element. ARIA labels on every icon-only button. Meaningful alt text on content images, decorative images marked aria-hidden. Color contrast ≥ 4.5:1 for text (WCAG AA), with dedicated darker text-only brand variants. Per-route page titles. Reduced-motion preference honored, animations and smooth-scroll collapse for users who opt in.
Vision board reorder, keyboard accessible
Each tile on your vision board has explicit Move up / Move down / Remove buttons that appear on hover and on keyboard focus. They reorder the tile, persist the new arrangement to your account, and announce "Moved tile 3 up to position 2" via an ARIA live region so screen-reader users hear what changed. Reorder works identically for mouse, touch, and keyboard, no drag-and-drop required.
Journal editor, fully keyboard operable
Every entry tile is a real <button> (Tab-focusable, Enter/Space to open). All toggle controls, section, mood, and tag chips, expose aria-pressed for screen readers, so JAWS/NVDA correctly announce "selected" when a chip is on. Every text input is bound to an explicit <label> via htmlFor, the character counter is announced via aria-live when you approach the 5,000-character limit, and grouped controls use role="group" with aria-labelledby for orientation.
Persistent notifications center
Realtime activity (likes, comments, follows, RSVPs, tips, affirmations) is stored persistently and surfaced in two places: (1) a quick-look dropdown anchored to the bell in the top nav (Esc closes it; focus returns to the bell), and (2) a dedicated /notifications page that lives in the regular navigation. The full-page view is the canonical destination for users with cognitive or short-term-memory disabilities, bookmarkable, no popovers, no time pressure, with All / Unread filters and a Mark-all-read button.
Event tickets, accessible by design
Paid event tickets work fully without a phone or wallet pass: the confirmation email from Stripe contains your ticket details, and your /mytickets page (linked from the post-purchase "Thanks" screen) shows a high-contrast QR card with a strong 4.5:1 quiet zone for assisted-vision scanners. The ticket page also renders the ticket ID in human-readable text under the QR code, so a host can hand-key it if the scanner misses. The host-side scanner page falls back to keyboard-typed ticket IDs whenever camera permission is denied. "Add to Apple Wallet" / "Add to Google Wallet" buttons announce their disabled state ("Apple Wallet not configured") via title + visible variant change for screen readers when platform credentials aren't set on the server.
Yoga & breathwork voice, eyes-closed friendly
The guided yoga timer reads each pose name, breath cue, and modification aloud using your device's text-to-speech engine. We've tuned the default pace and pitch toward a calm, low-stimulation cadence; you can adjust pace, warmth, and volume from the Tune popover during practice and the changes persist across sessions. Audio runs entirely on-device, no microphone access, no recording. Visually-impaired and screen-reader users can practise an entire flow without ever looking at the screen; the pose-change chime, breath-cycle tones, and "Practice complete" announcement are all audible cues.
Reduced motion and sensory comfort
Motion-heavy elements, the PWA slide-out drawers, breath-loop pulsing wind icon, sparkline transitions, and pose-change animations, all honor `prefers-reduced-motion`. Set Reduce Motion in your OS settings and the app drops to static reveals. The yoga voice can be muted from the practice top bar; the breath-loop tones can be skipped by tapping the breath line again. None of the wellness content uses flashing patterns or strobe effects.
Crisis support is never gated
If you type anything indicating self-harm into Dhatu (our Ayurvedic companion), the search is bypassed immediately and a fixed safety card with 24/7 hotlines (988 US, 116 123 UK/IE, 13 11 14 AU, 1-833-456-4566 CA, international findahelpline.com) is rendered. This guardrail has no toggle, no delay, and no paywall.
Compatible assistive tech
Chill Flows is tested against the latest versions of NVDA and JAWS on Windows, VoiceOver on macOS/iOS, and TalkBack on Android. Chrome, Firefox, Safari, and Edge are supported. If you use a different AT and run into barriers, we want to hear about it.
Report a barrier
If anything on Chill Flows is difficult or impossible for you to use, email hello@chillflows.com with the page, what happened, and what you expected. We take accessibility feedback seriously and aim to respond within 5 business days.
Standards we follow
WCAG 2.1 Level AA (W3C). Section 508 of the US Rehabilitation Act. European EN 301 549 guidelines. We re-audit with axe-core on every release.

