HTML5 validation doesn't just have to apply to individual form fields. It can also apply to fieldset and form elements. Full write-up.
fieldset
form
First name
Family name
Email address
Female Male There is almost never a good reason to ask this question
Select your political alignment
Colour of mother's hair, at time of your birth
Most frequently used password
This won't submit anywhere. Promise.
Adding content into the :before and :after elements is a bad idea. It can't be selected and doesn't appear in the accessibility DOM.
:before
:after