The accessibility of documentation published in Confluence
A great deal is known about the accessibility of home pages. Almost nothing is known about the documentation organisations actually publish. This is a first measurement.
Published 7 September 2026. 582 pages, seven public Confluence Cloud sites, measured against WCAG 2.2 by the Clearwren rule engine.
What we found
| Measure | Result |
|---|---|
| Pages measured | 582 |
| Sites measured | 7 |
| Pages with no level A or AA failure | 57% |
| Average page score | 74 / 100 |
| Distinct issues detected | 2,508 |
| Of those, rated critical | 1,381 |
Six checks account for 87% of everything
This is the finding that matters, because it says the problem is smaller than it looks.
| Check | Issues | Share | Pages | Sites |
|---|---|---|---|---|
| Image has no alternative text | 1,050 | 42% | 181 | 6 of 7 |
| Text contrast below the AA minimum | 329 | 13% | 45 | 6 of 7 |
| Bare URL used as link text | 244 | 10% | 94 | 7 of 7 |
| H1 used inside the page body | 219 | 9% | 71 | 6 of 7 |
| Alternative text does not describe the image | 216 | 9% | 46 | 6 of 7 |
| Bold text used instead of a heading | 116 | 5% | 37 | 5 of 7 |
Every one of these is mechanical. None needs a specialist to find, and none needs a redesign to fix. A documentation estate failing on all six is not badly built; it is unmeasured.
The alt text problem is not the one people think
Missing alt text is the largest single category, at 42% of everything detected, on 181 of the 582 pages. That is the expected result.
The unexpected one sits below it: 216 further issues where alt text was written and does not describe the image. Filenames, the word "image", a caption repeated from the paragraph above. Somebody filled the field in and the information is still gone.
That distinction matters for how you fix it. The first group needs a policy. The second needs the authors to understand what the field is for, which is a different and slower piece of work.
No site was clean, and the range was wide
Per-site conformance ran from 31% to 68%. The best-performing site in the sample still had roughly a third of its pages carrying a level A or AA failure, and the weakest had over two thirds.
Two rules appeared on all seven sites: bare URLs used as link text, and skipped heading levels. Both come from the same habit — writing for how a page looks rather than how it is structured.
Method
- Site selection. Seven publicly readable Confluence Cloud sites, found through ordinary web search. All serve their content to anonymous visitors by their own configuration.
- Page selection. The full public page list was enumerated for each site, then a random sample drawn from it. This matters more than it sounds: an earlier run took the first pages of each space and reported 90% clean. Those are landing pages — short, no images, no tables. Sampling from the top of a documentation tree measures the part with the least content in it.
- Measurement. Page bodies were read in Atlassian Document Format, the same input the product uses, and evaluated by the same 32 rules across 15 WCAG 2.2 success criteria. No conversion step, so no fidelity lost.
- Politeness. Each site's own
robots.txtwas read and its stated crawl-delay honoured. Only content served publicly was requested. - Reporting. Aggregate only. No site is named, here or anywhere else.
What this does not show
Seven sites is a small sample, and they were not randomly selected from all Confluence sites — no such list exists. They skew towards public knowledge bases in education, because those are the ones readable without an account. A wider study would need more sites and a defensible frame for choosing them.
Nor does it measure everything. Roughly a third of WCAG cannot be decided by any tool: whether reading order matches meaning, whether a description is adequate, whether captions are accurate. Those criteria are reported as needing review, never as passing.
So: treat 57% as a first measurement of a thing nobody had measured, not as a settled figure. We would rather publish a number with its limits attached than a rounder one without them.
Why we ran it
We build an accessibility checker for Confluence, so we had both the engine and the reason to care. That is a conflict worth stating plainly. It is also why the method is written out above in enough detail to be repeated by someone who wants to check us.