Отличия HTML и XHTML. Преимущества XHTML. Прохождение валидации.
Отличия HTML и XHTML
Проштудировав кучу сайтов на подобную тему я пришел к выводу, что все кто пишет про отличия HTML и XHTML знают этот вопрос поверхностно. А возможно просто скопировали заблуждения друг у друга. Но я пишу этот пост для себя в качестве заметки, по этому буду описывать только те данные которые сам нашел в документации к обоим языкам разметки.
Во-первых, самое для меня неприятное, это то, что в HTML нет различия в регистре тегов, а в XHTML имена тегов и атрибутов обязаны записываться строчными буквами. Например, у меня почти все теги записаны заглавными буквами <TITLE>, а правильная запись <title>.
Во-вторых, все теги должны быть закрыты. Это тоже усложняет переписывание кода и переход на XHTML. Даже непарные теги должны быть закрыты. Для закрытия непарного тега в XHTML предусмотрено окончание в виде слеша и закрывающей скобочки тега. Например, горизонтальная линия не имеет закрывающего тега, что вполне понятно, и тег должен выглядеть следующим образом: <hr />.
В-третьих, XHTML очень строго относится к ошибкам в коде. W3C, он же Консорциум Всемирной паутины, он же World Wide Web Consortium, вообще требует, чтобы браузер прекратил обработку страницы и вывел ошибку пользователю. Естественно, что ни один разработчик в здравом уме не стал реализовывать подобный механизм валидации кода. Я, ради интереса, прошелся по сайтам написанным на XHTML и пропустил их через официальный валидатор validator.w3.org. Выяснилось, что все сайты содержат массу ошибок.
В-четвертых, в теге img обязательно указывать альтернативный текст для описания изображения. А я раньше не указывал атрибут alt для изображений. По этому придется в ручном режиме обойти архивы за 2000 года и дописать атрибут alt для всех картинок.
Преимущества XHTML
Если использовать XHTML в качестве языка разметки, то преимуществ не будет никаких. Разве, что масса головной боли и удовлетворение чувства собственного мазохизма.
Плюсы XHTML видны только при работе со страницами как с XML-документами. Но это большая редкость, в России XHTML это понтовое расширение HTML, нужность которого оценить практически не реально.
Считается, что интеграция MathML, SMIL и SVG в XHTML осуществлена лучше чем в HTML. Но на самом деле браузеры выковыривают их и из HTML.
Прохождение валидации
То, что сайт не проходит валидацию еще не означает, что сайт не будет работать в браузерах. Дело в том, что разработчики браузеров пытаются отработать максимальное количество полученного кода. И даже если внутри какого-либо тега есть лишние или некорректные данные, то браузер их пропустит. Плюс не все браузеры обрабатывают код по правилам и стандартам предъявляемым консорциумом.
На некоторых сайтах нашел фиктивный обход валидации сайта. Для чего это сделано я не знаю, но уже столкнулся с подобным подходом. Делается это так. В каждой страничке (или только в той, которая проходит валидацию) встраивается скрипт, который проверяет кто и откуда пришел, если скрипт думает, что это робот проверяет валидацию страницы, то ему отдается пустая, но сформированная по всем правилам страничка. Таким образом, на проверке валидности оказывается правильная страничка.
Отредактировано:2020-10-01 06:25:13