Aria Invalid Checker
Paste your page HTML and find bad aria-invalid tokens, unwired error text and class-only invalid fields.
What this tool gives you
Check aria-invalid
Paste your page HTML. Analysis runs locally in your browser — nothing is sent anywhere.
Invalid fields need aria-invalid="true" plus an error id — a red border is not enough.
What this checker looks for
WCAG 3.3.1 fails when an error is visible but the control is not marked invalid, or the reason is not announced.
Valid tokens
aria-invalid must be true, false, grammar or spelling — yes/1 do nothing.
Error text
Point aria-describedby or aria-errormessage at a real id.
Class-only errors
is-invalid / has-error without aria-invalid is a sighted-only fail.
Grammar/spelling
Those tokens count as errored and still need help text.
False is fine
aria-invalid=false is a valid idle state, not a fail.
0–100 score
Track validation hygiene across signup, checkout and lead forms.
How to mark an invalid field
Three rules cover almost every silent form error in the wild.
Set aria-invalid
true on the control itself. yes, 1 or invalid are ignored by AT.
Wire the error copy
Point aria-describedby or aria-errormessage at a real id with the reason.
Do not rely on CSS
is-invalid / has-error is sighted-only. Mark the field for AT too.
Why answer engines care about invalid fields
Named errors are a cheap-to-parse signal that the form can recover, not a silent dead-end.
| Signal | What engines infer | Why it helps |
|---|---|---|
| aria-invalid=true | The field failed validation. | Extractors can quote the error, not a red border. |
| describedby / errormessage | The reason is programmatically tied. | AT users hear why, not just “invalid”. |
| No class-only fails | Visual and AT states match. | Lower bounce on AI-referred lead forms. |
| WCAG 3.3.1 pass | Errors are identified. | Citable, trustworthy pages get quoted more often. |
| Valid tokens | The page uses the platform API. | true/false/grammar/spelling beat custom yes/1 flags. |
Related GEO pages
Invalid fields pair with live regions and labels so errors are both marked and spoken.
Aria Live Checker
Find invalid aria-live tokens, silenced alerts and empty live regions.
Form Label Checker
Find form fields missing labels, aria names or for-targets.
Dialog Name Checker
Find unnamed modals, missing aria-modal and overlays without a close control.
Tools Lab
More generators, calculators and GEO workflows.
Aria invalid FAQs
What values does aria-invalid accept?
true, false, grammar and spelling. Tokens like yes, 1 or invalid are ignored, so AT never flags the field. Use true for failed validation.
Is a red CSS class enough?
No. is-invalid or has-error is sighted-only. Screen readers need aria-invalid=true plus aria-describedby or aria-errormessage pointing at the error copy.
Does aria-invalid=false fail?
No. false is a valid idle state. The checker only fails unknown tokens, missing help text on true/grammar/spelling, and visual errors with no aria-invalid.