pattern
Еще одна надежда избавиться от кусков JS кода в будущем, это атрибут pattrn. С помошью регулярных выражений, он проверяет ввел ли пользователь данные соответствующие маске.
<input required="true" pattern=".*@.*\..*" type="text" value="" name="email_address" />
вот как выглядит

по прежнему нет возможности изменить тип предупреждения, а значит очень популярным это не будет
.* - любой текст
@ - собачка
.* - любой текст
\. - точка
.* - любой текст
другой вопрос на каком уровне будут поддерживаться регулярные выражения, судя по тому, что инфы про это я нигде не нашел, боюсь нас ждет еще один стандарт регулярки