The essentials

Getting in

What has been checked about using this site, and what has not. Plus the bits of help we point at that change depending on where in Britain you live. The second list is the longer one.

The short version

A fair amount is checked automatically on every push. Whether text can be read against what is behind it. Whether anything falls out of its box. Whether every control has a name, whether the keyboard can see where it is, and whether anything is still moving after the operating system asked it to stop.

Nobody has used this site with a screen reader. Until somebody has, none of that means it is usable. That is the most important sentence on this page, and it is why the second list below is the longer one.

Everything in the first list names what does the checking, so you can go and read it rather than take our word for it.

Checked, and by what

  • Every published page is rendered in a real browser, at these widths: 375px, 640px, 768px, 1024px, 1280px, 1440px. Every piece of text is then measured against the WCAG AA contrast ratio. The colours are composited the way a browser actually paints them.

    scripts/visual-audit.ts · On every push, before anything deploys.

    What it still cannot tell you: It reports what it could work out. Text over a gradient or a picture counts as unknowable, never as a pass, and the report says how many of those there were.

  • The same pass catches text that has broken out of its box. It catches pages that scroll sideways too. Every page, every width, disclosures opened so what is folded away is looked at as well.

    scripts/visual-audit.ts · On every push.

    What it still cannot tell you: It cannot tell a bad line break from a fine one. A heading split in an ugly place passes.

  • The 640px width is a desk at 200% zoom — half the CSS pixels each way. It is where a layout that assumed it would never be narrow and wide at once gives up.

    src/lib/audit/viewports.ts · On every push, as the third width.

    What it still cannot tell you: A proxy, not the real thing. Browser zoom scales text as well as layout, and the operating system's own text size does something different again. Neither has been tried.

  • Every control has a name a screen reader can announce: buttons, links, form boxes, the lot. Every image has an alt or is marked decorative, every page has one h1 and a heading order that does not skip, and every aria reference points at something that is on the page. That now includes the pages behind a sign-in, which nothing checked until the audits were given an account to use.

    scripts/access-audit.ts · On every push.

    What it still cannot tell you: A name is not a good name. An image can have an alt that describes nothing, and a heading structure can be valid and meaningless. This finds the missing ones.

  • The keyboard can see where it is. Every focusable element on every page is focused in turn and its appearance compared with how it looked before; anything that looks identical either way is a control a keyboard user loses. The first thing the keyboard reaches has to be a skip link that goes somewhere, and no element may have a positive tabindex.

    scripts/access-audit.ts · On every push.

    What it still cannot tell you: Nobody has got through a whole task on this site using only a keyboard. Visible focus is not the same as a sensible order, and neither is the same as a task somebody can finish.

  • Nothing keeps moving after the operating system has asked it to stop. Every page is rendered again with reduced motion set, and anything still running an animation is a finding.

    scripts/access-audit.ts · On every push.

    What it still cannot tell you: It reads animations. A transition that fires on a hover is not caught, and neither is motion drawn by a script into a canvas.

  • Every page has to come down the wire for under about two megabytes, measured as the browser receives it.

    scripts/access-audit.ts · On every push.

    What it still cannot tell you: A budget is not a test on a real connection. Nobody has loaded this on a bad signal with a capped plan, which is a different experience from a large number.

  • Every internal link and every address in the sitemap is fetched and has to answer, so nothing here sends you to a page that has gone.

    scripts/site-parity.ts · On every push.

    What it still cannot tell you: A page that answers can still be wrong. This only proves it is there.

  • Every page is read for sentence length, jargon and defensive phrasing, against this site's own house style. Prose nobody can follow is its own barrier.

    scripts/voice-audit.ts · By hand, whenever a batch of pages is written.

    What it still cannot tell you: Readability is not reading age. Neither one measures whether an idea landed.

Not checked

  • Anybody has used this site with a screen reader.

    Every automated check above is a proxy for this one. A control can have a name that tells you nothing, a heading order can be valid and useless, and a page can pass all of it and still be unusable read aloud. Only somebody using one can tell you, and we have not asked.

    When: Before launch. It is the largest gap on this page, and it has its own line on the roadmap.

  • Anybody has finished a whole task using only a keyboard.

    The focus ring is now checked on every focusable element on every page, which is a real improvement and a small one. Visible focus is not a sensible tab order, and a sensible tab order is not a task somebody can finish.

    When: Before launch, in the same round as the screen reader work.

  • The site has been used at real browser zoom, or with the operating system's own larger text.

    A 640px width is checked, which is the layout half of 200% zoom. Real zoom scales the text too, and the system text size does something different again. Neither has been in front of a person.

    When: Before launch.

  • Anything is available in Welsh.

    It is not. A site about getting help in Britain that is English-only should say so plainly. Translating it properly is real work, and we would rather not do it badly.

    When: No date. We are not going to invent one.

  • This has been loaded on a slow or capped connection.

    There is a page weight budget now and every page is inside it. A number under a budget is a reason to expect it to be fine. It is not somebody on a bad signal getting to the end of a task.

    When: Before launch, as part of the pilot.

  • Anybody using voice control, a switch or magnification has tried it.

    Names on controls help all three and are checked. What none of the checks can tell you is whether a target is big enough to hit, whether a name is one somebody would say out loud, or what happens at eight times magnification.

    When: Before launch, with whoever is willing.

  • Anybody outside England has told us whether the help we point at is the right help for them.

    Some of it differs by nation. Where we know, we say so. What we have never had is somebody in Scotland, Wales or Northern Ireland telling us what we got wrong.

    When: The pilot, which is why it is being recruited for rather than assumed.

Where in Britain you are changes the answer

Not everything here is the same across the four nations. Where we know it differs, we say so on the page itself rather than on this one. These are the ones we know about, each with the page that handles it, so you can check we actually did.

  • Scotland

    Fraud is reported to Police Scotland on 101, not to Action Fraud. The drills say so, rather than giving one number for everybody.

    /scam-lab

  • All four

    Housing law differs across the four nations. So we name Shelter and Citizens Advice, rather than stating a rule about tenancies.

    /decide

  • All four

    Deposit schemes and their deadlines differ. Ask about a deposit and a free housing service comes up before any tool of ours does.

    /control

  • All four

    Which body handles a council tax band challenge depends on where you live. So no deadline is written into anything here. The errand says where the real one lives.

    /control