useflower.dev Accessibility Conformance Report
WCAG edition, based on VPAT® 2.5 (Voluntary Product Accessibility Template®, a registered service mark of the Information Technology Industry Council).
Report details
- Name of product and version: the useflower.dev website, as built on 12 November 2026. Its pages are the home page, How it works, Where it runs, Principles, Docs, What’s growing, The meadow, the waitlist form and its two result pages, Accessibility, this report, Privacy, For agents and the page for a missing address.
- Report date: 12 November 2026 (report version 1.9).
- Product description: the website of flower: a home page, pages describing what flower does and how (with static diagrams, and a meadow that draws flower’s builds as flowers), a changelog with an Atom feed, and text pages about accessibility, privacy and the site’s Markdown versions for AI agents. The pages are static HTML: the site’s own scripts are the home page’s small script for its quote popover, the meadow’s (on the home page and the meadow’s page), which draws it on a canvas, and the Docs page’s Copy as Markdown button, and the one script from another origin is a deferred, non-visual analytics tag (Fathom Analytics) that counts page views on useflower.dev only, with no cookies, no personal data and nothing shown, read out or operable. The site follows the system light or dark setting; it has no theme switcher and keeps no settings of its own. Its one form is the waitlist’s: one email field and one optional checkbox (unticked unless the visitor ticks it, or arrives by a link that ticks it), checked by Cloudflare Turnstile in its managed mode, which runs by itself and at most asks for a click, never a puzzle. The waitlist form requires JavaScript: Turnstile, which runs in managed mode, needs it to check that a person is signing up. With JavaScript off, the page says so. The waitlist page’s small script shows the answer in place, and ticks that checkbox when the page’s address asks for it (
/waitlist?from=polystrate, the link from polystrate.dev; the visitor can untick it). The site has no media and no sign-in. - Contact information: hello@useflower.dev.
- Notes: this report is kept in the site’s repository (
docs/accessibility-conformance-report.md) and is updated by any release that changes the site’s interface. The site has light and dark themes, chosen by the system setting, and every result below holds in both. - Evaluation methods used:
- automated testing of every page, in both themes, with axe-core 4.14 (WCAG 2.2 A and AA rules and axe’s best practices), and with Lighthouse 13 of the home page, the meadow’s page, How it works and the waitlist, and of the home page in the dark theme, on every build;
- automated checks on every build of HTML validity, links, page titles, descriptions, language and headings; of reflow at 320 and 390 px wide viewports (and at 1280 px) and of keyboard focus order and visible focus, in the light theme; and of the contrast of every colour in the design tokens;
- manual review in Chromium, with the keyboard and with the WCAG text spacing overrides applied.
- Not yet done: screen reader testing, and testing in Firefox and Safari. The Turnstile frame is Cloudflare’s and is blocked in the automated checks, so it isn’t covered by them.
Applicable standards and guidelines
| Standard or guideline | Included in report |
|---|---|
| Web Content Accessibility Guidelines 2.0 | Level A (Yes), Level AA (Yes), Level AAA (No) |
| Web Content Accessibility Guidelines 2.1 | Level A (Yes), Level AA (Yes), Level AAA (No) |
| Web Content Accessibility Guidelines 2.2 | Level A (Yes), Level AA (Yes), Level AAA (No) |
Terms
The terms used in the Conformance Level columns mean:
- Supports: the functionality of the product has at least one method that meets the criterion without known defects, or meets it 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. This is used only for WCAG Level AAA.
WCAG 2.2 report
Conformance to WCAG 2.2 also covers WCAG 2.0 and 2.1, whose criteria it includes. 4.1.1 Parsing is obsolete and removed in WCAG 2.2; the site’s HTML is validated on every build anyway.
Table 1: Success Criteria, Level A
| Criteria | Conformance Level | Remarks and Explanations |
|---|---|---|
| 1.1.1 Non-text Content | Partially Supports | The flower mark has a text alternative where it means something and is hidden from assistive technology where it is decoration. The handwritten correction on the home page is read as its words. The meadow, behind the text of the home page and the meadow’s page, is a moving picture of flower’s builds, with a pause control, and it carries information: a flower’s stage of growth is its build’s state, its size follows the tokens the build used, and the stream’s speed follows how many tokens flower’s agents are using: its canvas has a short name (“A meadow of flower’s builds; each flower is one build”), and the status line in its first opening says whether it’s live (and nothing until the meadow has drawn what it would name); a flower’s colour and the shape of its petals are chance and carry no information. A flower’s state and tokens are available as text in the tag shown when it is picked, by pointer or keyboard (4.1.3). The stream’s speed has no text alternative beyond the description on the meadow’s page, which is why this criterion is partially supported. Its still picture, the same meadow drawn once, which shows before the canvas draws and where it can’t, is a background image that assistive technology passes over, and the status line says when it is a still picture. Every word on those pages is ordinary text on the page, over the meadow, never drawn into it. The How it works diagrams are decoration beside words that say the same thing, so they are hidden from assistive technology. The drawing at the foot of the home page, and the names on it, are decoration beside words that say the same thing, so they are hidden from assistive technology. A flower near enough to pick shows its build in a tag of ordinary text beside it (4.1.3). |
| 1.2.1 Audio-only and Video-only (Prerecorded) | Not Applicable | The site has no audio or video. |
| 1.2.2 Captions (Prerecorded) | Not Applicable | The site has no audio or video. |
| 1.2.3 Audio Description or Media Alternative (Prerecorded) | Not Applicable | The site has no video. |
| 1.3.1 Info and Relationships | Supports | Headings, lists, tables with header cells, and landmarks (header, main, footer navigation). |
| 1.3.2 Meaningful Sequence | Supports | The reading order follows the visual order. The home tagline is read as one sentence. |
| 1.3.3 Sensory Characteristics | Supports | No instruction relies on shape, size, position or sound. |
| 1.4.1 Use of Color | Supports | Links are underlined, and no meaning on the site is carried by colour alone: the meadow’s colours are chance and mean nothing. In the meadow a build’s state is shown by the flower’s stage of growth, never by colour alone. |
| 1.4.2 Audio Control | Not Applicable | The site plays no audio. |
| 2.1.1 Keyboard | Supports | Every link and control works from the keyboard. The home page quote opens on keyboard focus as well as on hover. The meadow’s pause button is reached with Tab, after the page’s main content. The meadow itself is reached with Tab while it draws: it picks the flower nearest the middle of the window and shows its build’s tag, each arrow key picks the nearest flower that way, and Esc closes the tag. |
| 2.1.2 No Keyboard Trap | Supports | Focus can always move on with Tab and Shift+Tab. Esc closes the quote. The meadow takes only the arrow keys and Esc; Tab moves on from it. |
| 2.1.4 Character Key Shortcuts | Not Applicable | The site has no character key shortcuts. |
| 2.2.1 Timing Adjustable | Not Applicable | Nothing on the site has a time limit. The waitlist’s Turnstile check renews itself when its token expires. |
| 2.2.2 Pause, Stop, Hide | Supports | The pen drawing the home page correction runs once and ends within about 1 second, and not at all when reduced motion is requested. The meadow behind the home page and the meadow’s page moves while the page is shown (its flowers sway in passing breezes, sprout and open, bend when the pointer passes, its clouds drift and its stream flows): a pause button at the corner of the window stops all of it, and it stays still when reduced motion is requested and in a hidden tab. Its view walks down into it as the page scrolls, which follows the reader’s own scrolling and stops with it. |
| 2.3.1 Three Flashes or Below Threshold | Supports | Nothing flashes. |
| 2.4.1 Bypass Blocks | Supports | A “Skip to content” link is the first Tab stop on every page, and every page has a main landmark. |
| 2.4.2 Page Titled | Supports | Every page has a unique title that names it. |
| 2.4.3 Focus Order | Supports | Focus follows the reading order. The meadow, behind the whole page, is reached right after the site’s header. |
| 2.4.4 Link Purpose (In Context) | Supports | Link text names its destination. The meadow’s status line on the home page, a link to the meadow’s page while the meadow is live, is named with its words and where they lead (“Live · every flower is a real build: the meadow”). |
| 2.5.1 Pointer Gestures | Supports | Nothing needs a multipoint or path-based gesture. |
| 2.5.2 Pointer Cancellation | Supports | Controls act on click (the up event). Pressing outside the open quote closes it, and it reopens with a hover, a tap or focus. A tap or a click on the meadow picks a flower on the up event; hovering one only shows its tag. |
| 2.5.3 Label in Name | Supports | The accessible names of the “builders of things” button and of the meadow’s status link contain their visible labels. |
| 2.5.4 Motion Actuation | Not Applicable | Nothing responds to device motion. |
| 3.1.1 Language of Page | Supports | Every page declares English (lang="en"). |
| 3.2.1 On Focus | Supports | Focus never changes the page’s context. Focusing the home page correction shows its quote next to it. Focusing the meadow picks a flower and shows its tag, without moving focus. |
| 3.2.2 On Input | Supports | The site has no input that changes the page’s context. The system’s light or dark setting changes the colours only, with no reload. |
| 3.2.6 Consistent Help | Supports | The footer, in the same place and order on every page, links Accessibility, which gives the contact address. |
| 3.3.1 Error Identification | Supports | The waitlist form says what went wrong in text, in a status line under the field, and marks the field invalid (aria-invalid) when the address is the problem. When the form is posted natively, the error page names the reason (with JavaScript off, that the form needs it). |
| 3.3.2 Labels or Instructions | Supports | The waitlist’s email field has a visible label, and the consent text under it is tied to the field (aria-describedby). Its optional checkbox, a native checkbox, has its visible label beside it, tied to it (<label for>), so the words tick it too; it is reached with Tab and ticked with Space, with the site’s focus outline, in both themes. |
| 3.3.7 Redundant Entry | Not Applicable | The site has no multi-step processes. |
| 4.1.2 Name, Role, Value | Supports | Native HTML controls throughout. The quote button reports whether its quote is open (aria-expanded). The Docs page’s Copy as Markdown button is a native button, disabled and marked busy while it copies. The meadow’s pause button is named “Pause the meadow” and reports whether it is pressed (aria-pressed). While its flowers can be picked, the meadow’s canvas is an application with the same name, described by the keys that pick a flower. |
Table 2: Success Criteria, Level AA
| Criteria | Conformance Level | Remarks and Explanations |
|---|---|---|
| 1.2.4 Captions (Live) | Not Applicable | The site has no live audio. |
| 1.2.5 Audio Description (Prerecorded) | Not Applicable | The site has no video. |
| 1.3.4 Orientation | Supports | Pages work in portrait and landscape. |
| 1.3.5 Identify Input Purpose | Supports | The waitlist’s email field declares its purpose (autocomplete="email"). |
| 1.4.3 Contrast (Minimum) | Supports | Text is at least 4.5:1 against its background in both themes, checked from the design tokens and by axe-core on every build. |
| 1.4.4 Resize Text | Supports | Text is sized in rem and reflows; pages work at 200% zoom. |
| 1.4.5 Images of Text | Partially Supports | The handwritten correction in the home page tagline (“builders of things”) is drawn as vector outlines to show handwriting without loading a handwriting font. It scales without loss and assistive technology reads its words, but the user’s own fonts and spacing don’t apply to it. All other text is live text. |
| 1.4.10 Reflow | Supports | No page scrolls sideways at 320 or 390 px wide (with the home page’s quote card open too), nor at 1280 px, which every build checks in the light theme. |
| 1.4.11 Non-text Contrast | Supports | Rules, focus outlines, control borders and every ink on the flower mark’s outline are at least 3:1 in both themes. The meadow prints in the five spot inks, marigold among them (under 3:1 on the stock), but its colours, stalks and far flowers (which fade toward the page by design) carry no information. Its pause button’s border and icon are at least 3:1. A picked flower’s ring is the stock’s ink ruled round in the text’s, so one of the two is at least 3:1 against any part of the meadow, and its tag is ruled as the page’s controls are. |
| 1.4.12 Text Spacing | Supports | Text pages reflow under the WCAG text spacing overrides, and so does the home page’s sign-off tagline, which sizes its words by their text. With those overrides at 320 px wide, the waitlist page scrolls sideways by a few pixels; no text is cut off. |
| 1.4.13 Content on Hover or Focus | Supports | The home page quote can be dismissed with Esc, can be hovered without closing, and stays until hover and focus leave it. A picked flower’s tag, on the home page and the meadow’s page, closes with Esc (and stays closed while the pointer stays on its flower), can be hovered without closing, the pointer crossing from the flower to the tag over the meadow or the edge of a sheet of paper, and stays until the pointer leaves its flower and the tag, a tap lands elsewhere, or the page scrolls. |
| 2.4.5 Multiple Ways | Supports | The footer links the site’s standing pages from every page, the For agents page and /llms.txt list every page with its Markdown version, and the header links its main pages too. |
| 2.4.6 Headings and Labels | Supports | Headings and labels describe their content. |
| 2.4.7 Focus Visible | Supports | Every focusable element shows a 2 px outline when it has keyboard focus, which every build checks in the light theme. |
| 2.4.11 Focus Not Obscured (Minimum) | Supports | The only things fixed over the page are the meadow’s pause button, a small square at the corner of the window on the home page and the meadow’s page, which the page scrolls a focused element clear of, and a picked flower’s small tag, which shows beside its flower only once one is picked and closes as soon as the page scrolls; with the meadow focused, the meadow is the whole window. The home page quote opens beside the button that has focus. |
| 2.5.7 Dragging Movements | Not Applicable | Nothing needs dragging. |
| 2.5.8 Target Size (Minimum) | Supports | Controls and footer links are at least 24 by 24 CSS pixels. Links inside sentences are exempt. A flower in the meadow can be picked only once its head is at least 24 by 24 CSS pixels. |
| 3.1.2 Language of Parts | Supports | All content is in English. |
| 3.2.3 Consistent Navigation | Supports | The band, with its nav, and the footer are in the same place and order on every page. |
| 3.2.4 Consistent Identification | Supports | The same links and controls have the same names on every page. |
| 3.3.3 Error Suggestion | Supports | Each waitlist error says how to fix it or what to do instead. |
| 3.3.4 Error Prevention (Legal, Financial, Data) | Not Applicable | The site takes no commitments or data. |
| 3.3.8 Accessible Authentication (Minimum) | Not Applicable | The site has no sign-in. The waitlist’s Turnstile check is not a cognitive function test: it runs by itself and at most asks for a click. |
| 4.1.3 Status Messages | Supports | The waitlist form’s answer and the Docs page’s Copy as Markdown result (“Copying…”, “Copied.”, or what to do instead) each appear in a status line (role="status"), which screen readers announce without moving focus. A picked flower’s tag (its build’s state, tokens and rounds) is in a status region too, announced as it changes without moving focus. |
Table 3: Success Criteria, Level AAA
Level AAA criteria were not evaluated.
Legal disclaimer
This report describes how the useflower.dev website measures against WCAG 2.2 on the date above, as far as the evaluation methods listed found. It is not a legal certification, a warranty or a claim of compliance with any law or regulation, including the Americans with Disabilities Act or Section 508; any alignment with those comes only through WCAG conformance. To report a problem, email hello@useflower.dev.