Accessibility
Accessibility statement
XMLDir targets WCAG 2.2 Level AA. This page says what that means here, what is verified automatically, and what is not.
Most accessibility statements describe an intention. This one describes a mechanism, because an intention cannot be checked and does not survive the next redesign.
Conformance here is enforced by tests that run on every change. The palette is data, and the contrast of every pairing the site renders is asserted rather than eyeballed. Control names are read out of the source. Page structure is audited across every indexable page. When one of those fails, the change does not ship — which is a much stronger guarantee than a page saying we take accessibility seriously.
That approach found real defects rather than confirming what we hoped. Seventeen form controls had a border measuring 1.47:1 against the page where the standard requires 3:1, and because the fields were white on cream the border was the only thing identifying them as controls at all. A first pass at dark mode applied it from the operating system with no control on the page, which handed anyone on a dark-mode machine a theme they could not leave. Both are fixed, and both are now covered by a test so they cannot come back.
- Target
- WCAG 2.2 Level AA
- Conformance
- Partially conformant — see limits below
- Verified
- On every change, in CI
- Default theme
- Light; dark and system are opt-in
- Last reviewed
- 18 August 2026
- Report a barrier
- admin@xmldir.com
Found something?
Tell us what you were trying to do, the page, and what got in the way. We aim to reply within five working days, and a barrier that blocks a task is treated as a bug rather than an enhancement.What is verified automatically
Each of these runs on every change. None of them is a one-off measurement that decays the moment someone edits a colour.
Colour contrast
SC 1.4.3, 1.4.11
The palette lives in one module as data, and every pairing the site actually renders is asserted against its minimum — 36 pairings, in both the light and dark themes, on every test run. A colour change that drops a pairing below its threshold fails the build rather than shipping.
Control names
SC 4.1.2
A guard reads the source of every component and reports any input, select or textarea without an accessible name. It reads the source rather than the rendered page on purpose: that is how it can see a <label> that looks associated but has no htmlFor and wraps nothing.
Page structure
SC 1.3.1, 2.4.1, 2.4.2, 2.4.4
An audit walks every indexable page and checks heading order, a single h1, page titles, image alternatives, skip links where navigation repeats, and link text that describes its destination.
Target size and reflow
SC 2.5.8, 1.4.10
Interactive targets are at least 24×24 CSS pixels. Pages are checked at 320 pixels wide for horizontal scrolling, with wide content — tables, code samples, diagrams — scrolling inside its own container rather than moving the page.
Keyboard and focus
SC 2.1.1, 2.4.7, 2.4.11
Everything is reachable and operable by keyboard. One focus indicator is defined for the whole site, and the sticky header reserves scroll padding so a focused element is never left underneath it.
What is not covered
A statement claiming full conformance with no exceptions is a statement nobody has checked.
Third-party embeds
Analytics and the consent banner are ours and are covered. Anything a partner embeds in future would need its own assessment, and would be listed here.
Automated coverage is not total
The checks above cover the success criteria a machine can judge. Criteria that need human judgement — whether a heading actually describes its section, whether an error message is genuinely useful — are reviewed by hand and are not continuously verified.
Screen reader testing is not systematic
The markup is built to standards and the automated checks pass, but the site has not been through a structured test pass with JAWS, NVDA and VoiceOver. If you use one and something is wrong, telling us is the fastest route to it being fixed.
The same principle drives the rest of the site: every tool states what it does not do, and every reference page is asserted against the real parser. See the reference
Get started
Bring order to the XML your team can't afford to ignore.
Create a free account and get a private workspace to search, validate, diff, and monitor your XML feeds, sitemaps, schemas, and vendor integrations.