Известно что HTML5 это зонтик под которым прячется семейство технологий кроме собственно markup: video,canvas,local storage и пр.
В данном случае речь идет про markup только. По сравнению с HTML4 мы получаем в принципе две вещи:
1. Расширенный набор tags/elements. Включая дополнительный набор <input type=...>
2. Формализованные правила обработки ошибок парсером.
Собственно хочу обратить внимание на пункт #2. Как мне представляется в нем живет коллизия.
Скажем есть некий ЯП Alpha. Берем и добавляем в него правила обработки и восстановления после ошибок.
И просим всех эти правила строго выполнять.
Фактически после такой доработки ЯП Alpha получает новую грамматику в которой уже невалидные конструкции становятся
как бы валидными т.е. ожидаемыми и с предсказуемыми последствиями. Т.е. на самом деле мы получили ЯП Beta в котором
Alpha есть подмножество.