"validates" is a bit of a misnomer. It ensures the UI element used to input the data on a supporting device (i.e. mobile) is appropriate for the type, and autocompletes are coerced into something sensible for the field. It doesn't (with a few exceptions, like the number type's supplementary attributes) actually validate the data (say, showing warnings on submit, or marking the fields as invalid for CSS/JS).
Nitpick: The range type isn't about the value being a range, but the value being within a range.
It does show warnings on submit, but as mentioned you should do your own backend validation as well.
And yes true, the range one is fixed.