Accessibility of Legato
Last checked: 10 August 2026
Legato repairs other people’s pages for your screen reader. A browser that does that has no business being unusable itself — so we check it against the same standard we hold the web to, and we run most of that check by machine on every single build rather than by hand before an audit.
What this covers
The browser’s own windows: the toolbar and tab strip, settings, the sidebar, downloads, extensions, the start page, the guided tour, the account card and the error screens — eighteen documents in all. It does not cover the websites you open in Legato. We repair those on the fly, and the repairs are measured separately, but the sites remain their owners’ work and their owners’ responsibility.
The standard
WCAG 2.2, Level AA — the level European law refers to through EN 301 549, and the level accessibility audits and public tenders ask for. Level AAA exists, but the W3C itself advises against requiring it for a whole product: some of its criteria cannot be met by some kinds of content at all. AA is the highest level anyone realistically claims for an entire application.
Where we stand
All 55 Level A and AA success criteria are closed. They are not all closed the same way, and the difference matters more than the total:
- 30measured by machine on every build
- 18human decisions, each with its reason written down
- 7not applicable to a desktop browser, each with its reason
- 0open gaps
How it is checked
Every one of these is a command in our build. They do not read the markup and hope — they drive the running browser and ask the engine what a person would actually get. A checker that cannot go red is not a checker, so each one is tested by deliberately breaking the thing it guards.
npm run a11yaxe-core over all eighteen windowsnpm run walka keyboard walk: every stop has a name, is visibly focused, is not covered by anything, and the ring lets gonpm run themecontrast of text and of borders, icons and the focus ring, in all four themes, with transparency compositednpm run marksthe state glyph photographed, desaturated and compared — states must differ without colour and without motionnpm run livea real string written into every live region: is it in the accessibility tree, does it move focusnpm run tipstooltips: dismissible by Escape, survive the pointer moving onto them, no auto-timeoutnpm run wcagthe map itself: every criterion has a named check or a written reason, and an undecided one fails the build
What this is not
- It is not a certificate. A certificate is issued by an accredited auditor; this is our own testing, published so that it can be checked.
- A machine cannot see everything. Whether a label is descriptive, whether an instruction relies on shape or position, whether an error message actually helps — those are human judgements, and they are recorded as such.
- It covers the browser, not the web. A site that is broken stays broken; we make it readable where we can and say plainly where we could not.
If something does not work
Tell us and we will fix it. This is not a formality: the people who find these things first are the people using them, and a report from you is worth more than another pass of any checker we own.