There are these things out there called "HTML validators". The last time i tried one was about 12 years ago. There's a reason i haven't gone back. It's not that i don't believe in standards; i do. It's not that i'm sloppy or sneer at perfectionism; i don't! I don't use HTML validation, because it doesn't work, won't work and shouldn't work.
HTML validation doesn't work because the browsers have never even come close to uniform standards coherence. So the validators are testing markup against pure fiction, an idealistic but flawed dream of W3C hegemony.
HTML validation shouldn't work, because it has always been worse than useless. It is constricting, a bane to innovation. Why should app developers and wheel reinventors be restricted to a generic set of elements and attributes? What good does it accomplish to place such a limit? Like many other languages, HTML/XML is designed to be extended. That creative ability should not be left only to the W3C and browser vendors.
In practical terms, browsers are spectacular at one thing, above all else: ignoring things. They ignore extra whitespace, unrecognized elements, custom attributes, and even unclosed tags in many cases. They do this so well out of necessity. Standard specifications have never been met. They also need not only a high degree of backward compatibility, but forward compatibility as well.
Browsers are designed for new things. Be creative!
The only valid kind of HTML validation is syntax validation. All i ever want to know is if it is parse-able. Really, that's it!