Пошарив по сети, нашёл интересную статью об истории HTML, и решил осветить наболевший вопрос о переходе на HTML5. Почитать спецификацию вы можете сами, а перед этим я расскажу о некоторых проблемах и дам полезные для их понимания ссылки.
Преимущества HTML5:
- Новые «структурные» теги (официально они так не называются):
<section>
,<nav>
,<article>
,<aside>
,<header>
,<footer>
. Раньше это решалось блочными элементами с аттрибутамиclass
иrole
- Аттрибуты вида
data-*
— например,data-size
для указания размеров (это только пример, вместо «size» может быть что угодно в рамках синтаксиса). Обращаться к таким аттрибутам можно посредством свойстваdataset
:
someElement.dataset.size = '200x300';
- Новые «функциональные» теги:
<canvas>
,<video>
,<audio>
,<menu>
и другие — со своим API и возможностью добавления пользовательских (или, точнее, дизайнерских) элементов управления и поддержкой стандартных (по умолчанию браузера) - Возможность работать в привычном xhtml-формате, т.е. возможность создавать валидные XHTML-документы (помним разницу между valid XHTML и well-formed XML!) и работать с их XML DOM, парсить, преобразовывать с помощью XSL, встраивать в них SVG и другие XML-документы. Напомню, что работа над XHTML 2 была прекращена в 2009 году
- Расширения для форм в виде множества значений параметра
type
- Расширения для ссылок, по сути это те же микроформаты, но на уровне спецификации языка
- Прочие полезности вроде
<ruby>
(типографика для иероглифической писменности),<figure>
(иллюстрации, схемы) и т.п.
Но было бы слишком странно, если бы все было так хорошо. Не сказать, что все плохо, но проблемы и сложности все равно имеются:
- Отсутствует встроенный механизм расширения, кроме тех самых аттрибутов
data-*
. Если вы захотите новых возможностей, то придется пользоваться старыми способами: XML Schema, DTD, RELAX NG и встраивание всего этого с помощью пространств имен XML, с последующими «ослиными хаками», Flash-велосипедами и JavaScript-протезами. Поэтому программисты не останутся без работы ближайшие 20 лет - Еще более усугубится проблема псевдо-XHTML (настоятельно рекомендую понять суть этой проблемы): разработчики будут верстать ломаный XHTML, отправлять его с MIME-типом
text/html
и таким образом накапливать проблемы в виде js-сценариев и стилей, слетающих при смене типа документа, или вообще ошибок в разметке документа и отказа браузера его обрабатывать. Все это — следствие того, что никто не читает руководства. Так что верстальщики тоже не останутся без работы ближайшие 20 лет - Новые теги все равно закончатся, а кроме этого еще и не совсем очевиден выбор именно такого набора. Например, когда мне лучше ставить
<nav>
, а когда оставить просто список ссылок? Нет четких границ применимости - Проблемы обратной совместимости решены лишь для малого подмножества нововведений, сообществу разработчиков предстоит придумывать очень сложные механизмы поддержки старых браузеров. И это будут уже не просто ухищрения вида «добавь комментарий, чтобы починить осла», а полноценные наборы инструментов. Например, как бы вы сделали обратную совместимость элемента
<video>
? А вот то-то и оно, что Flash-велосипеды из моды не скоро выйдут - Сотни тысяч непрофессионалов полезут пробовать новые возможности HTML5 (OMG,
<blink>
is back!). А поскольку спецификация внушительна по объему и сложности, то ждите еще и вал учебников и руководств в духе «HTML5 для альтернативно одаренных», написаных такими же. При этом хорошие книги по HTML5 уже есть, но школьники не знают английского. Ничего плохого в этом не вижу, все вполне естественно (сам такой был), но упомянуть об этом стоит - Неполная поддержка и ошибки реализации
- Соперничество W3C, WHATWG, других производителей веб-стандартов и производителей браузеров и смежного ПО
- Копирастия, войны патентов
Таков мой взгляд на будущее HTML5. Обидеть ни кого не хотел, holywar не провоцировал. Отнеситесь, пожалуйста, серьезно к вышесказанному, т.к. речь идет о центральном веб-стандарте на ближайшие, возможно, 2 десятка лет — HTML5 может получить статус «Candidate Recommendation» к 2012 году (подробнее см. WHATWG FAQ и Уровни готовности технических отчетов W3C).
Полезные ссылки:
- Статьи о HTML5 (англ.) на A List Apart
- «Краткая история HTML» (перевод одной из статей ALA)
- Sending XHTML as text/html Considered Harmful (англ.) — очень полезная статья о проблеме использования MIME-типа
text/html
для XHTML-документов - Спецификации HTML5: W3C, WHATWG
- Пример использования HTML5 на CSSing.org.ua — там же много полезных ссылок
- Еще примеры использования: html5gallery.com (англ.) — можно добавить свой сайт
- html5doctor.com (англ.) — помощь по HTML5, статьи
- Валидатор — как обычно, сами знаете адрес
И чуть не забыл мой вывод: HTML5 мне нравится, несмотря на все сложности. Так или иначе, это гораздо лучше, чем
<div class="page"><div class="wrapper"><div></div><div></div></div></div>
. Canvas вообще отличная вещь как растровое дополнение к SVG.UPD: Спасибо анонимному комментатору ниже за ссылки:
- An Unofficial Q&A about the Discontinuation of the XHTML2 WG (англ.)
- Неофициальное ЧаВо по поводу непродления работы над XHTML2 (перевод)
Вкратце, суть такова:
- Проблема псевдо-XHTML («маркетингового» XHTML), кажется, отменяется в виду того, что различие между HTML5 и XHTML5 определяется MIME-типом. Кроме того, для XHTML5 DOCTYPE может быть любым, а HTML5 допускает закрытие пустых тегов слешем. Т.е. в большинстве случаев разница между HTML5 и XHTML5 будет заключаться в нескольких строках. Хотя никто не отменял и специфические правила, касающиеся специальных символов XML и вложенности тегов.
- Я очень кратко упомянул парсинг, стоит дать ссылки: Парсинг (оффициальная документация HTML5), Валидатор HTML5, Парсер HTML5. Суть в том, что авторы отказались от SGML-парсинга, который поддерживался только валидаторами, и построили новую модель. Причем в этой новой модели явно оговариваются правила обработки ошибок парсинга (необязательные к применению).
Автор: Дмитрий Scriptin.
Интересное...
Комментариев нет:
Отправить комментарий