Accessibility Statement
Last updated: 8 August 2026
Our Commitment
Flowen is built for people who stutter. Many of our users have additional disabilities — anxiety, motor impairments, and neurodivergent conditions are disproportionately prevalent in the stuttering community. We take accessibility seriously, not as a compliance checkbox, but as a core design requirement.
We are working toward conformance with the Web Content Accessibility Guidelines (WCAG) 2.1 at Level AA. This is our current status and the areas where we are still improving.
Conformance Status
Flowen is partially conformant with WCAG 2.1 Level AA. The table below covers all key success criteria across the four WCAG principles. Criteria marked Partial or In Progress are documented in Known Limitations below.
42 Compliant · 2 Partial · 1 In Progress · 45 criteria total
Perceivable
Information and UI components must be presentable to users in ways they can perceive.
All images include meaningful alt text. Decorative images use empty alt="". The 3D avatar canvas exposes a text description via aria-label.
No prerecorded video content is published without captions. Tutorial videos include English closed captions.
No live broadcast or streaming events are hosted on the platform. The practice engine captures a live caption transcript via the Web Speech API during each session; the full text is saved with the session record so users can retrieve it after practice.
Tutorial videos do not rely on visual-only information to convey meaning. Narration tracks cover all visual content.
Semantic HTML5 elements (nav, main, section, aside) are used throughout. Chart data in the clinician analytics view is being supplemented with accessible data table equivalents.
Reading order follows the visual order. No CSS that visually reorders content independently of the DOM order.
Instructions do not rely solely on shape, size, location, or sound. Buttons are identified by label, not position.
Content is not locked to a single screen orientation. Practice sessions work in both portrait and landscape.
All authentication and billing form fields carry the correct autocomplete attribute (email, current-password, given-name, cc-number, etc.).
Color is never the sole means of conveying information. Status badges use both color and a text label. Error states include icons and text.
No audio plays automatically for more than three seconds. The biofeedback pacer plays optional audio cues only when the user starts a session.
All body text meets the 4.5:1 minimum ratio. Large text (≥18pt or 14pt bold) meets 3:1. Verified with Colour Contrast Analyser against all theme variants.
Interface scales correctly at 200% browser zoom on desktop. Text reflows without loss of content or functionality.
All visible text is rendered as real text. No images containing text are used for layout or labels.
At 320 CSS px viewport width there is no horizontal scrolling. Tables and data grids have overflow-x: auto wrappers.
Focus indicators, input borders, checkboxes, and graphical components all meet the 3:1 ratio against adjacent colors.
Tooltip components appear on hover and are dismissable with Escape. Popovers that appear on focus are being reviewed to ensure they remain visible when the mouse is moved over them.
Operable
UI components and navigation must be operable.
All interactive elements are standard HTML button, a, input, and select elements and are fully keyboard operable. Stage selector buttons carry aria-label and aria-pressed so their state is conveyed without relying on visual position. Settings toggle buttons and the voice-coach mute button all have accessible names. No functionality requires mouse-only interaction.
Focus is managed inside modal dialogs and dismissed with Escape. No mechanism exists that prevents the keyboard focus from moving away.
The application does not implement single-character keyboard shortcuts that could be accidentally triggered.
Session timers can be paused and extended. The investor pitch deck link has a time-limited expiry set by the sender; users who need an extension should contact Flowen directly.
The biofeedback pacer animation can be paused via the session controls. Auto-updating content (live session stats) stops when the session is paused.
No content flashes more than three times per second. The biofeedback orb pulses at ≤2 Hz and respects prefers-reduced-motion.
A "Skip to main content" link is the first focusable element on every page. It becomes visible on focus and moves keyboard focus directly to the main landmark.
Every page has a unique, descriptive <title> element that identifies both the page and the site (e.g., "Practice Engine — Flowen").
Keyboard focus follows the logical DOM order. Modals receive focus on open and restore focus to the trigger element on close.
Link text is descriptive in context. Icons-only links include aria-label. "Read more" patterns are avoided; where necessary, aria-describedby is used.
Pages can be reached via the navigation menu, the sitemap, and the search function (dashboard). Marketing pages are linked from the footer.
A single h1 per page. Heading hierarchy (h1 → h2 → h3) is semantically correct throughout. Form fields have visible, programmatically associated labels.
All interactive elements show a visible focus ring (2px offset ring using the brand teal). Custom components override browser defaults rather than suppressing them.
No functionality requires multi-point gestures (pinch, swipe) without a single-pointer alternative.
The visible text label of every button and link is included in its accessible name. No aria-label overrides that conflict with visible text.
Understandable
Information and the operation of the UI must be understandable.
lang="en-GB" is set on the root <html> element of every page.
All user-facing content is in English. No language switching is used within pages. Clinical terminology is expanded on first use with plain-language descriptions.
Receiving focus does not trigger any unexpected context change. No auto-navigation or form submission occurs on focus.
Changing the value of a form control does not automatically submit the form or cause a context change without prior notice.
Navigation components appear in the same location and same order across pages. Breadcrumbs follow a consistent pattern in the dashboard.
Components with the same function are identified consistently. The save button is always labelled "Save" (never alternating with "Update").
Form validation errors are identified in text and associated with the relevant field via aria-describedby. Errors are not indicated by color alone.
All form inputs have visible labels. Required fields are indicated. Complex inputs include helper text with format instructions (e.g., date fields).
Error messages suggest the correct format or input. Password complexity failures list each unmet requirement individually.
Subscription purchases and account deletion require a confirmation step. Submitted forms that result in legal or financial commitments can be reviewed before final submission.
Robust
Content must be robust enough to be interpreted by a wide variety of user agents, including assistive technologies.
React/Next.js generates well-formed HTML. Automated Lighthouse and axe scans confirm no duplicate IDs, unclosed tags, or invalid nesting in any page.
Standard HTML elements and ARIA roles are applied throughout. The 3D biofeedback avatar is wrapped in role="img" with a descriptive aria-label and a speaking-state aria-live region. Custom toggle switches carry aria-pressed and aria-label. Stage selector buttons expose their selected state via aria-pressed. The voice-coach mute control carries aria-label and aria-pressed.
Toast notifications use role="status" and aria-live="polite". The recording indicator carries role="status". Block detections are announced via aria-live="polite" on the blocks counter. The voice-coach feedback text and breathing pacer phase text both use aria-live="polite". The live captions area uses role="log" (which implies polite live updates). Decorative waveform bars are excluded from the accessibility tree with aria-hidden="true".
Known Limitations
- —The audio capture feature requires a microphone. Users without microphone access receive a static reference guide mode instead of a live session.
- —Data visualisation charts in the clinician analytics dashboard are currently accompanied by summary statistics but lack full ARIA table equivalents. We are adding accessible data tables alongside each chart (SC 1.3.1).
- —The investor pitch deck link includes a sender-defined time-limited expiry. Users who need an extension should contact hello@flowen.digital (SC 2.2.1).
Assistive Technologies Tested
Feedback & Contact
If you experience any accessibility barrier when using Flowen, or if you need content in an alternative format, please contact us:
- hello@flowen.digital
- Subject line
- [ACCESSIBILITY]
- Response time
- Within 5 working days
Legal Basis
This statement is provided in accordance with the Public Sector Bodies (Websites and Mobile Applications) (No.2) Accessibility Regulations 2018 and the Equality Act 2010. The platform was internally audited in July 2026. An independent WCAG 2.1 AA audit is scheduled for Q4 2026.