Skip to content
PolyFish CSS

Documentation that says what it doesn't do

Troubleshooting, a full attribute reference, a WCAG accounting, and a decision log that marks four of our own calls as wrong.

· ~4 min read · 0.18.4 in the changelog

Nothing in the shipped files this time. It is all documentation, and specifically the sort most projects quietly skip: the parts where we say what this framework does not do, has not tested, and cannot promise you.

When it breaks

The installation page now has nine symptoms, their causes and their fixes, written symptom first because that is what you have when you arrive. Two thirds of them turn out to be a missing module or a load-order problem, and there is a one-minute bisect for the rest.

What is claimed, and what is not

The accessibility page splits fifteen WCAG 2.2 AA criteria into three columns: carried by the framework, shared, and entirely yours. It also says plainly that no screen reader has been through these components yet. "The ARIA attributes are correct" and "it is comprehensible in NVDA" are different claims, and only the first currently has evidence behind it.

The decision log

The about page now lists the project's significant decisions and whether each held up. Four are marked no: naming tokens after colours, using physical properties, a hand-typed version number, and an iframe demo. Each has a line on what it cost. A changelog tells you what changed; this tells you which choices we would make differently.

Why publish the gaps at all

The argument against a page like the accessibility one is obvious: it hands anyone comparing frameworks a list of things you have not done. The argument for it is that the list exists whether or not you publish it, and the only question is whether the reader finds it here or in production. A framework that claims WCAG compliance flatly is making a claim about your pages, which it cannot see. Splitting the criteria into carried, shared and yours is the only version of that claim that survives contact with a real site.

Update: some of those claims did not survive

Two of the admissions in this release have since been settled, and one of the confident claims turned out to be wrong — which is the risk you take by writing both down.

Settled: an automated accessibility scan now runs over all 54 pages, and contrast is measured in a browser on every palette rather than by a script run by hand. The scan found eight violation types on its first pass, including a focusable unlabelled checkbox on every desktop page and an invalid tablist, and it now reports none that are critical or serious.

Wrong: the home page said every text-on-surface pair was AAA in both themes. Measured properly, the default light scheme's links were 5.4:1, cream's accent 3.96:1 — below AA — and two second accents were under 7:1. All are fixed, and the claim now says what was measured: AAA in the default theme in both schemes, with muted text on recessed surfaces at AA on some example themes. A smaller true claim is worth more than a larger one nobody checked.

Still open, and still said plainly: no screen reader has been through these components. "The ARIA attributes are correct" now has a browser test behind it. "It is comprehensible in NVDA" still has nothing behind it but intent, and we would rather keep that line in the documentation than quietly drop it.

What this post does not cover

  • A WCAG conformance claim. The page splits criteria into carried, shared and yours for exactly that reason.
  • Legal advice about accessibility obligations, which varies by jurisdiction and is not ours to give.

Checked against WCAG. Figures are measured from the build they describe.

What this doesn’t cover

The page lists what we have tested. It cannot list what we have not thought to test, which is the larger category. The split between carried, shared and yours is a judgement call rather than a standard, and reasonable people would move some rows.

Sources: WCAG 2.2 and axe-core. The contrast figures are measured in a browser on every palette; the screen-reader row is still an admission rather than a result.

Documentation Accessibility WCAG Honesty Release CSS