Accessibility monitoring
Know Issues That Hurt, every day. The marked letters spell kithe.day.
You are not the person it stops.
You built the site. You cannot see what is broken on it, because none of it is broken for you.
Kithe reads your pages and tells you what is wrong with them, in plain words, with the fix. Scan the same site again and it tells you what changed — including the alt text that stopped matching when you swapped the picture.
- No account to start
- Nothing goes on your site
- Every finding names its page
The 16 questions a rule cannot answer
01Each one is a separate thing to buy, because each is worth a different amount on a different site. A photographer with four hundred images and no duplicate titles should be able to pay for the first and not the second.
2 of them run today. The rest are switched off while they are rebuilt and checked on a real site, and nothing is charged for one that is off — the tools page says which is which.
- Alt text that does not match its pictureA rule can see that alt text exists. It cannot see the photograph, so it cannot tell you the sentence is about a different one.
- Alt text written for images that have noneThe missing alt is a rule’s answer and costs nothing. Looking at the picture and writing the sentence is this.
- Link text that does not stand on its ownStock phrases are caught by rules. Text that is unique and still says nothing is not, and that is the common case.
- Headings that do not describe their sectionHeading levels are a rule’s business. Whether a heading means anything is not.
- Public notices that are hard to readNo rule measures whether a sentence can be followed on the first read, on a phone, by somebody in a hurry.
- Tables: data, or page layout?The fix is the opposite in each case — add header cells, or mark it presentational. The mechanical check guesses.
- Icon buttons whose name does not matchA rule checks that a name exists. Whether aria-label="Menu" on a share button is right is a judgement, and a wrong name is followed.
- Page titles that do not tell pages apartNine pages titled the same pass every per-page check. Only visible once the whole site has been read.
- One wording, several destinations“Read more” pointing at nine articles. Invisible to any tool that reads one page at a time.
- Words that exist only as pixelsPosters, menus, flyers. The text cannot be selected, searched, translated or enlarged. Reading the picture is the only way to find it.
- Alt text on images that are linksA logo linking home should say “Home”, not “Company logo”. The alt is descriptive and still wrong, because the image’s job is navigation.
- Passages in another languageA French block on an English page, unmarked, is read aloud in an English voice. Common on bilingual Canadian sites and caught by almost nothing.
- Pressure to decide nowCountdowns, “only 2 left”, “14 people are viewing this”. A rule finds the sentence and cannot tell a real deadline from a timer that resets on reload.
- Declining, made to feel bad“No thanks, I don’t want to save money.” The way out exists, which is all a rule checks, and it has been written to charge you for taking it.
- Whether anyone can reach a personA site can pass every check and still have no way through to a human, which is where everybody the automation failed ends up.
- Forms that cannot be finishedEvery field labelled and the form still unfinishable: a format never named, a question nobody can answer in the order it is asked.
Every one of these had to pass the same test before it was built: a rule must not be able to answer it. If a rule can, it belongs in the free checks, where it costs nothing to run.
What a rule cannot settle
02A machine can tell you the alt text is there. It cannot tell you whether it describes the picture. This is the part you pay for: Kithe reads the page, looks at the image, and writes wording you can use.
The picture on the page

What the page has
<img src="/img/header-2.jpg" alt="Our team at the summer barbecue">Every automated checker on the market calls this a pass. There is an alt attribute, it is not empty, it is not a filename. Nothing flags it — and a screen reader announces a barbecue.
What it should have instead
<img src="/img/header-2.jpg"
alt="Trays of metal printing type, with a composing
stick holding a line of set text across them.">Kithe looks at the actual image and the words around it, and writes this for you to approve, edit or throw out.
What actually happens, and what gets sent
“AI-powered” usually means nobody will tell you what leaves your site, what comes back, or what it costs. Here are all three.
01
Read the page
Kithe fetches your public HTML the way a browser does. Nothing is installed and nothing is logged into.
02
Rules settle what they can
The 22 mechanical checks run first. An image with no alt at all is a rule’s answer and never costs a model request — that filter is what keeps the bill proportional to your site.
03
Only the leftovers go to the model
The picture itself, and the sentences around it. Not your whole page, not your analytics, not anything about your visitors — there is nothing about them for us to send.
04
A draft comes back
Wording you could paste in, and the reason it was suggested. It can be wrong, and occasionally it will be confidently wrong.
05
You decide
Approve it, edit it, or throw it out. Kithe never applies a word to your site, because Kithe has no way to write to your site at all.
See the worked judgement cases, with the markup, on the examples page
A suggestion, never a change
All of it arrives as a draft. You read it, edit it if it is wrong, and decide whether to use it. Nothing a model writes gets applied to your site by Kithe, because Kithe has no way to touch your site at all.
One page, marked up
03This is what comes back. Not a score, not a traffic light — the page itself, with each problem ringed and keyed into the margin. Point at a ring to light up its note.
riverside-pottery.ca/classesSpecimen
Autumn classes
Two-hour beginner sessions on the wheel, Thursday evenings from late September. Clay, glazes and firing all included.
More
Places are limited to eight a term and they go quickly, so book before the middle of the month. read more
Term dates, straight to your inbox
Email addressSign up
Enrolment is contingent upon remittance of the requisite deposit prior to the commencement of the session.
Two of the six
Highlikely blocking
Button has no accessible name
The icon button at the end of the menu
No text, no aria-label. It is announced as “button” and nothing else — you hear that there is something to press, and nothing about what pressing it does.
<button class="menu"><svg …></svg></button>
Mechanical · WCAG 4.1.2 Name, Role, Value (A)
Highlikely blocking
Image has no alt attribute
The photograph under the menu
A screen reader announces nothing here. If the picture carries meaning, describe it. If it is decoration, give it an empty alt so it is skipped.
<img src="/uploads/IMG_2481.jpeg">
Mechanical · WCAG 1.1.1 Non-text Content (A)
Plate
Somebody else is reading it

Most of the people your site turns away will never tell you. They leave, and your analytics show you nothing at all.
The Optacon is an old extreme. The everyday version is quieter: a screen reader, a magnifier, a keyboard instead of a mouse, a phone in bright sun, one hand free at three in the morning. None of that is how you look at your own work. That is the whole problem.
What we check
04A machine can be certain about these. They are facts about the page, not opinions, so you get the same answer every time you run it. Each one tells you the page, the element, and what to change.
- Image has no alt attribute01Free, no account
- Text contrast is below the minimum02Free, no account
- Button has no accessible name03Free, no account
- Form field has no label04Free, no account
- Page has no title05Free, no account
- Page does not declare a language06Free account
- Link has no text07Free account
- Heading level skipped08Free account
- Page has no top-level heading09Paid
- Tab order was rearranged by hand10Paid
- Hidden from a screen reader, still reachable by keyboard11Paid
- Heading has no text12Paid
- Field could fill itself in and cannot13Paid
- The edge of a control is too faint to find14Paid
- Focus outline removed and not replaced15Paid
- Link text does not say where it goes16Paid
- No skip-to-content link17Paid
- Data table has no header cells18Paid
- Video or audio has no captions track19Paid
- Embedded frame has no title20Paid
- Duplicate id attribute21Paid
- Link is broken22Paid
Read what each check is looking for, in full
How findings are ranked
High
Likely blocking. Someone probably cannot use this at all.
Medium
Worth fixing. Usable, but harder than it should be.
Low
Minor. Tidy it next time you are in that file.
That is our guess at how much a problem gets in someone’s way. It is not a grade, and it does not tell you how close you are to anything.
| Severity | Findings | Share |
|---|---|---|
| Likely blockingSomebody probably cannot use this at all | 12 | 25% |
| Worth fixingUsable, but harder than it needs to be | 27 | 56% |
| MinorTidy it up next time you edit the page | 9 | 19% |
| Total | 48 | 100% |
An example, so you can see the shape of it: the numbers are made up, and the shape is not. Most findings land in the middle. Nothing in the top band is a good day, not a result you can quote at anyone.
What we will never do
05This matters more than the feature list. If a supplier is vague about any of it, ask them to put it in writing.
We will never issue a certificate.
There is no such thing as a certificate of accessibility from a scanner. Anyone selling you one is selling you a PDF, not a working website.
We will never tell you the site passes.
Kithe hands you findings to read. It is not a compliance certificate and none of it is legal advice. Whether your site meets a standard is a judgement about you and your site, and it is not ours to make on your behalf.
We will never change your site.
Kithe reads pages. No login to your CMS, no write access, no mechanism to edit anything at all. Every fix is made by you.
We will never ask you to install anything.
No script tag, no plugin, no build step, no account for us on your side. We read what is already public. That is why the first check needs nothing from anybody.
Start
Check one page
Give it an address. It reads the page and hands back what is wrong, with the fix for each one. No account, nothing to install.
You could run a browser extension over one page yourself, and if that is all you need, do that. Kithe is for the whole site at once, for the questions a rule cannot answer, and for the second scan — where the new problems are kept apart from the ones you have already read.
Watching a whole site? Create an account