Пролог

Автор: Евгений Рыжков и Татьяна Головко Дата публикации: 19.04.2011

В HTML5 присутствует более 100 HTML элементов. Некоторые из них чисто семантические (см. главу 3), а некоторые являются контейнерами для программных API (см. главу 4). На протяжении всего развития HTML, у создателей стандартов постоянно появляется желание добавить новые элементы. Почему бы не добавить элемент <figure>? Или <person>? А как на счет <rant>? Во время дискуссий принимаются решения, пишутся спецификации, разработчики их используют и Веб развивается.

Конечно, HTML не в состоянии угодить всем. Не все идеи попадают в стандарты. Например, в HTML5 нет элемента <person>. И <rant> тоже нет. Но тебе в принципе ничего не мешает использовать в своей разметке элемент <person> или любой другой, какой придумаешь. Разве что он будет невалидным и возможны баги в некоторых браузерах. О том, как браузеры воспринимают незнакомые элементы, я уже упоминал в главе 3 (Длинное отступление о том, как браузеры отображают неизвестные теги). Более того, если такой же тег попадет в стандарты, могут появиться конфликты с ранее внедренным твоим тегом.

Что делать, если разработчику не хватает стандартных тегов, чтобы описать должным образом семантику страницы? В предыдущих версиях HTML были попытки расширить возможности языка. Наиболее популярная из них — микроформаты, которые используют классы и атрибуты rel. Другой вариант — это RDF, который первоначально предназначался для XHTML, но затем был перенесен и на HTML.

И микроформаты, и RDF имеют слабые и сильные стороны. Они используют кардинально разные методы для достижения одной и той же цели — добавления дополнительной семантики веб страницам, которая отсутствует в HTML по стандартам. Я не хочу превратить эту главу в войну между этими методами. Вместо этого я рассмотрю третий вариант, который тесно интегрирован в HTML5 — микроданные.

Куда дальше