Вы слышали о том, что она выйдет в 2012-м? Или может в 2022-м? Конечно, она ещё не готова, но уже сейчас некоторые части этой спецификации реализованы в браузерах, так что разработчикам, разбирающимся в стандартах, о будущем стоит узнать уже сегодня. Ян "Хикси" Хиксон, редактор спецификации HTML 5, надеется, что спецификация перейдет в статус "Last Call Working Draft" в октябре этого года.
Член группы "Accessibility Task Force", Брюс Лоусон, взял интервью у Хикси о том, как происходит разработка спецификации для языка разметки HTML последнего поколения. И Брюс, и Хикси работают на производителей браузеров — Брюс на компанию Opera, Хикси на Google (а ранее на Opera и Netscape).
Брюс
Спецификация, ныне известная как HTML5, начала создаваться в группе разработчиков под названием WHATWG (Web Hypertext Application Technology Working Group). С чего начала свою работу WHATWG?
Хикси
Если отвечать коротко, то нас попросили в W3C.
Если же уточнять, то в далёком 2003-м году подходила к концу работа над спецификацией XForms, в то время находившейся на этапе утверждения в статусе "Proposed Recommendation". Производители браузеров были обеспокоены тем, что она не сможет стать популярной в Веб до тех пор, пока не войдет в состав HTML. После большой дискуссии (которая, к сожалению, большей частью была скрыта в стенах W3C) появилось понимание того, что можно заимствовать некоторые идеи из спецификации XForms и совместить их с HTML 4. Сначала мы называли наш проект "XForms Basic", а позднее переименовали в "WebForms 2.0". Он лёг в основу того, что сейчас называют HTML 5.
В 2004 году в W3C прошёл "Семинар W3C по разработке веб-приложений и составных документов" (The W3C Workshop on Web Applications and Compound Documents), где мы (создатели браузеров) убедились в том, что крайне важно, чтобы HTML был расширен с сохранением обратной совместимости. Можно сказать, это стало решающим моментом в истории W3C, так как вечные соперники RedHat, Sun и Microsoft, — все фактически согласились с этим, — чего раньше никогда не происходило.
Результатом этого семинара стало то, что в W3C решили, что HTML ещё не готов (то же было решено и на семинаре в 1998 году), и если мы хотим создать нечто похожее на HTML5, нам следует пойти иным путём. Поэтому мы создали список рассылки, и попытались добиться своих целей там.
В то время я работал в Opera Software, но тогда "мы", Opera и Mozilla, работали вместе (с одобрением Apple, наблюдавшего за нами со стороны).
Брюс
Как ты стал редактором?
Хикси
Я оказался в нужном месте в нужное время, а остальные были слишком заняты.
Брюс
Как ты лично относишься к созданию, редактированию спецификации и поддержке обратной связи? Какие процессы у вас существуют?
Хикси
По-разному в разное время, ведь мы прошли путь от зарождающейся организации с несколькими десятками человек до основательного проекта с более чем 900 подписчиками на рассылку нашей группы. Главным образом моя основная работа — разбор писем. Когда кто-то пишет отзыв на спецификацию, посылая письмо на один из списков рассылки или оставляя запись в одном из блогов, я сохраняю этот отзыв в папке на моем IMAP сервере. Отзывы распределяются по категориям: на те, которые могут быть рассмотрены мной немедленно и те, которые по какой-либо причине нельзя рассмотреть прямо сейчас. В качестве примера второй категории могут служить запросы, связанные с изменяемыми событиями, из-за того, что я ожидаю обновления спецификации DOM3 Events.
Потом я снова возвращаюсь ко всем отзывам, отвечая на них приблизительно в том же порядке, в каком я их и получил, а также попутно исправляя спецификацию для решения поставленных вопросов.
В этом есть несколько недостатков, например, существует большая задержка между моментом, когда кто-то замечает ошибку и моментом, когда я исправляю её. Однако существует и ряд преимуществ. Если я отвечаю на отзыв, я обычно отвечаю сразу же, но иногда этого не происходит, и я замечаю, что у меня появились изменения в обсуждаемом в отзыве разделе, так что если кто-то предлагает кардинальные изменения, мне, как правило, они не нравятся. Но когда происходит некоторая задержка в моём ответе, и я вижу, что изменения, произведённые мной, неудачны, мне не терпится заменить свою старую глупую идею на новую, лучшую идею, предложенную в отзыве. (Во всяком случае, если она лучше!)
Брюс
Самое трудное, что необходимо сделать?
Хикси
Существует несколько сложностей. Во-первых, трудно отказать людям, которые очевидно потратили время, придумав хорошую идею. Горькая правда в том, что я отвергаю почти всё, что придумываю сам и придумывают остальные, потому что если бы я так не делал, спецификация стала бы в тысячу раз больше, чем сейчас. Мы получаем самые разные предложения, и нам нужно держать очень высокую планку по выбору кандидатов. Также существует опасность, что если добавить слишком много нововведений в спецификацию, то каждый из производителей браузеров будет реализовывать их по-своему, что приведёт к большому беспорядку, который отнюдь не поможет создателям HTML-документов.
Так что мне приходится выносить решения о том, что стоит добавить, а что нет, и это трудно. Я огорчаю многих людей, отвергая их идеи, потому что это плоды их творчества. С другой стороны, некоторые из самых активных членов сообщества, чьи идеи в своё время были отклонены, не отступили и увидели, что некоторые из их идей были добавлены в спецификацию. Лучший способ внести идею в спецификацию — найти в ней что-либо явно неправильное, такое, что обнаруживают и другие люди.
Также трудно создавать новые функции. Основой спецификации HTML 5 фактически является формализация таких функций, которые уже есть в браузерах, но реализованы достаточно сложно и непонятно, и в конце концов мы должны сделать их лёгкими в понимании и реализации: мы тестируем браузеры и фиксируем их поведение, повторяя всё это, пока спецификация не покроет все возможные случаи.
Создание новых функций также подразумевает размышление о том, что должно происходить, что будет наиболее понятным решением, выяснение того, как различные функции должны сочетаться друг с другом и так далее. Также часто очень заманчиво реализовать что-то изящное теоретически, но, не согласовывая это с остальной частью языка. В конечном счете, это приводит нас к выводу, что мы не хотим создавать новую технологию XForms, хорошо продуманную, но не вписывающуюся в представление людей о создании HTML-документов.
Что входит в спецификацию?
Брюс
Ты сказал, что HTML 5 находится в прямой конкуренции с другими технологиями, предназначенными для Интернета, в частности Flash и Silverlight
. Не безнадежна ли их реализация в новой спецификации и почему это так важно, в тех условиях, когда эти технологии уже работают, в то время как HTML 5 даже не завершена?
Хикси
HTML 4 также находится в прямой конкуренции с запатентованным технологиям, и побеждает их, легко. HTML5 всего лишь продолжает эту битву, потому что если мы остановимся, то запатентованные технологии смогут получить распространение.
Брюс
Какова философия HTML 5?
Хикси
Обратная совместимость, постепенные изменения, формализация обработки ошибок. Вот наша философия.
Брюс
Чего ещё пытаются достичь в WHATWG с помощью новой версии HTML?
Хикси
Мы начали работу с попытки миграции ряда функций XForms в HTML 4, также мы быстро воспользовались возможностью кое-что исправить в HTML 4 — то, что было слишком неопределённым или расходилось с реальностью (то есть, включая ситуации, когда браузеры делали одно, а спецификация подразумевала совсем другое). Оказывается, что спецификация HTML 4 является настолько неопредёленной, что это стало для нас огромной работой, включающей определение целой модели синтаксического разбора HTML, в том числе и обработку ошибок (написание первого рабочего проекта заняло у меня большую часть месяца, и мы дорабатывали его около года, прежде чем он стал более или менее стабильным).
Кроме того мы попытались сделать некоторые действия более простыми. Мы упростили синтаксис — например, правила о том, что может быть заключено в кавычки, какие строки являются допустимыми для идентификаторов, сейчас стали более простыми. Мы создали функционал, для реализации которого сейчас люди используют JavaScript, так что теперь вы можете, например, назначить атрибут autofocus=""
, чтобы переместить фокус ввода на определённое поле формы при загрузке страницы вместо использования конструкции control.focus()
в JavaScript.
Брюс
Разрешен ли в HTML 5 тег soup
? Не способствует ли он плохой разметке?
Хикси
Нет, HTML 5 создает правила разметки во многом даже строже, чем HTML 4, и для авторов (правила проще, но строже, чем в HTML 4), и для разработчиков браузеров (прошли те дни, когда они могли действовать по-своему при обработке ошибок, теперь все браузеры должны действовать одинаково).
Будем надеяться, что мы сможем создать правила, в которых синтаксис будет более понятным и способствующим созданию более качественной разметки. Мы также сделали возможным создание более логичных валидаторов, на которые я возлагаю большие надежды.
Брюс
Опровергает ли включение JavaScript и DOM API в спецификацию HTML 5 идею о разделении поведения и структуры?
Хикси
Я не знал об идеи разделения поведения и структуры, должно быть я пропустил это! HTML5 занимает довольно жесткую позицию, отделяя стиль и внешний вид от структуры и семантики; больше нет тегов шрифтов. Отделение логики и поведения от структуры и семантики в HTML-документе, как правило, не так важно, насколько я могу сказать.
Основным преимуществом объединения HTML DOM API и элементов HTML в одной спецификации является то, что не будет необходимости определять поведение через "уловки". На практике браузеры интерпретируют элементы HTML в качестве узлов DOM, не различая их. Если мы разделим их в спецификациях, мы осуществим концептуальный разрыв. Спецификация DOM2 HTML, например, не может дать ответ на вопрос, что случится при изменении "на лету" атрибута type
в элементе input
со значения text
на checkbox
, также в спецификации HTML 4 не упоминается о возможности изменения атрибутов "на лету", так что в эру HTML 4 / DOM2 HTML существует достаточно белых пятен. В случае HTML 5, DOM и HTML объединены, так что мы можем строго определить правила и быть уверенными в том, что там нет пробелов.
Брюс
Почему нет встроенной поддержки микроформатов и RDFa в HTML 5?
Хикси
Микроформаты поддерживаются в HTML 5, также как это было реализовано и в HTML 4, потому что микроформаты используют встроенные возможности расширения HTML.
Мы рассматривали RDFa долго и упорно (на самом деле это горячий вопрос и сегодня), но в конце концов, в то время, как некоторым людям они действительно нравятся, я не думаю, что это обеспечит надлежащий баланс между мощью и простотой создания документов. Например, использование пространства имён и префиксов может привести создателей HTML-документов к путанице. Однако совсем недавно я предложил некий компромисс, который бы позволил взять часть лучших идей из RDFa и заложить их в HTML5, так что надеюсь, это удовлетворит основные потребности, которые заставили людей придумать RDFa. Посмотрим.
О браузерах
Брюс
Оказывают ли создатели браузеров слишком большое влияние на спецификацию?
Хикси
Правда в том, что производители браузеров имеют право вето на всё, что есть в спецификации, потому что если они не реализуют требования спецификации в своих браузерах, то она будет просто фикцией. Поэтому они имеют большое влияние — я не хочу писать "сказки", я хотел бы написать спецификацию, которая бы документировала реальное поведение браузеров.
Слишком ли велико влияние, я не знаю. Оказывает ли гравитация слишком большое влияние на земные объекты? Она просто существует.
Брюс
Один из председателей рабочей группы W3C — сотрудник Microsoft. Не даёте ли вы слишком много власти одному из производителей браузеров, или вы считаете, что это допустимо, учитывая то, что браузеры Microsoft по-прежнему доминируют, и поэтому их влияние на любую спецификацию необходимо?
Хикси
Лично я бы хотел, чтобы Microsoft принимала более активное участие в создании HTML5. Они послали очень мало отзывов на протяжении всех этих лет, гораздо меньше, чем другие производители браузеров. Даже спрашивая их мнения по поводу различных функций, которые они реализуют в своих браузерах, я редко получаю ответ. Это очень печально. Когда я посылаю им вопрос о том, как я могу помочь им, обычно я также не получаю ответа; в лучшем случая я получаю обещание, что они ответят, вот и всё.
Доступность
Брюс
В процессе разработки HTML 5 было много горячих дискуссий о доступности. Каким образом спецификация отвечает требованиям людей с ограниченными возможностями?
Хикси
Доступность для всех — требование, при котором каждый может использовать информацию в Интернете — является основным краеугольным камнем в HTML дизайне, также как безопасность, конфиденциальность и так далее. В общем, мы стараемся создавать новые функции так, чтобы они работали для всех, независимо от того, какой способ вы используете для получения информации из Интернета. Например, в HTML 5 мы добавили новый тип элемента управления в виде календаря. Он будет работать со скринридерами, если их поддерживают браузеры, — создателям HTML документов не надо будет делать для этого ничего особенного.
Брюс
Не слишком ли много внимания вы заостряете на предоставлении особой "помощи" людям с ограниченными возможностями?
Хикси
Вы слишком увлеклись чтением блога нашего домашнего тролля! ;-)
[Заметка Брюса: это относится к Mr. Last Week, таинственному автору блога под названием "Last Week in HTML 5", который пишет заметки о HTML 5 Working Group в очень забавной, часто сквернословящей манере.]
Люди с ограниченными возможностями так же важны для меня в работе над HTML5, как и все остальные.
Брюс
Вы говорили, что убеждали производителей программ чтения с экрана принять участие в работе над спецификацией. Они что-нибудь ответили?
Хикси
Кое-что. Они лишь сказали, что у них мало времени для работы над стандартами, что нас несколько огорчило. С того момента, однако, Apple приложила не мало усилий для создания программы чтения с экрана, встроенной в Mac OS X, и теперь мы получаем множество отзывов от Apple. Так что, по крайней мере, один производитель программ чтения с экрана принимает активное участие.
Брюс
HTML 5 и WAI-ARIA предназначены для одних и тех же целей только в разных ситуациях. Как их следует понимать разработчикам?
Хикси
Когда существует один стандартный путь что-либо сделать, использовать именно его — самое простое и надёжное решение. Так, например, если вам нужен checkbox
, использование элемента input
и его атрибута type
— простейшее решение — оно работает всегда, с JavaScript и без него, со скринридером и без, и так далее. ARIA полезна, если HTML не позволяет вам сделать то, что вы хотите, и вам приходится создавать своё собственное решение с вложенными div-ами, программировать собственные элементы управления и так далее.
Брюс
Можем ли мы ожидать того, что специальные ARIA-конструкции, которым не будет эквивалентов в HTML 5, такие как атрибуты типа "live region", будут разрешены в контексте HTML5?
Хикси
Да, наша цель — убедиться, что ARIA и HTML5 будут работать хорошо совместно. В настоящее время я жду завершения работы над спецификацией ARIA (однако, она пока ещё находится в статусе Last Call), и того момента, когда правила реализации ARIA будут чётче (насколько я понимаю, ещё не понятно, например, что делать, если ARIA указывает на то, что чек-бокс является радио-кнопкой). Как только всё это прояснится, я надеюсь, в HTML5 появится список соответствия критериям, когда могут быть использованы атрибуты ARIA и как их следует реализовывать в браузерах.
Зачем, когда, как и кто?
Брюс
Зачем нам, создателям HTML-документов, переходить на HTML 5? Что это нам даст?
Хикси
Сейчас ещё, вероятно, рано использовать HTML 5.
В долгосрочной перспективе, вы найдете ряд новых возможностей в HTML 5. У нас есть куча новых структурных элементов таких, как section
, article
, footer
и так далее. У нас есть новые элементы для встроенных медиа-данных, таких как видео и аудио. У нас есть новые элементы управления, например, календари, о которых я уже упоминал, а также поля ввода для URL, e-mail адресов, телефонных номеров и выбора цвета. Появится возможность автозаполнения значений в текстовых полях, а также проверка полей, при которой вы сможете указать обязательные поля формы. У нас есть контекстные меню, pushState(), так что вы сможете менять URL в Ajax-приложениях, и в режиме оффлайн кеш может быть использован так, что ваши пользователи вс` равно смогут использовать ваши приложения. Этот список можно продолжить.
Также есть преимущества, получаемые от использования валидатора HTML 5. HTML 5 по многим параметрам более точный язык, чем HTML 4, так что валидаторы смогут быть более полезны в поиске реальных ошибок. Элемент embed
теперь разрешён.
Брюс
А существуют ли преимущества для конечных пользователей?
Хикси
Более мощный HTML подразумевает более мощные веб-приложения. Точно так же как XMLHttpRequest привел к более интерактивным приложениям, HTML 5 приведёт к более развитым и соответственно к более надёжным приложениям. Я надеюсь на это!
Брюс
Каковы сроки? Когда мы сможем использовать HTML 5?
Хикси
В наших планах большей частью закончить спецификацию к октябрю 2009 года. Хотя многое зависит от производителей браузеров. Я не знаю, когда всё это будет осуществлено настолько масштабно, чтобы авторы могли использовать новый язык разметки повсеместно. Некоторые элементы, такие как canvas
и video
, реализуются в большинстве браузеров уже сейчас. Реализация других элементов займёт больше времени.
Брюс
Что делают читатели WaSP, чтобы принять участие в процессах разработки спецификации?
Хикси
Существует множество способов принять участие. Чего нам не хватало всё это время, так это технического обзора текста спецификации, который мог бы обнаружить места, где я напортачил, где спецификация определяет что-либо слишком сложно для использования в HTML-документах, где спецификация противоречит самой себе, где есть опечатки, орфографические ошибки, грамматические ошибки, ошибки в примерах.
Недавно я разместил пост в блоге, описав то, как люди могут оставить отзыв на спецификацию. Вы можете присоединиться к W3C HTML Working Group или WHATWG. Есть также много других вещей, которые могут сделать люди — создавать демонстрационные примеры, писать руководства, редактировать другие связанные спецификации, писать статьи в блогах, разбирая в них части спецификации, писать тестовые примеры… Любой, кто хочет помочь, но не знает, как это сделать, может написать мне на почту ian@hixie.ch.
Брюс
Появится ли когда-нибудь HTML 6, или это мечта, которая выходит за рамки обсуждения?
Хикси
Я уверен, что будет HTML 6, и 7, и 8, а может и другие версии, пока кто-нибудь не предложит что-либо настолько радикально лучшее, что Интернет перестанет существовать в том виде, в котором мы его знаем.
Я предполагаю, что работа над HTML 6 начнётся даже до того, как HTML 5 будет полностью завершён. Доработка HTML 5 будет долгой и утомительной, включающей в себя написание огромного тестового комплекса. HTML 4 никогда не имел серьёзного тестового набора (он был слишком нечёток как спецификация для надлежащего тестирования), так что нам предстоит начать с нуля в случае с HTML 5. Команда HTML 6 по крайней мере будет иметь возможность работать на основе того, что мы сделаем в HTML 5, я им даже завидую!
На самом деле если бы от меня зависело, то после HTML 5 я бы вероятно перенес HTML на инкрементную модель развития. Когда у нас есть базовая спецификация, которая чётко определена и хорошо протестирована, вместо того, чтобы выпускать замороженные версии каждые несколько лет; я бы предпочел модель, в которой мы можем постепенно развивать язык, скажем "HTML Current" или нечто подобное, не беспокоясь об изменении её версий. В некоторой степени именно это мы и делаем с HTML 5, но я думаю, что его формализация действительно помогла бы.
Создание версий спецификации не имеет смысла, когда у вас есть множество реализаций, которые развиваются параллельно. Нет ни одного браузера, собирающегося в точности реализовывать модель HTML 5, все реализации будут подмножеством или надмножеством спецификации. Так зачем же проблемы контроля версий спецификации?
Это очень необычная идея в мире стандартов, так что я не ожидаю её воплощения. Но я считаю, что это лучший способ для движения вперёд.
Брюс
Ты бы хотел стать редактором HTML 6?
Хикси
Слишком рано об этом говорить! Работа над HTML 5 доставляет мне массу удовольствий, хотя это довольно трудное занятие, и приходится иметь дело со всеми видами вопросов от глубоко технических до сугубо политических. Хотя я, возможно, изменю своё мнение, когда мы закончим работу над HTML 5.
Брюс
Есть ли, по твоему мнению, полезная функция, которая не попала в HTML 5, но которую ты бы внёс в HTML 6?
Хикси
Модальное диалоговое окно — вид пользовательского интерфейса, когда компьютер задаёт вам вопрос и не позволяет совершить какие-либо действия до тех пор, пока вы на него не ответите. Например, окно, которое всплывает, когда вы выбираете команду "Сохранить как…" обычно является модальным.
Сейчас люди импровизируют с тегами div
, сложными стилями и скриптами. Но это должно стать настолько изящным, чтобы просто сказать "сделать эту секцию модальным диалогом". Подобно showModalDialog()
, но с помощью элементов страницы, а не открытия нового окна с новой страницей.
Я бы добавил модальные окна в HTML 5, но сейчас и так уже много новых функций, которые должны быть реализованы в браузерах.
Брюс
Последний вопрос. Это правда, что ты и Mr. Last Week подобны Эдварду Нортону и Бреду Питту в "Бойцовском клубе"?
Хикси
О, нет. Наш домашний тролль — явление, обязанное только самому себе.
Брюс
Благодарю тебя за внимание.
Оригинал интервью опубликован на сайте The Web Standards Project.
Комментарии
Спасибо вам за то, что вы есть! :-)
Всё это конечно замечательно... Но как и всегда я чувствую что Microsoft будет оттягивать переход на более высокий уровень.
Щас очень много компьютеров на которых до сих пор стоит IE 6,7 версии. Что я уверен и будет продолжаться достаточно долго. Другие браузеры как Opera, Mozila, Google Chrome(успевший завоевать сердца пользователей) стремятся подтягиваться и у них это очень успешно получается. Мне, как веб-программисту очень тяжко видеть когда ты пишешь все правильно, а потом тебе приходится что-то доделывать, дописывать, дотачивать для браузеров серии IE.
Так хочется попробовать в полную силу поюзать HTML5.
А так статья отличная... Что-то нового узнал что-то уже знал.
Всем приходится мирится с существованием IE, особенно верстальщикам и JavaScript-разработчикам. Пока не выйдет IE9 и не пройдет ещё какое-то время (скорее два-три года, а может и больше), придется подстраиваться под старые версии этого браузера, и под 6-версию в том числе, хотя и не так часто как раньше - все больше сайтов отказываются поддерживать IE6.
Да, многие разработчики с большой надеждой ждут нового стандарта HTML, потому что за десять лет существования стандарта HTML 4 и работы с ним накопилось немало желаний и потребностей в упрощении, усовершенствовании и развитии многих его функций.