Можно ли использовать синтаксис xhtml в html5

Синтаксис XHTML

При написании кода XHTML придерживаются того же синтаксиса, который характерен для HTML. При этом разница между HTML и XHTML состоит в наборе некоторых обязательных правил.

Правила XHTML следующие.

  1. Все теги и их атрибуты должны быть набраны в нижнем регистре (строчными символами).
  2. Значения любых атрибутов необходимо заключать в кавычки.
  3. Требуется закрывать все теги, даже такие, которым не сопоставлен закрывающий тег.
  4. Должна соблюдаться правильная вложенность тегов.
  5. Нельзя использовать сокращенные атрибуты тегов.
  6. Вместо атрибута name следует указывать id.
  7. Следует определять DTD (document type definition, описание типа документа) с помощью элемента <!DOCTYPE>.

Теги должны быть набраны в нижнем регистре

Это правило возникло из-за того, что XHTML чувствителен к регистру символов, поэтому для него теги <HR> и <hr> различаются. Чтобы не возникало путаницы, синтаксис принудительно заставляет указывать все теги, а также их атрибуты в нижнем регистре. В примере 3.1 приводится неверное использование тегов.

Пример 3.1. Ошибочное написание тегов

XHTML 1.0IECrOpSaFx

<!DOCTYPE html PUBLIC «-//W3C//DTD XHTML 1.0 Strict//EN» «https://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd»> <html xmlns=»https://www.w3.org/1999/xhtml»> <> < http-equiv=»Content-Type» content=»text/html; charset=utf-8″ /> <title>XHTML</title> </> <BODY> <P>Lorem ipsum dolor sit amet…</P> </BODY> </html>

В данном примере теги <body> и <p> набраны прописными символами, что является ошибкой. В примере 3.2 показан корректный код.

Пример 3.2. Правильное написание тегов

XHTML 1.0IECrOpSaFx

<!DOCTYPE html PUBLIC «-//W3C//DTD XHTML 1.0 Strict//EN» «https://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd»> <html xmlns=»https://www.w3.org/1999/xhtml»> <> < http-equiv=»Content-Type» content=»text/html; charset=utf-8″ /> <title>XHTML</title> </> <body> <p>Lorem ipsum dolor sit amet…</p> </body> </html>

Значения любых атрибутов необходимо заключать в кавычки

Хотя в HTML также требуется заключать значения в кавычки, но их отсутствие никак не влияет на корректность кода. Так что можно сказать, что в HTML применение кавычек это лишь рекомендация. В XHTML же использование кавычек возведено в правило и любые значения атрибутов требуется указывать только в них (пример 3.3).

Пример 3.3. Использование кавычек

XHTML 1.0IECrOpSaFx

<!DOCTYPE html PUBLIC «-//W3C//DTD XHTML 1.0 Strict//EN» «https://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd»> <html xmlns=»https://www.w3.org/1999/xhtml»> <> < http-equiv=»Content-Type» content=»text/html; charset=utf-8″ /> <title>XHTML</title> </> <body> <table width=»200″ border=»1″ cellpadding=»5″ cellspacing=»0″> <tr> <th scope=»col»>Чебурашка</th> <th scope=»col»>Шапокляк</th> </tr> <tr> <td>1</td> <td>5</td> </tr> <tr> <td>4</td> <td>13</td> </tr> </table> </body> </html>

В данном примере все атрибуты тега <table>, а также <th> задаются в кавычках.

Требуется закрывать все теги

В HTML теги делятся на две категории — парные теги, называемые еще контейнерами и одинарные теги. Парные теги состоят из открывающего и закрывающего тега, причем в некоторых случаях закрывающий тег можно опустить. В XHTML закрывающий тег требуется всегда и везде. В примере 3.4 показан код с ошибкой, из-за того, что отсутствует тег </p>.

Пример 3.4. Нет закрывающего тега

XHTML 1.0IECrOpSaFx

<!DOCTYPE html PUBLIC «-//W3C//DTD XHTML 1.0 Strict//EN» «https://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd»> <html xmlns=»https://www.w3.org/1999/xhtml»> <> < http-equiv=»Content-Type» content=»text/html; charset=utf-8″ /> <title>XHTML</title> </> <body> <p>и лезет, крадучись, в самолёт, <p>и бомбу в брюхо ему кладёт, <p>и прочь неслышно бежит, как кот; <p>а дальше — не наше дело. </body> </html>

Некоторые разработчики игнорируют закрывающие теги </li>, </p>, </td>, но в XHTML их отсутствие считается ошибкой. В примере 3.5 показано корректное использование списков.

Пример 3.5. Добавление списка

XHTML 1.0IECrOpSaFx

<!DOCTYPE html PUBLIC «-//W3C//DTD XHTML 1.0 Strict//EN» «https://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd»> <html xmlns=»https://www.w3.org/1999/xhtml»> <> < http-equiv=»Content-Type» content=»text/html; charset=utf-8″ /> <title>XHTML</title> </> <body> <ul> <li>Восток</li> <li>Запад</li> <li>Юг</li> <li>Север</li> </ul> </body> </html>

В данном примере каждому открывающему тегу соответствует его закрывающий тег.

Элемент <!DOCTYPE> не является частью XHTML-документа, поэтому для него закрывающего тега не требуется.

Что касается одинарных тегов, то они должны завершаться слэшем перед закрывающей угловой скобкой, как показано в примере 3.6.

Пример 3.6. Добавление изображения

XHTML 1.0IECrOpSaFx

<!DOCTYPE html PUBLIC «-//W3C//DTD XHTML 1.0 Strict//EN» «https://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd»> <html xmlns=»https://www.w3.org/1999/xhtml»> <> < http-equiv=»Content-Type» content=»text/html; charset=utf-8″ /> <title>XHTML</title> </> <body> <p><img src=»images/test.png» width=»48″ height=»48″ alt=»тестовая картинка» /></p> </body> </html>

В данном примере обратите внимание на обязательный пробел, который предшествует конструкции />.

В табл. 3.1 приведены некоторые теги HTML и их запись в XHTML-документе.

Табл 3.1. Сопоставление HTML и XHTML-тегов

HTML-тегXHTML-тег
<br><br />
<hr><hr />
<input><input />
<img><img />
<>< />

Должна соблюдаться правильная вложенность тегов

XHTML критично относится к ошибкам следующего типа: некорректная вложенность одного тега в другой и расположение тега в несоответствующем контейнере.

Правильная вложенность тегов

Каждый тег должен располагаться внутри другого тега, при этом недопустимо их «пересечение», как это показано в примере 3.7.

Пример 3.7. Ошибка с положением тегов

XHTML 1.0IECrOpSaFx

<!DOCTYPE html PUBLIC «-//W3C//DTD XHTML 1.0 Strict//EN» «https://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd»> <html xmlns=»https://www.w3.org/1999/xhtml»> <> < http-equiv=»Content-Type» content=»text/html; charset=utf-8″ /> <title>XHTML</title> </> <body> <p>Lorem <b><i>ipsum dolor sit</b></i> amet…</p> </body> </html>

В данном примере закрывающий тег </b> предшествует тегу </i>, хотя должно быть наоборот, что и приводит к ошибке. Стоит поменять теги местами, как код становится корректным.

Хотя валидатор кода и выдает ошибку в случае неправильного положения тегов, браузеры при этом правильно отображают веб-страницу.

Иерархия тегов

Все теги имеют строгую иерархическую систему в том смысле, что каждый тег должен находиться внутри другого тега и никак иначе. На условной вершине находится корневой элемент <html>, а все остальные теги могут содержать внутри себя другие теги, которые называются дочерними. Соответственно дочерние теги располагаются в родительском элементе.

Читайте также:  Можно ли не использовать ккм при расчетах

Необходимо знать систему подчиненности тегов и следовать ей при написании кода XHTML. В примере 3.8 показана базовая структура документа.

Пример 3.8. Структура документа

XHTML 1.0IECrOpSaFx

<!DOCTYPE html PUBLIC «-//W3C//DTD XHTML 1.0 Strict//EN» «https://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd»> <html xmlns=»https://www.w3.org/1999/xhtml»> <> < http-equiv=»Content-Type» content=»text/html; charset=utf-8″ /> <title>Новый документ</title> </> <body> <p>…</p> </body> </html>

В данном примере вначале приводится тег <html>, внутри которого располагаются теги <> и <body>. Внутри раздела <> хранится заголовок документа (<title>) и кодировка страницы (<>).

Нельзя использовать сокращенные атрибуты тегов

Сокращенным называется атрибут без присвоенного значения. В примере 3.9 приведена форма с использованием таких атрибутов.

Пример 3.9. Ошибка при использовании атрибутов

XHTML 1.0IECrOpSaFx

<!DOCTYPE html PUBLIC «-//W3C//DTD XHTML 1.0 Strict//EN» «https://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd»> <html xmlns=»https://www.w3.org/1999/xhtml»> <> < http-equiv=»Content-Type» content=»text/html; charset=utf-8″ /> <title>XHTML</title> </> <body> <form action=»handler.php» method=»post»> <fieldset> <input type=»text» value=»Совет дня» readonly /> </fieldset> </form> </body> </html>

«Пустое значение», как еще называется подобная ошибка, легко исправляется, если присвоить атрибуту значение, совпадающее с названием. В табл. 3.2 приведены некоторые атрибуты и как они записываются в HTML и XHTML.

Табл 3.2. Сопоставление атрибутов в HTML и XHTML

HTMLXHTML
checkedchecked=»checked»
compactcompact=»compact»
disableddisabled=»disabled»
ismapismap=»ismap»
multiplemultiple=»multiple»
nohrefnohref=»nohref»
noresizenoresize=»noresize»
noshadenoshade=»noshade»
nowrapnowrap=»nowrap»
readonlyreadonly=»readonly»
selectedselected=»selected»

В примере 3.10 показано корректное использование вышеприведенной формы.

Пример 3.10. Правильное использование атрибутов

XHTML 1.0IECrOpSaFx

<!DOCTYPE html PUBLIC «-//W3C//DTD XHTML 1.0 Strict//EN» «https://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd»> <html xmlns=»https://www.w3.org/1999/xhtml»> <> < http-equiv=»Content-Type» content=»text/html; charset=utf-8″ /> <title>XHTML</title> </> <body> <form action=»handler.php» method=»post»> <fieldset> <input type=»text» value=»Совет дня» readonly=»readonly» /> </fieldset> </form> </body> </html>

Вместо атрибута name необходимо указывать id

Атрибут name определяется в HTML для тегов <a>, <frame>, <iframe>, <img> и <map> и предназначен для обозначения элемента с целью последующего к нему обращения из скриптов. В XHTML атрибут name частично вышел из употребления, а вместо него следует использовать id, как показано в примере 3.11.

Пример 3.11. Идентификатор рисунка

XHTML 1.0IECrOpSaFx

<!DOCTYPE html PUBLIC «-//W3C//DTD XHTML 1.0 Strict//EN» «https://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd»> <html xmlns=»https://www.w3.org/1999/xhtml»> <> < http-equiv=»Content-Type» content=»text/html; charset=utf-8″ /> <title>XHTML</title> </> <body> <p><img src=»images/graph2.png» id=»pic1″ alt=»Картинка» /></p> </body> </html>

Указанное правило не применяется к элементам форм, вроде <input type=»radio» />, где без атрибута name вообще не обойтись.

Следует определять DTD

Все XHTML-документы обязательно должны содержать элемент <!DOCTYPE> в первой строке кода, а также придерживаться иерархической структуры вложения тегов.

Источник

XHTML 2 против HTML 5

Вернемся в прошлое на десять с небольшим лет, в 18 декабря 1997. Internet Explorer 4 был выпущен 3 месяца назад, The Mozilla Foundation еще не сформирована и до выхода Firefox еще далеко. Здесь нет XMLHttpRequest, нет даже XML. В этот день, больше десятилетия назад, HTML 4.0 был опубликован как рекомендация W3C.

Он и стал базой, на основе которой были разработаны современные web-стандарты. Конечно, были и усовершенствования. В 2000 году как официальная рекомендация был принят XHTML 1.0, а CSS 2 был реализован большинством производителей браузеров. Но основа Web — костяк, на котором построен каждый сайт, от простых визиток до комплексных приложений — по существу осталась неизменной.

По крайней мере, до сегодняшнего дня. После долгого затишья, кажется, уклад вещей в W3C меняется — в разработке находятся две конкурирующие спецификации, призванные заменить устаревшие стандарты HTML 4.x и XHTML 1.x. Обе инициативы работают под эгидой W3C (пусть так было и не всегда) и обе, по моему мнению, значительно превосходят текущую подборку языков web-разметки. Это HTML 5 и XHTML 2.0. И если вы читаете эту статью, скорее всего, в течение нескольких следующих лет вам придется работать с одной (или обеими) из них.

Работа над XHTML 2.0 началась вскоре после публикации XHTML 1.1 в качестве рекомендации в 2001 году. Первый черновой вариант XHTML 2.0 был опубликован в 2002 г., но значительная часть документа была в ненормативном и незавершенном состоянии (а кое-что осталось до сих пор). К 2004 году у некоторых видных деятелей отрасли — разработчиков браузеров, дизайнеров, web-разработчиков и владельцев контента — возросло недовольство дирекцией рабочей группы XHTML 2.0. Ссылаясь на закрытый характер работы W3C, они решили основать и разрабатывать свой собственный стандарт.

Итак, в 2004 г. была сформирована независимая коалиция, названная WHATWG (Web Hypertext Application Technology Working Group). Группа начала работу над спецификацией, названной Web Applications 1.0. В апреле 2007 года W3C проголосовало в пользу предложения рассмотреть спецификацию группы. Члены WHATWG начали работать в рамках W3C как группа разработчиков HTML и продолжили работу над своим проектом, который был переименован в HTML 5. Таким образом, черновик HTML 5 должен однажды стать рекомендацией W3C наряду с XHTML 2.0 (хотя этот день еще очень далек, и W3C уже пропустил несколько ключевых этапов проекта).

XHTML 2.0 полностью основан на XML, разработчики отказались от наследства SGML и синтаксических особенностей, присутствующих в текущей web-разметке. Он позиционируется как «язык общего назначения», с минимальным функционалом по умолчанию, который легко расширить, используя CSS или другие технологии (XForms, XML Events, и т.д.). Этот модульный механизм позволяет группе разработчиков XHTML 2 сосредоточить свое внимание на общей разметке документа, пока остальные разрабатывают механизмы представления, интерактивности, построения документа и т.д.

Первым приоритетом для рабочей группы XHTML 2 является дальнейшее отделение контента и структуры документа от его представления. Другими целями являются повышенное удобство и доступность, улучшенную интернационализация, большая независимость от устройств, меньшее количество скриптов и интеграция с Semantic Web. Разработчики были меньше заинтересованы в обратной совместимости, чем их предшественники (и группа разработчиков HTML), что привело к удалению некоторого синтаксического багажа, существовавшего в ранних воплощениях HTML. Результатом стал более чистый и сжатый язык, исправляющий многие старые недочеты Web-разметки.

Читайте также:  Можно ли использовать парфюм вместо дезодоранта

В то время как концепция XHTML 2.0 предназначена быть революционной, группа разработчиков HTML выбирает прагматичный подход и создает HTML 5, как эволюционировавшую технологию. Получается, что HTML 5 является шагом вперед, но по-прежнему большей частью совместим с текущими стандартами HTML 4/XHTML 1. Однако HTML 5 предлагает множество изменений и расширений для HTML 4/XHTML 1, указывающих на многие недочеты своих предыдущих спецификаций.

В спецификации HTML 5 речь идет об отходе HTML от разметки документа и внедрении его в языки для создания web-приложений. С этой целью основное внимание концентрируется на создании более надежного и функционального клиентского окружения, предоставляющего различные API для разработки web-приложений. Среди прочего, спецификация предусматривает то, что реализации должны предоставить на стороне клиента постоянные хранилища данных (как вида ключ/значение, так и SQL-базы данных), API для воспроизведения аудио и видео, 2D-рисования посредством элемента canvas, обмен сообщениями между документами, отправляемые сервером события и сетевые API.

HTML 5 поддерживает SGML-подобный синтаксис, совместимый с текущими спецификациями HTML (хотя некоторые наиболее эзотерические черты SGML больше не поддерживаются). В спецификацию также включена вторичная «XML-сериализация», позволяющая разработчикам использовать правильные XML-документы. Путем сохранения SGML-подобной сериализации группа разработчиков HTML 5 достигла баланса между прагматизмом и прогрессом: разработчики могут выбирать между разметкой с использованием HTML-сериализации (которая больше похожа на HTML 4.x) или XML-сериализации (больше похожа на XHTML 1.x).

Никого не удивит, что обе группы разработчиков предлагают ряд сходных возможностей. Они указывают на известные «больные места» web-разработки и будут желанным дополнением в новом поколении языков разметки.

Удаление элементов представления

Ряд элементов будут удалены в XHTML 2 и HTML 5, так как они отвечают только за представление документа. Считается, что представление должно управляться посредством таблиц стилей.

Документы XHTML 2 и HTML 5 не могут содержать следующих элементов: basefont, big, font, s, strike, tt и u. XHTML 2.0 также удаляет элементы small, b, i и hr, а HTML 5 переопределяет их другим значением (отвечающим не за представление). В XHTML 2.0 элемент hr заменяется элементом separator дабы уменьшить путаницу (элемент hr предназначен для создания горизонтальных разделителей, но вовсе не обязательно используется для этого).

Списки навигации

Списки навигации были введены как в XHTML 2.0, так и HTML 5. В XHTML 2.0 они определяются новым элементом nl (igation List). Сам список должен начинаться дочерним элементом label, определяющим заголовок списка. После него может идти один или несколько элементов li, используемых для разметки ссылок. Также новинкой в XHTML 2.0 является возможность создания ссылки с любого элемента, используя для него атрибут href. Комбинация этих методов позволяет создать простую, легкую разметку меню:

<nl> <label></label> <li href=»/»>All</li> <li href=»/news»>News</li> <li href=»/videos»>Videos</li> <li href=»/images»>Images</li> </nl>

В HTML 5 для этих целей был введен элемент . К сожалению, не является списочным элементом, поэтому не может содержать дочерних элементов li для логической организации ссылок (возможно, будет разработана новая идиома). И так как для создания ссылок в HTML 5 остаются необходимыми элементы a, разметка навигации не очень элегантна:

<> <h2></h2> <ul> <li><a href=»/»>All</a></li> <li><a href=»/news»>News</a></li> <li><a href=»/videos»>Videos</a></li> <li><a href=»/images»>Images</a></li> </ul> </>

Улучшенные формы

Обе спецификации содержат новые возможности для создания более последовательных форм с применением меньшего количества скриптов. В XHTML 2.0 стандарт HTML-форм был полностью удален в пользу более обширного стандарта XForms. Группа разработчиков XHTML 2.0 не контролирует эту технологию, а только ссылается на нее в спецификации. Для упрощения повторного использования в XForms собираемые данные отделены от разметки элементов управления. Это мощный язык, но его полное описание выходит за рамки этой статьи. Достаточно сказать, что даже малые знания этой технологии значительно повысят скорость разработки.

HTML 5 сохраняет привычные HTML-формы, но добавляет некоторые типы данных для упрощения разработки и повышения удобства для пользователя. Добавлено несколько новых типов элемента input для -адресов, URL, даты и времени и числовых данных. Это позволит браузерам создавать более удобный пользовательский интерфейс (например, диалоги для выбора даты и времени), интегрироваться с другими приложениями (выбор адресов из Outlook или Адресной Книги, например) и проверять введенные пользователем данные перед отправкой на сервер (сокращение JavaScript-проверок на стороне клиента).

Семантическая разметка

Обе спецификации охватывают приближающийся Semantic Web, позволяя разработчикам внедрять в документы более богатые метаданные. Как и с формами, группа разработчиков XHTML2 использует более сложную технологию, в то время как разработчики HTML 5 пошли по более простому пути.

В XHTML 2.0 метаданные могут быть внедрены при использовании нескольких новых атрибутов из Модуля Метаинформационных Атрибутов (rmation Attributes Module). В частности, новый глобальный атрибут role предназначен для описания значения данного элемента в контексте документа. Также используется технология «Внедрения структурированных данных в web-страницы» (Embedding Structured Data in Web Pages), для этого группа использует существующие стандарты, ссылаясь на RDF. Эта технология является чрезвычайно мощной, но также и сложной.

Группа разработчиков HTML выбрала подход, который очень поход на микроформаты — перегрузка атрибута class преопределенным набором классов, представляющих различные типы данных. На данный момент в спецификации имеется семь зарезервированных классов: copyright, error, example, issue, note, и warning. Хотя такой метод может казаться не очень надежным, маловероятно, что в разных браузерах эти элементы будут отображаться по-разному. Имена классов достаточно конкретны, поэтому есть о чем побеспокоиться: элемент с классом copyright будет отображаться как авторские права, независимо от того, знал разработчик о зарезервированных классах или нет.

Ниже описаны некоторые возможности HTML 5, не имеющие аналогов в XHTML 2.0

API для web-приложений

HTML 5 вводит ряд API, значительно улучшающих оболочку для разработки на стороне клиента. Они делают из HTML 5 стек технологий для web-приложений, а не просто язык для разметки документов. Стоит отметить, что детали этих API сейчас проработаны группой разработчиков Web API (Web API working group), поэтому могут быть приняты как с остальной частью HTML 5, так и самостоятельно. Новыми API и соответствующими элементами являются:

  • API 2D-рисования посредством элемента canvas
  • API воспроизведения аудио и видео, поддерживающие возможность предоставлять браузеру несколько форматов, которые могут быть использованы в новых элементах audio и video.
  • Постоянные хранилища данных на стороне клиента, как вида ключ/значение, так и SQL-базы данных.
  • Оффлайн-API для web-приложений (схожее с Google Gears).
  • API, позволяющее web-приложениям сопоставлять себя с различными протоколов или MIME-типами.
  • API редактирования, которое может быть использовано в комбинации с глобальным атрибутом contenteditable.
  • Drag&Drop API, которое может быть использовано в комбинации с атрибутом draggable
  • Сетевое API, позволяющее web-приложениям использовать протокол TCP.
  • API, отражающее историю переходов браузера, позволяющее web-приложениям добавлять в нее записи, что позволит адекватно работать при нажатии кнопки «Назад» браузера.
  • API обмена сообщениями меду документами.
  • Отправляемые сервером события в комбинации с новым элементом event-source.
Читайте также:  Можно ли зимнюю резину использовать летом

Новые элементы

В HTML 5 вводится ряд новых возможностей, которых нет в XHTML 2.0:

  • figure представляет изображение или график с заголовком. Вложенный элемент legend отображает заголовок, а обычный элемент img используется для изображения
  • m отображает текст, выделенный каким-либо образом. Может быть использован для подсветки слов при выдаче результатов поиска, к примеру.
  • отображает дату и время
  • meter отображает измерения или величины
  • datagrid отображает интерактивное дерево данных или табличные данные
  • command отображает команду, которую пользователь может выполнить
  • event-source используется для «ловли» посылаемых сервером событий
  • output отображает определенный тип вывода, такой как результат вычисления скрипта
  • progress — отображает выполнение процесса, такого, как загрузка или выполнение серии трудоемких вычислений.

В дополнение, некоторые новые элементы помогают семантично разметить части документа. Их названия говорят сами за себя: section, article, er, и aside. А новый элемент dialog предназначен для отображения сообщений с использованием дочерних элементов: dt — для имени отправителя, а dd — для текста сообщения.

Отслеживание пользователей оповещением (pinging) URI

Новый атрибут ping может использоваться в элементах a и area для отслеживания пользователей. Этот атрибут позволяет указать разделенный пробелами список URI, которые должны быть оповещены при переходе по ссылке, это позволяет уйти от использования переадресации или JavaScript’ов.

Новые возможности, которые доступны только в XHTML 2.0

Любой элемент может быть ссылкой

В XHTML 2.0 атрибут href можно указать в любом элементе, тем самым превратив его в ссылку. С этим изменением элемент a больше не является необходимым, но он сохраняется.

Любой элемент может быть изображением (или другим ресурсом)

В XHML 2.0 элемент img был удален. Но не волнуйтесь — теперь любой элемент может быть изображением. Идея в том, что все изображения имеют длинное описание, которое эквивалентно самому изображению. Добавлением атрибута src к любому элементу мы говорим браузеру загрузить указанный ресурс и разместить его на месте элемента. Если по какой-либо причине ресурс недоступен, будет отображено содержание элемента. Это позволяет разработчикам предоставлять несколько эквивалентных ресурсов, используя разные форматы файлов и представления, путем вложения элементов друг в друга.

Строки заменяют br

Почтенный элемент br, использующийся для вставки перехода на новую строку, также был удален в XHTML 2.0. Для его замены введен новый элемент l. Он представляет строку текста, и работает как span, после которого стоит br по правилам текущей разметки.

Новая структура заголовков

Новые элементы h и section были введены для замены пронумерованных элементов h2 — h6. Цель этого — стремление передать иерархическую структуру документа. Текущие нумерованные заголовки линейны, не вкладываются друг в друга. При вложении элементов section и h в родительские section структура документа будет ясна.

Новые элементы

Группа разработчиков XHTML 2 сосредотачивала внимание на создании более общего, упрощенного языка. В виду этого, они воздержались от добавления множества специализированных элементов для представления различных видов контента. Они утверждают, что новый атрибут role предоставляет механизм для внедрения богатых метаданных, которые делают ненужными специализированные элементы. Тем не менее, было включено несколько новых элементов:

  • blockcode представляет компьютерный код
  • di представляет группу связанных терминов и определений в dl (definition list). Это удобно для слов с различными значениями или различным произношением.
  • handler представляет скриптовый обработчик событий с атрибутом type, который указывает язык обработчика. Если браузер его не понимает, обрабатываются потомки элемента-обработчика (иначе они игнорируются). Таким образом, обработчики могут вкладываться друг в друга для предоставления реализации на нескольких языках.

Оба предложения выглядят обещающе и содержат множество новых возможностей, указывающих на обычные проблемы web-разработки. Но ни одна спецификация является официальной рекомендацией, и так, скорее всего, будет в течение некоторого времени.

Несмотря на позднее начало, группа разработчиков HTML 5 имеет большую индустриальную поддержку и прошла больший путь в рекомендационном процессе. Их цель состоит в том, чтобы иметь полную спецификацию, с множеством взаимодействующих реализаций не позднее 2010 года (как я уже говорил, несмотря на это, консорциум W3C уже пропустил несколько этапов в процессе утверждения). С индустриальной поддержкой большинства главных разработчиков браузеров (единственным исключением является Microsoft) эти спецификации, вероятнее всего, будут внедряться быстро и последовательно, как только они достигнут стабильного состояния.

Всеобщее желание состоит в том, чтобы избежать очередной войны стандартов. К счастью, так как оба языка поддерживают пространства имен XML (или, в случае HTML-сериализации в HTML 5 — переключение DOCTYPE), маловероятно, что мы увидим такую же зависимость отображения документа от браузера, какая наблюдалась в 90-ых. Если отмести в сторону войны стандартов, будущее web-разработки выглядит светлым. Эти новые возможности разметки и API предоставят хорошую оболочку для web-разработки, которая должна сократить разрыв между настольными и web-приложениями.

Источник