Накратко
CSS може да обозначи проблем, но не валидира данните на сървъра.
Полезно е да знаеш
:invalid избира контрол или форма, които не изпълняват ограниченията за валидност на HTML. Например required поле за имейл може да съвпадне, ако е празно или има неподходяща стойност. [1]
Пример: input:invalid { border-color: firebrick; }. Това е визуален сигнал, а не защита на приложението. Сървърът трябва сам да провери подадените данни. Помисли и кога показваш грешката: червена форма още преди първото въвеждане може да обърка читателя. Добави разбираемо текстово обяснение и не разчитай само на червената рамка.
Източници
За повече подробности и проверка на информацията: