Работа веб-разработчика связана с уже давно устоявшимися технологиями — HTML 4.01 стал рекомендацией в 1999 году, XHTML 1.0 (переформулирование HTML 4 в XML 1.0) стал рекомендацией в 2000 году. Другими словами — фундаментом современной веб-разработки является восьмилетняя технология.
HTML 4.01 является хорошим фундаментом для веб-разработчиков, но этот фундамент может стать ещё крепче. За последние восемь лет произошло много изменений, повлиявших на то, как люди относятся и используют интернет. Мы, веб-разработчики, осознали недостатки HTML 4.01, и теперь знаем, какими способами можно улучшить этот язык разметки. Настаёт время технологий нового поколения, и они заслуживают внимания. Нововведения коснутся каждого, кто крутится в этом бизнесе.
Кандидаты
W3C давно работает над XHTML2, цель которого взять на себя роль HTML 4.01 и XHTML 1.0. Новый язык обновит или заменит существующие семантические элементы. Ко всему прочему он может считаться полностью новым языком. Это подтверждается тем, что XHTML2 обладает совершенно разными наборами правил (namespace).
HTML5 (его ещё называют Web Applications 1.0) — это технология, разработку которой ведёт WHATWG — открытое сообщество, основанное тремя из четырёх крупнейших разработчиков браузеров: Mozilla, Opera и Apple. Не надо рассматривать HTML5 в качестве замены для HTML 4.01 или XHTML 1.0. Для этой технологии больше всего подходит понятие эволюции технологий. Этот язык нацелен на обратную совместимость. HTML5 поможет избавиться от неопределённостей, присущих HTML 4.01.
Во время обработки страницы браузером (parsing), HTML5 предлагает обрабатывать все тэги определённым способом, чтобы не “поломать” страницу и правильно вывести её содержимое пользователю (даже если на странице есть ошибки). Также HTML5 добавляет чрезвычайно необходимые семантические элементы. Они помогают улучшить валидацию форм, добавляют интерактивные элементы и определяют постоянное место хранения данных.
Интернет и сегодняшний HTML
Формально, HTML 4.01 представляет собой документ в формате SGML, и единственные приложения, которые работают с HTML 4.01 в таком формате — это валидаторы. С другой стороны, браузеры всеми силами пытаются обработать даже сильно искаженную страницу и показать её пользователю в доступной форме.
Неприлично мало страниц интернета написаны на правильном HTML 4.01; большинство из них “поломаны” и неправильно структурированы, но браузерам всё равно приходиться обрабатывать страницы, иначе пользователь будет выбирать тот браузер, который правильно отображает его любимые сайты.
Очень важно при обработке исправлять ошибки, но каждый браузер делает это слегка по-своему. Все пытаются подражать своим большим конкурентам. Если одна и та же страница отображается одинаково в разных браузерах, это не означает, что также одинаково обрабатываются тэги и корректируются ошибки. HTML5 постарается однозначно определить процесс обработки интернет-страницы.
Также задачей HTML5 является то, чтобы установить правила в процессе обработки невалидных и неправильно структурированных сайтов. Это необходимо для того, чтобы разработчики браузеров смогли обеспечить полную совместимость.
Сегодняшний XML в интернете
Большинство сайтов в интернете, написанных на XHTML, выводятся в виде text/html
. Другими словами, браузеры обрабатывают страницы в виде набора обычных тэгов, а не в виде XML.
Одна из причин такого подхода кроется в очень жёстком механизме обработки ошибок в XML. Процесс обработки XML-документа остановится на самой первой ошибке. Это означает, что страница будет полностью недоступна в том случае, если существует хотя бы одна ошибка. При этом XML покажет только детали ошибки, но не её содержимое.
Всегда есть риск допустить ошибку даже в правильно построенной и сформированной XML-странице. С этим часто можно столкнуться там, где нет контроля над качеством обработки различных кодировок. Часто ошибки возникают в тех местах, где посетители оставляют комментарии, или где контент появляется из внешних источников (обратная связь, рекламный сервис или какое-нибудь расширение к программе). Всё это часто приводит к появлению ошибок.
Проблемой для XML-страниц является Internet Explorer, который не поддерживает XHTML 1.0 (в виде “application/xhtml+xml”). Этот браузер поддерживает общий XML, но без набора правил XHTML. Он “не обучен” семантике XHTML-элементов, и он даже не распознаёт таблицу стилей, которая должна применяться по умолчанию. (Есть возможность использовать XSLT для трансформации документа в HTML, но DOM ведёт себя непредсказуемо в режиме XML и в режиме обычных тэгов. Это означает, что скрипты, работающие в одном режиме, могут полностью не работать в другом.)
XHTML 1.0 разрешает выдавать страницы в виде text/html
, но при этом они должны быть обратно совместимы в соответствии с Аппендиксом C спецификации HTML. Это означает, что документы будут обрабатываться в обычном режиме тэгов, а не в режиме XML. (Есть возможность выдавать страницы в нужном виде для браузеров, которые не поддерживают XHTML должным образом, но при этом стоит учитывать те же недостатки, что и при трансформации документов, используя XSLT на стороне клиента.)
Internet Explorer не поддерживает XHTML в виде XML. Также не все инструменты веб-разработчика совместимы с XML. Всё это снижает стимул использовать XML в интернете. Плюс к этому поисковые системы не индексируют XHTML в виде XML-страниц; очень мало инструментов для работы с XML; очень мало CMS или блоггерских инструментов, корректно поддерживающих XML на протяжении всего пути — от ввода информации в базу данных до генерации информации; и очень мало рекламодателей поддерживают XML.
Появится небольшой стимул, если использовать MathML, SVG и другие XML-приложения в XHTML-страницах, но так поступает очень малая часть разработчиков.
XHTML2 — это XML
А теперь самая большая проблема. Помимо всех сложностей, с которыми сталкиваются разработчики во время работы с XML, XHTML2 добавляет ещё один уровень сложности. Ведь это не просто переформулированный HTML 4.01. XHTML2 — это другой, но похожий язык, в котором изменена семантика для очень многих элементов. Изменения направлены в нужное русло, но во время разработки XHTML2 не учитывалось мнение самих веб-разработчиков. Не адресованы проблемы и недостатки HTML 4.01 и XHTML 1.0 в областях согласования действий, локального хранения данных, или взаимодействия скриптов.
На данный момент XHTML2 является рабочим проектом. Часть этого проекта оставалась без изменений годами, поэтому этот язык всё ещё нестабилен, и плохо поддерживается четырьмя важнейшими направлениями: браузеры, поисковые системы, системы по управлению содержанием и инструменты для разработки. Ни один из крупных разработчиков браузеров не поддерживает XHTML2.
Мачей Стаховьяк (Maciej Stachowiak) из компании Apple сделал следующее заявление:
“Мы отказались принимать участие в рабочей группе XHTML2, так как мы не считаем, что технология XHTML2 подходит для интернета.”
Web Applications 1.0 нечто большее чем HTML5
Спецификация Web Applications 1.0 (WA1) призвана обновить HTML и XHTML 1.0 (со сбивающим с толку названием XHTML5), а также HTML DOM под названием DOM5 HTML.
Поскольку HTML 4.01 формально основан на SGML, то HTML5 позволяет браузерам использовать парсеры, которые автоматически корректируют ошибки. При этом HTML5 определяет SGML-модель, которая включает в себя коррекцию ошибок. (Обработка XHTML5 производиться XML-парсером, и осуществляется по правилам XML, а не по правилам HTML5.)
WA1 также определяет несколько программных интерфейсов (API), которые фактически являются стандартами. В том месте, где XHTML2 делает XHTML улучшенным семантическим языком для описания документа, WA1 проделывает более скромную работу, но при этом улучшает возможность создавать интернет-приложения. WA1 добавляет возможность хранить данные (о последнем действии веб-приложения) в истории браузера, сохранять информацию локально, возможность автономного просмотра; перетаскивать (drag and drop), копировать (copy and paste), повторять и отменять действия (under and redo) и т.д.
В отличие от XHTML2, который никак не поддерживается браузерами, HTML5 поддерживается всеми крупными разработчиками, кроме Майкрософта.
Спецификация ещё не закончена, но находится на стадии завершения — многие её части уже реализованы. Например, элемент canvas, который поддерживается Mozilla, Safari и Opera, и который использовался во многих демонстрациях современной функциональности.
W3C и HTML
W3C создали новую Рабочую Группу HTML, отдельно от группы, работающей над XHTML2. Рабочая группа HTML публично открыта через механизм приглашения экспертов. Будущее покажет, как это связано с работой других групп W3C. Председателями станут Крис Уилсон (Chris Wilson) — архитектор Internet Explorer в Microsoft, и Дэн Коннолли (Dan Connolly) из W3C.
W3C уже приспособила много технологий (созданных WHATWG) через Rich Web Clients Activity для того, чтобы улучшить пользовательскую сторону интернета. Новая рабочая группа по HTML зависит как минимум от одной группы в этой области разработки — рабочей группы WebAPI.
Связь с внешними группами, которые входят в рабочую группу HTML, позволяет предположить, что новая рабочая группа попытается использовать спецификацию HTML5 в виде фундамента для обновления HTML и XHTML (или использовать то, что WHATWG вложила в HTML5).
Что лучше для веб-разработчиков?
XHTML2
Поддержка браузеров — ключевой вопрос для веб-разработчиков. Internet Explorer не поддерживает технологии XHTML должным образом, и у него появляются большие проблемы, когда XHTML обрабатывается в виде XML (проблемы с кодировками, с внешним источником информации, с обработкой содержания в виде цепочки). Это мешает использовать XML. Будет нелегко превращать страницу из форматов HTML 4.01 и XHTML в страницу формата XHTML2. Для этого необходимо изменить структуру документа. Самое критическое — ни один из крупных разработчиков браузеров не поддерживает XHTML2.
HTML5
В большинстве случаев, чтобы из формата HTML 4.01 получить формат HTML5, необходимо просто заменить декларацию DOCTYPE
. Браузер обработает страницу обычным методом в том случае, если документ не использует новый API или элементы, которые относятся к HTML5. Для большинства систем по управлению содержанием и для инструментов разработки, сгенерировать HTML5 вместо HTML 4.01 будет проще простого. Пропадают преграды для возможностей HTML5. Уже можно эмулировать с помощью JavaScript много новых возможностей HTML5, которые не поддерживаются тем или иным браузером. Это позволит постепенно перейти от HTML 4.01 к HTML5.
Заключение
XHTML2 является семантическим улучшением технологии XHTML 1.0. Но похоже, что это не будет волновать веб-разработчиков ещё долгое время, особенно учитывая тот факт, что Internet Explorer до сих пор не поддерживает XHTML 1.0 в виде XML. Пройдут года перед тем, как появится поддержка XHTML2.
С другой стороны, уже поддерживаются много аспектов HTML5, и если Microsoft будет принимать активное участие в разработке HTML5, то пройдёт гораздо меньше времени перед тем, как мы увидим всестороннюю поддержку HTML5.
HTML5 — это будущее интернета, поэтому мой совет — пристально следить за развитием этой технологии.
— перевод статьи: umade.ru | оргинал на английском.
Очень понравилось.. Спасибо за перевод. Поставил ссылку на этот пост, чтобы казанцы тоже знали, что к чему.. 🙂
Ну и дурдом. В 2007 году заявлять, что IE до сих пор не поддерживает XHTML 1.0…
2 GLx
Так оно и есть. Ослик до сих пор не поддерживает XHTML 1.0 в виде XML.
Естественно все это вызывает лёгкую улыбку. А если серьезно, то оч. познавательно, респект переводчикам
Всё изменится в сторону семантической сети вероятно
Меня удивило, что W3C вернулось к стандарту HTML, когда существует уже XHTML. Может я чего-то не понимаю. Зачем это понадобилось?
Из всего написанного делаем вывод — фигачить на старом добром HTML, как и на XHTML придется еще очень долго, ибо изменения и “эволюция” произойдут еще ох как не скоро …
Это что-то вроде лекарств от рака — его “вот-вот” откроют, но …
Хех… Спасибо… очень позновательно… Ждём HTML5 и надеемся и мечтаем о том что во всех браузерах он будет выглядеть одинаково…
Чесно говоря не всё понял в этой статье…
На сколько я понимаю XHTML 1.0 – это тот же HTML 4.01, только соответствующий требованиям XML. И на сколько я знаю XHTML обладает по сравнению с HTML только достоинства, а недостатков относительно HTML у него нету.
И по этому я хочу согласиться с Сергеем Колесниковым, который высказал своё недоумение относительно того, что W3C вместо активной разработки XHTML 2 видимо больше уделило внимания разработке HTML 5.
И вообще-то мне казалось что XHTML 2 и HTML 5 будут практически одинаковыми с той только разницей, что XHTML 2 (как и первая его версия) будет также соответствовать требованиям XML.
Если кто-то может подсказать мне ответы на мои вопросы, то буду очень признателен.
Я думаю, что разделение существует потому что наверно есть две группы людей, которые продвигают свои стандарты. И между ними идет борьба 🙂 Как отделы компаний бьются за бюджет…
Уже разобрался в чём дело :)…
Если кого интересует могу в кратце рассказать…
Вобщем W3C ещё в 2002 начало разработку XHTML 2.0. Но то направление в котором двигалась рабочая группа XHTML 2.0 не совсем понравилось крупнейшим производителям браузеров. И они решили создать группу по разработке собственного стандарта. Группу назвали WHATWG. А стандарт решили назвать Web Aplication 1.0.
Вскоре W3C заинтересовалась этим проектом и вроде как WHATWG и W3C решили сотрудничать, после чего Web Aplication 1.0 решили переименовать в HTML 5. И если не ошибаюсь, во главе WHATWG стоят такие производители браузеров – Apple, Mozilla Foundation и Opera.
Так что вроде как XHTML 2.0 – это разработка W3C (и опять таки если не ошибаюсь, то разработку ведут только члены концорциума), а HTML 5 – это разработка WHATWG (открытая разработка, т.е. к работе над этим стандартом может присоединиться любой желаеющий… ну конечно с определенными знаниями), но видимо W3C тоже приложит руку к HTML 5.
В перспективе HTML 5 станет рекомендуемым стандартом W3C (и если не ошибаюсь, то этот стандарт планирует стать рекомендуемым стандартом W3C приблизительно к 2012 году).
Вобщем до окончания работы над обоими этими стандартами ещё не мало времени.
Кстати скоро собираюсь опубликовать на эту тему перевод одной статьи у себя на блоге.
Надеюсь написанное мною кому-то будет интересным.
Перевел статью Майка Мэлоуна под названием “XHTML 2.0 против HTML 5″.
С позволения администратора блога хочу дать на этот перевод ссылку.
Думаю она станет хорошим продолжением этой темы.
Спасибо за перевод. Ждем html 5. когда же он появится то…
Слишком субъективное мнение автора. Спалился на заключении:
«…Но похоже, что это не будет волновать веб-разработчиков ещё долгое время, особенно учитывая то, что Internet Explorer до сих пор не поддерживает XHTML 1.0.…»
и
«…и если Microsoft будет принимать активное участие в разработке HTML5, то много уже хорошо отполированных возможностей будут поддерживаться браузерами за более короткий временной промежуток…»
Почему Автор верит что M$ будет поддерживать HTML5, а XHTML2 не будет?
Не знаю кому как а вот лично мне html и xhtml по душе и менять их как-то не сруки. Хотя наверное в будущем придется меняться!
Автору спасибо за статью!
В скором времени вообще этого всего просто не будет ни HTML5, ни XHTML2, ни тем более ранних версий, с развитием и наворотами площадок и браузеров, а главное возрастании скорости доступа для обычного обывателя, все это канет в лету:)
M$ в жизни не придерживалась стандартов, всегда старалась сделать что-то свое. Вот поэтому всегда в пролете.
А на IE ИМХО сейчас мало кто ориентируется.
FF + Opera + Safari ( Gecko + WebKit ) уже давно лидеры.
За XML однозначно будующее, проблема только в поисковниках которые его ( XML ) не понимают.
Сейчас все так быстро и стремительно развивается, что только успевай следить. ХТМЛ 5? Интересно будет увидеть его возможности! Автору спасибо за статью и перевод!
Сейчас в интернете появляется огромное количество статей относительно HTML5, готовящегося увидеть свет. Но меня больше интересует вопрос почему столько шумихи именно вокруг HTML5, ведь ожидаемым шагом W3C было бы вести активную разработку XHTML2. Насколько мне известно, XHTML1 был шагом на пути к эволюционированию HTML 4.01. XHTML обладает радом преимуществ относительно HTML. И поэтому мне казалось, что именно XHTML2 станет логическим продолжением в развитии языка разметки гипертекстовых документов.