Info Unrecognized pseudo-class or pseudo-element

Why a misspelled pseudo-class like :hoverr silently never matches anything, instead of causing a visible error.

The validator flags a :name or ::name in a selector that doesn't match a known pseudo-class or pseudo-element, informationally, since this is a best-effort check against a large reference list rather than the full, ever-growing CSS specification. Vendor-prefixed pseudo-elements like ::-webkit-scrollbar are always accepted without this check.

Example

/* Flagged: typo, never matches */
.button:hoverr { background: blue; }

/* Right */
.button:hover { background: blue; }

Why it matters

A selector containing an unrecognized pseudo-class doesn't error — it's treated as valid CSS syntax that simply never matches any element, so the rule quietly does nothing. This is one of the harder CSS bugs to spot by eye, since a misspelled :hoverr looks correct at a glance and the stylesheet parses without complaint; the only symptom is a hover effect (or whatever the intended style was) that never appears, with no error pointing at the cause.

Frequently asked questions

Could this flag a real, valid pseudo-class as a false positive?

It's possible for very new or less common pseudo-classes not yet in the validator's reference list — that's exactly why this is reported as informational rather than an error, as a nudge to double-check rather than a confident "this is wrong."

Does a typo'd pseudo-class break the rest of the selector?

No — it just makes that specific compound selector never match anything. If it's combined with other selectors via a comma, the other selectors in the list are unaffected and continue to work normally.