XHTML — стандарт для стандартизаторов

Впрочем, нельзя сказать, что все это время люди, отвечающие за стандарты, сидели сложа руки. Строго говоря, HTML является одной из реализаций SGML (стандартного обобщенного языка разметки — стандарт ISO 8879), причем реализацией добровольно примитивной — одно только описание стандарта SGML представляет собой 40-мегабайтный PDF-документ. И первое, что пришло в голову разработчикам консорциума W3C, — представить язык разметки веб-страниц в более упорядоченном и структурированном виде, приведя его к другому производному от SGML стандарту, получившему к тому времени широкое распространение расширяемому языку разметки XML. В результате на свет появился стандарт XHTML (Extensible Hypertext Markup Language — расширяемый язык разметки гипертекста). Основные отличия его от HTML можно перечислить в нескольких пунктах:

— все теги (основные элементы HTML/XHTML) должны быть закрыты. Даже не имеющие закрывающего тега изначально. В XHTML, например, элемент <img> станет таким: <img />;

— все имена тегов и атрибутов должны быть записаны строчными буквами (никаких <BODY><HEAD></HEAD>, только так: <body>);

— все атрибуты обязательно заключаются в кавычки;

— булевы атрибуты записываются в развернутой форме. Например:

<input type ‘checkbox" checked=”checked” />;

— все служебные символы, не относящиеся к разметке, должны быть заменены HTML-сущностями. Например: < на &lt; а & на &amp.

Кроме того, XHTML-документ должен подчиняться правилам валидации обычного XML: допустимо существование только одного корневого элемента, не принимается нарушение вложенности тегов (например, конструкции вида <a><i>Text</a></i>, вполне позволительные в HTML).

Впрочем, самое главное отличие заключалось не в синтаксисе а в отображении XHTML-документа браузером. При встрече браузером значения поля content-type в заголовке http паркета, равного application/xhtml+xml, документ обрабатывается xhtml-парсером, аналогично обработке XML-документа. При этом ошибки в документе не исправляются. Согласно рекомендациям W3C, браузеры, встретив ошибку в XHTML, должны прекратить обрабатывать документ, выдав соответствующее сообщение.

Спецификация XHTML 1.0 была одобрена в качестве рекомендации консорциума Всемирной паутины в январе 2000 года. В августе 2002 года была опубликована вторая редакция спецификации — XHTML 1.1. Параллельно полным ходом началась разработка XHTML 2.0, призванного стать новым уровнем представления документов во Всемирной сети. Разработчики пошли на довольно смелый шаг — нарушение обратной совместимости, но нововведения, которые они собирались внести, стоили того. XHTML 2.0 содержит спецификации Xforms, Xframes, призванные заменить стандартные HTML-формы и фреймы соответственно, ML Events — API для управления DOM-структурой документа, встроенную поддержку модулей Ruby character и многое другое. Работа шла полным ходом, но было несколько обстоятельств, совершенно не радующих авторов спецификаций. Если коротко, XHTML просто не получил должного распространения.

Во-первых, огорчали веб-разработчики, которые после вольницы HTML никак не хотели принимать новые правила в полном объеме. Расставлять в нужном месте кавычки и сущности оказалось просто непосильной задачей. Что там говорить про XHTML, если и со стандартами HTML4 веб-верстальщики обходились достаточно вольно. И что самое возмутительное — производители браузеров активно им в этом потакали!

И именно в этом заключалась вторая проблема. На самом деле все довольно понятно — те, кто делали браузеры, просто не могли допустить, чтобы какой-либо значимый контент в них был не доступен пользователю из-за каких-то неясных принципиальных соображений, и, надо сказать, они были по-своему правы (ну в самом деле, веб нам нужен для общения с миром, а не для т ого, чтобы все атрибуты были снабжены кавычками!). В результате наиболее популярные браузеры имели два режима отображения XHTML-документов, причем по умолчанию обычно работал «нестрогий» режим, при котором огрехи в разметке милосердно прощались. Хуже того, безусловно, самый распространенный на тот момент браузер Internet Explorer вообще не реагировал на MIME-тип application/xhtml и не имел в своем составе парсера обработки XHTML-документов вплоть до восьмой версии.

Главная причина неудачи повсеместного внедрения XHTML довольно проста. Строгие правила валидации, атрибуты, взятые в кавычки, закрытые одиночные теги… все это, может, и хорошо, но нужны эти тонкости в основном самим разработчикам и блюстителям стандарта, но никак не пользователям, которым, строго говоря, дел нет до всех этих тонкостей. И никак не создателям веб-контента, которым эти правила попросту ничего не дают, кроме несильной головной боли. В общем, сложилось что-то вроде революционной ситуации — создателям стандарт не нужен, а потребителям он не нужен тем более. А что всем им было нужно? Живой интерактивный веб-контент, воплощающий социальные потребности современного человека. Плоский мир HTML с этим справлялся плохо, и к концу 90-х на веб-странице появились не относящиеся к языку разметки компоненты.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *