Accessibility
This is our conformance statement for the pages readers see: documentation and API reference, blog, forum, changelog, roadmap, status, legal documents and the other reader surfaces, on forumulate.com and on a customer's own domain. The console (where an organization edits its spaces) is not covered here.
Target: WCAG 2.2 level AA. Status: partially conformant. Most of the standard is met by the reader itself. The gaps we know of are listed below, and so are the criteria we have not yet measured. Prepared: 2026-10-24, from a review of the reader's source, the fixes of the 2026-10 integrator audit and an automated axe-core run against forumulate.com (below). It is updated when a known gap closes or a new one is found.
What a reader page does
Skip link and landmarks. Every reader page starts with a "Skip to content" link, the first thing you can tab to, ahead of the site header. It moves focus to the main region. Pages use
header,nav,mainandfooterlandmarks, and each navigation has a name.Language and direction. The document declares the page's language, and
dir="rtl"for right-to-left languages, so screen readers pronounce the text correctly and the layout mirrors.Headings. Each page has one
h1. Sections follow in order. On a generated API reference page, each operation is anh2you can link to (#<operationId>). Its parameters, request body, responses and code samples areh3. The "On this page" rail lists the operations.Search. The search box is a combobox (
aria-expanded,aria-controls,aria-activedescendant). Its results are a listbox that holds only options. While it is open, focus stays inside the dialog and reaches every control in it. Escape closes it.Keyboard. Every control can be reached and used from the keyboard, and focus is always visible (
:focus-visiblerings on reader controls).Colour. The reader never relies on colour alone:
Status days carry a pattern as well as a hue: hatched for partial and major outages, ruled for degraded, dotted for maintenance.
The sibling-page state dot also has its state in words.
Contrast of a brand colour. Brand-coloured text is drawn in a readable shade of the brand (
--reader-brand-ink), not in the raw brand colour. Saving a theme whoseprimaryColorreads below 4.5:1 as text returns acontrast.brand_textwarning with the ratio. For example,#0e9f6eon white is 3.4:1: it passes as a fill (3:1) and fails as text.Motion. Animations and scroll effects respect
prefers-reduced-motion.Media. Course videos carry caption tracks: the ones the author uploaded, or ones transcribed for the organization. The media library lists images that have no alt text yet (
missingAlt), so an author can find them.
Known gaps
Found by the first automated run, fixed in the next release. On 2026-10-25 axe-core reported three serious problems on forumulate.com:
the reader's theme toggle drew its inactive letters in the muted grey, under 4.5:1 on every reader header (1.4.3, every page checked);
the docs rail scrolls on its own but could not be reached with the keyboard to scroll it (2.1.1, docs and reference pages);
the default HTTP-method chips of the API reference put white text on 500-weight hues, 2.1 to 3.8:1 (1.4.3, reference pages).
All three are fixed in the source (full-ink toggle letters, a focusable rail, darker default chip colours). They stay on this list until a run against the deployed site comes back clean.
Large generated reference pages. A tag page that groups many operations is heavy. A 22-operation page measured 2.8 MB. That is slow to load, and slow to move through with a screen reader. The importer warns when a tag has more than 25 operations, and recommends
per-operationmode (one operation per page). Until a reference is regenerated in that mode, its large pages stay large.Status bars set to
fill: solid. An owner may turn the patterns off. The status colours are then the only difference between states, which fails 1.4.1 (Use of Color). The default keeps the patterns.What the owner writes and adds. We cannot make these accessible on the owner's behalf:
alt text for images, and the description of a drawing;
captions for uploaded videos with no caption track;
link text;
colours set in
customCssorelementStyles, which override the readable brand shade;scripts added through
customJs;third-party embeds: video players, chat widgets, consent banners. Each vendor is responsible for its own widget.
The theme warning covers
primaryColoronly.Code playgrounds. A playground runs the author's code in a sandboxed frame on a separate origin. What it renders is the author's markup. We have not tested its keyboard behaviour across browsers.
Not yet measured
We have not yet checked these WCAG 2.2 criteria across every surface, so we make no claim for them:
2.4.11 Focus Not Obscured (sticky headers, and a consent banner at the bottom of the page);
2.5.8 Target Size (Minimum), for the smallest icon buttons;
3.3.8 Accessible Authentication, for reader sign-in through an organization's own identity provider. That page belongs to the provider.
How this is checked
Automated.
scripts/a11y-axe.mjsruns axe-core in Chromium against a list of reader URLs, with the WCAG 2.0, 2.1 and 2.2 A and AA rules. With no list, it checks one forumulate.com page per reader type. It prints each rule that fails, with the elements it found. It exits non-zero on anyseriousorcriticalviolation.--jsonwrites a report;--darkchecks the dark scheme as well. It runs on Google Cloud Build:scripts/check-on-gcp.sh --sha <commit> \ 'pnpm --filter @forumulate/web exec playwright install --with-deps chromium && npm i --no-save --prefix /tmp/axe axe-core@4.10.3 >/dev/null && AXE_CORE_PATH=/tmp/axe/node_modules/axe-core/axe.min.js node scripts/a11y-axe.mjs'To check your own site, pass its URLs, or a file of them with
--file.Last automated run: 2026-10-25, the default list of ten forumulate.com pages. Nine had the serious violations listed under Known gaps; the legal register did not finish loading within the 45-second limit and was not checked.
Manual. Not yet done for this statement. The checks it will cover:
keyboard only, through the header, search, the reader's controls and the footer;
the order of headings and landmarks in a screen reader;
contrast ratios measured on the rendered colours.
Automated rules find about a third of WCAG problems, so a clean axe run is a floor, not a pass.
Report a problem
If something on a reader page stops you, post in the community forum with "accessibility" in the title. Include the page's address, what you were trying to do, and your browser and assistive technology. If the page is on a customer's own site, the problem may be in content they wrote. Tell them as well. They can raise it with us in the same place.