Вот однажды начал было делать простой скрипт кастомизации (заодно и полифилл) html5 валидации:
http://jsfiddle.net/danya_postfactum/p1zde8v3/
К сожалению не сделал вывод сообщения об ошибке. Есть:
- поддержка required и pattern
- валидация поля по мере ввода
- добавление css-класса при валидации
- передача фокуса первому неверному полю
- поддержка кастомных правил валидации (через js код, не через разметку - не знаю хорошо это или плохо)
- независимость от сторонних либ
Минусы:
- зависимость от classList.js и addEventListener.js
- какие-то траблы вроде были с IE старыми
- не сделаны сообщения об ошибке
- не сделана дефолтная валидация поля типа email (и наверно еще каких-то)
- необходимость запуска функции для инициализации (хотя это не всегда минус)
Эт скорее для меня памятка.