Link & button text auditor
Find the labels that say nothing once the sentence around them is gone.
Right-click any page → Inspect → copy the element. Nothing is uploaded; the parsing happens in this tab.
No reading-level score, on purpose
Readability formulas are fitted on continuous prose and divide by sentence count, so they produce nonsense on short strings. Flesch-Kincaid rates “Learn more” and “Click here” at a reading ease of 120.2 — off the top of the scale — while “Download invoice PDF” scores 62.8. The two worst labels in interface design come out as the easiest text imaginable. A number here would be confidently wrong, so there isn’t one.
In short
Every finding here names the WCAG criterion it comes from. Nothing is a style preference, and nothing is a guess.
What link text audit is
A check of the words inside links, buttons and form controls against the WCAG success criteria that govern them. It is distinct from a writing check because the criteria are testable: a label either names its destination out of context or it does not, and an accessible name either contains the visible text or it does not.
What this tool does that others do not
Findings cite a criterion and a conformance level
Each result names what it breaches, so a review conversation is about a criterion rather than about taste. "This is vague" is an opinion; "this fails 2.4.4 Link Purpose, Level A" is something a ticket can carry.
The rules cover 2.4.4 (A), 2.4.9 (AAA), 2.5.3 (A), 2.4.6 (AA) and 4.1.2 (A).
It shows each link the way a screen reader lists it
Screen-reader users routinely pull up every link on a page at once, which strips each one down to its own words. "Read more" eleven times becomes eleven identical rows. The report reproduces that view, because it is the state the label will be read in.
It refuses to give a readability score
Readability formulas divide by sentence count and were validated on continuous prose, so on a two-word string the divisor makes the output meaningless — and it reliably rewards the vaguest labels in interface design.
Flesch–Kincaid rates “Learn more” and “Click here” at 120.2 reading ease, above the top of the scale, and the clearer “Download invoice PDF” at 62.8.
How to use it
Paste the markup, not the text
Copy the outer HTML of the region from developer tools. The aria-labels are where half the findings live, and copying visible text discards them.
Work through the errors before the warnings
Errors are Level A failures — a control with no accessible name, a label the accessible name contradicts. Warnings are the ones that depend on context you may have and the parser does not.
Rewrite to name the destination or the action
“Download invoice PDF” rather than “Download”. If two links now share a name and go to different places, that is a second finding, not a fixed one.
Start any aria-label with the visible words
That satisfies 2.5.3 and keeps voice control working, which is the failure mode people forget because it does not show up in a screen-reader test.
Worked examples
Real input, real figures.
A control voice control cannot operate
You give it
<button aria-label="Find records">Search</button>
You get
Fails 2.5.3 Label in Name, Level A. Someone saying “click Search” gets nothing, because the spoken words are not in the accessible name. “Search records” satisfies both the visible label and the name.
An icon button with nothing to announce
You give it
<button><svg aria-hidden="true">…</svg></button>
You get
Fails 4.1.2 Name, Role, Value, Level A. The icon is correctly hidden, which leaves the button with no accessible name at all — a screen reader announces it as "button" and nothing more.
Against a general writing checker
| Aspect | This tool | A grammar or readability checker |
|---|---|---|
| Input | Markup, so name and visible text can be compared | Plain text |
| Standard | Five named WCAG criteria with levels | House style |
| Readability score | Refused, with the numbers showing why | A grade level per string |
| Output | The criterion each finding breaches | A rewrite suggestion |
| Where it runs | Your browser; no markup is sent | A server |
Guide
What it will not do
- You cannot paste a URL. A browser will not let a page fetch another site’s HTML under the same-origin policy, and this site is static, so there is no backend to fetch it on your behalf.
- It cannot judge whether a label is accurate — only whether it is specific. A button that says "Delete" and archives instead will pass every check here.
A link list has no sentences in it
Screen reader users navigate by pulling up every link on the page at once. It is one of the fastest ways to move around, and it strips each link down to its own words. “Read more”, repeated eleven times, becomes eleven identical rows.
The score this tool refuses to give you
Paste a button label into any free readability checker and it will return a grade level. That number is an artefact. The formulas divide word count by sentence count and were validated on continuous prose — on a two-word string the divisor makes the output meaningless.
Flesch-Kincaid rates “Learn more” and “Click here” at a reading ease of 120.2, above the top of the scale, and rates the far clearer “Download invoice PDF” at 62.8. It reliably rewards the vaguest labels in interface design. So this tool checks what can actually be checked — whether a label names its destination or its action — and stays quiet about the rest.
Questions people ask
Straight answers. Each one links directly: copy the address after opening it.
Why does “Click here” fail?
Because screen reader users routinely pull up a list of every link on a page and navigate from that. In that list a link is only its own words — the sentence around it is gone. “Click here” in a list of forty links tells you nothing about any of them. WCAG 2.4.4 Link Purpose (Level A) is the criterion, and it is one of the most commonly failed on the web.
Why is there no readability score?
Because readability formulas divide by sentence count and were fitted on continuous prose, so they return artefacts on short strings. Flesch-Kincaid gives “Learn more” and “Click here” a reading ease of 120.2 — above the top of the scale — and gives the clearer “Download invoice PDF” 62.8. Any tool showing you a grade level for a button label is showing you a number with nothing behind it.
What is Label in Name?
WCAG 2.5.3, Level A. If a control shows the word “Search” but its aria-label says “Find records”, someone using voice control who says “click Search” gets nothing, because the spoken words are not in the accessible name. The fix is to make the accessible name start with the visible text.
Does anything get uploaded?
No. The markup is parsed by your own browser in this tab. There is no server to send it to — the whole site is static. You can check in the network panel, or turn your connection off and keep working.
Why can I not just paste a URL?
Because a browser will not let a page fetch another site’s HTML — the same-origin policy stops it, and there is no backend here to do it on your behalf. Pasting the markup is the honest version of the feature.