Info Pseudo-clase o pseudo-elemento no reconocido

Por qué una pseudo-clase mal escrita como :hoverr nunca coincide con nada en silencio, en vez de causar un error visible.

El validador marca, de forma informativa, un :nombre o ::nombre en un selector que no coincide con ninguna pseudo-clase o pseudo-elemento conocido, ya que esta es una revisión de mejor esfuerzo contra una lista de referencia grande en vez de contra la especificación CSS completa y en constante crecimiento. Los pseudo-elementos con prefijo de proveedor como ::-webkit-scrollbar siempre se aceptan sin esta revisión.

Ejemplo

/* Marcado: error de tipeo, nunca coincide */
.boton:hoverr { background: blue; }

/* Correcto */
.boton:hover { background: blue; }

Por qué importa

Un selector que contiene una pseudo-clase no reconocida no da error — se trata como sintaxis CSS válida que simplemente nunca coincide con ningún elemento, así que la regla no hace nada en silencio. Este es uno de los bugs de CSS más difíciles de detectar a simple vista, ya que un :hoverr mal escrito se ve correcto a primera vista y la hoja de estilos se analiza sin quejas; el único síntoma es un efecto hover (o cualquiera que fuera el estilo previsto) que nunca aparece, sin ningún error que señale la causa.

Frequently asked questions

¿Esto podría marcar como falso positivo una pseudo-clase real y válida?

Es posible con pseudo-clases muy nuevas o poco comunes que todavía no están en la lista de referencia del validador — precisamente por eso se reporta como informativo en vez de como error, como un aviso para verificar en vez de una afirmación segura de "esto está mal".

¿Una pseudo-clase con error de tipeo rompe el resto del selector?

No — solo hace que ese selector compuesto específico nunca coincida con nada. Si está combinado con otros selectores mediante una coma, los demás selectores de la lista no se ven afectados y siguen funcionando con normalidad.