Skip to main content
Accessibility

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.

One-Tap Install

Add Chill Flows to your home screen.