Учи и учись

РегистрируйсяСоздавай курсы для других и получай Учись у других за




Пожертвовать на развитие сайта. Пожертвовать

Отличия HTML5 от HTML4

Главная » Отличия HTML5 от HTML4
В этом документе находится вольный перевод Рабочего Черновика W3C от 25 Мая 2011, принадлежит сайту ramech.net. Все логотипы, названия, торговые марки и материалы приведенные ниже принадлежат их владельцам.
Копирование перевода или части перевода разрешено с обязательной активной ссылкой на источник Отличия HTML5 от HTML4

Аннотация

HTML5 это пятый серьезный пересмотр основ языка всемирной паутины, HTML. "Отличия HTML5 от HTML4" описывает различия между HTML4 и HTML5 и предоставляет некоторые разумные объяснения изменениям. Этот документ не может предоставить точную информацию, так как HTML5 еще развивается. Если вы сомневаетесь, всегда сами проверяйте спецификации HTML5. [HTML5]

Статус этого документа

Этот раздел описывает статус этого документа во время его публикации. Другие документы могут заменить этот документ. Список текущих публикаций W3C и последняя поправка этого документа могут быть найдены по ссылке в W3C technical reports index at http://www.w3.org/TR/.

Это версия документа от 25 Мая 2011 W3C Working Draft, который сделан Рабочей Группой - HTML Working Group, которые входят в официальную команду HTML Activity. . Рабочая Группа хочет публиковать этот документ в качестве заметок Working Group Note в качестве дополнения к спецификациям HTML5 . Свои комментарии пишите на W3C Bugzilla. Или, отправляйте комментарии public-html-comments@w3.org (subscribe, archives) and arrangements will be made to transpose the comments to the bug database.

Публикация Рабочего Черновика не означает одобрение со стороны W3C. Этот документ может обновляться, заменяться или устареть в любое время. Неуместно ссылаться на этот документ, как и на любую другую незаконченную работу.

Этот документ был создан группой, работающей по патенту от 5 Февраля 2004 года 5 February 2004 W3C Patent Policy. W3C ведет общедоступный список любых раскрытий патентов сделанных в связи с результатами деятельности группы; на той странице также представлена инструкция по раскрытию патента. Знающие и разюирающиеся в патенте могут оставлть Существенную(-ые) Претензию(-ии) раскрывая информацию в соответсвии с разделом 6 W3C Patent Policy.

Содержание

1. Вступление

HTML постоянно развивается со времени его первого появления в Интернете в начале 90х. Некоторые функции были введены в спецификации; другие были введены в релизах ПО. В некоторых отношениях, реализация и практика авторов переплелись друг с другом, а также со спецификациями и стандартами, но в то же время, они продолжают расходиться.

HTML4 рекомендуется W3C с 1997 года. Хотя он продолжает служить в качестве приблизительного ориентира для многих основных особенностей HTML, он не дает достаточно информации, чтобы построить реализации, которые взаимодействуют друг с другом и, что более важно, с критической массой развернутого содержания. То же самое касается и XHTML1, который определяет XML сериализацию для HTML4, и DOM Level 2 HTML, который определяет JavaScript API-интерфейсы для HTML и XHTML. HTML5 заменит эти документы. [DOM2HTML] [HTML4] [XHTML1]

Проектная версия HTML5 отражает все усилия, предпринятые с 2004 года, по изучению современных реализаций HTML и улучшенному содержанию. Проект:

  1. Является единым языком и называется HTML5, который может быть написан в HTML синтаксисе и в XML синтаксисе.
  2. Представляет детализированные модели обработки, что способствует совместимости реализаций.
  3. Улучшенная разметка документов.
  4. Представляет разметку и API-интерфейс для появляющихся идиом, таких как Веб-приложения.

1.1. Открытые вопросы

HTML5 все еще является черновиком. Содержание HTML5, также как и содержание текущего документа, зависящего от HTML5, до сих пор обсуждаются в Рабочей Группе HTML и рассылках WHATWG. Открытые вопросы связаны с проектом HTML5.

1.2. Обратная Совместимость

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

Агенты пользователей, однако, всегда будет поддерживать эти устаревшие элементы и атрибуты, и именно поэтому спецификации HTML5 четко разделяют требования для авторов и пользовательских агентов. Например, это означает, что авторы не могут использовать isindex или элемент plaintext, но агенты пользователей должны поддерживать их, чтобы они были совместимы с тем, как эти элементы должны вести себя по совместимости с развернутым содержанием.

Так как HTML5 имеет отдельные требования соответствия для авторов и пользовательских агентов, больше нет необходимости для маркировки функций как "устаревшие".

1.3. Модель развития

Спецификация HTML5 не будет считаться завершенной до тех пор, пока не будут полностью закончены два отдельных внедрения этой спецификации. Будет проведено несколько тестов, чтобы оценить полноту реализации. Такой подход отличается от предыдущих версий HTML, где окончательная спецификация, как правило, утверждалась комитетом раньше, чем на самом деле была внедрена. Цель этого изменения заключается в предоставлении спецификации только тогда, когда ее уже можно будет внедрить, а также чтобы она была полезна авторам, как только будет закончена.

2. Синтаксис

HTML5 определяется как синтаксис HTML, совместимый с документами HTML4 и XHTML1, опубликованными в Интернете, но не совместимый с более эзотерическими функциями SGML из HTML4, такими как инструкции по обработке (processing instructions) и сокращение разметки (shorthand markup), так как они не поддерживаются большинством браузеров. Документы, использующие синтаксис HTML, почти всегда подаются с медиа-типом text/html.

HTML5 также определяет детальные правила парсинга (в том числе и "обработку ошибок") для этого синтаксиса, которые в значительной степени совместимы с современными реализациями. Агенты пользователей должны использовать эти правила для ресурсов, у которых есть медиа-тип text/html. Вот пример документа, который соответствует синтаксису HTML:

<!doctype html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Пример документа</title>
  </head>
  <body>
    <p>Пример абзаца</p>
  </body>
</html>

HTML5 также определяет медиа-тип text/html-sandboxed для документов, использующих синтаксис HTML. Это можно использовать при хранении недоверенного контента.

Другой синтаксис, который можно использовать в HTML5 это XML. Этот синтаксис совместим с документами и внедрениями XHTML1. Документы, использующие этот синтаксис должны иметь XML медиа тип и все элементы нужно помещать в пространство имен http://www.w3.org/1999/xhtml и следовать правилам, установленным спецификациями XML. [XML]

Ниже представлен пример документа, который использует синтаксис XML в HTML5. Обратите внимание, что документы XML должны иметь XML тип медиа, такой как application/xhtml+xml или application/xml.

<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Пример документа</title>
  </head>
  <body>
    <p>Пример абзаца</p>
  </body>
</html>

2.1. Кодировка символов

Для HTML синтаксиса HTML5 у авторов есть 3 способа указать кодировку символов:

  • На транспортном уровне. Используя, к примеру, заголовок HTTP Content-Type.
  • Использование символа Unicode Byte Order Mark (BOM) в начале файла. Этот символ указывает какая кодировка будет использоваться во всем документе.
  • Используя элемент meta с атрибутом charset, который указывает кодировку в первых 1024 байтах документа. Например, <meta charset="UTF-8"> можно использовать, чтобы указать кодировку UTF-8. Эта строка заменяет <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> хотя по синтаксису она все еще разрешена.

Для XML синтаксиса при указании кодировки авторам нужно следовать правилам, указанным в спецификации XML.

2.2. DOCTYPE

Для HTML синтаксиса HTML5 требуется указать DOCTYPE, чтобы убедиться, что браузер рендерит страницу по установленным стандартам. У DOCTYPE нет другого назначения; для XML он является необязательным. Документы с XML типом медиа всегда обрабатываются в стандартном режиме. [DOCTYPE]

Указывать DOCTYPE следует так: <!DOCTYPE html> - этот способ чувствителен к регистру в синтаксисе HTML. DOCTYPE в более ранних версиях HTML были длиннее, потому что язык HTML был основан на SGML и поэтому ему требовалась ссылка на DTD. HTML5 больше не использует подобное и DOCTYPE нужен только чтобы включить стандартный режим для документов, написанных с применением синтаксиса HTML. Браузеры уже делают так, используя <!DOCTYPE html>.

2.3. MathML и SVG

HTML синтаксис HTML5 позволяет использовать элементы MathML и SVG в документе. Например, очень простой документ, использующий минимальный синтаксис, может выглядеть так:

<!doctype html>
<title>SVG в text/html</title>
<p>
 Зеленый круг:
 <svg> <circle r="50" cx="50" cy="50" fill="green"/> </svg>
</p>

Возможны также и более сложные комбинации. Например, используя элемент SVG foreignObject вы можете разместить MathML, HTML, или оба внутри фрагмента SVG, который сам находится в HTML.

2.4. Разное

Есть еще несколько изменений в синтаксисе, о которых стоит упомянуть:

  • В HTML теперь есть поддержка IRI, хотя они могут быть полностью использованы только если кодировка документа - UTF-8 или UTF-16.
  • Атрибут lang занимает пустую строку в дополнение к действующему идентификатору языка, в точности как делает xml:lang в XML.

3. Язык

Эта секция разделена на несколько подсекций, чтобы более детально показать различия между HTML4 и HTML5.

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

Были введены следующие элементы для улучшенной структуры:

  • section представляет собой общий документ или приложение в разделе. Его можно использовать вместе с h1, h2, h3, h4, h5 и h6 для указания структуры документа.

  • article представляет независимую часть содержимого документа, например как запись в блоге или статья в газете.

  • aside представляет часть содержания, которая лишь частично связана с остальным содержимым страницы.

  • hgroup представляет заголовок раздела.

  • header предоставляет собой группу из вступительных или навигационных средств.

  • footer представляет подвал раздела и может содержать информацию об авторе, копирайт, итп.

  • nav представляет раздел документа, предназначенный для навигации.

  • figure представляет часть автономного содержимого, на которую, как правило, ссылаются как единую часть основного документа.

    <figure>
     <video src="example.webm" controls></video>
     <figcaption>Пример</figcaption>
    </figure>

    figcaption можно использовать как надпись (это необязательно).

Есть еще несколько новых элементов:

  • video иaudio для мультимедийного содержимого. Оба предоставляют API поэтому авторы приложений могут написать собственный интерфейс пользователя, но всегда есть способ запустить пользовательский интерфейс, предоставляемый браузером. Элементы source используются вместе с этими элементами, если доступно несколько потоков различного типа.

  • track provides text tracks for the video element.

  • embed используется для содержимого плагина.

  • mark представляет область текста в едином документе, которая была выделена или отмечена для справочных целей, так как актуальна и в другом контексте.

  • progress представляет завершение задачи, такой как скачивание или выполнение ряда последовательных операций.

  • meter представляет измерения, например использование дискового пространства.

  • time представляет дату и/или время.

  • ruby, rt and rp позволяют помечать аннотацию ruby.

  • bdi представляет фрагмент текста, который должен быть изолирован с целью двустороннего форматирования текста.

  • wbr представляет возможность написания текста с новой строки.

  • canvas используется для преобразования динамической растровой графики «на лету», как например в играх или графиках.

  • command представляет команды, которые может вызывать пользователь.

  • details представляет дополнительную информацию или контроллеры, которые пользователь может получить по запросу. Элемент summary представляет его краткое содержание, легенду или подпись.

  • datalist вместе с новым атрибутом list для input могут быть использованы для создания выпадающих списков:

    <input list="browsers">
    <datalist id="browsers">
     <option value="Safari">
     <option value="Internet Explorer">
     <option value="Opera">
     <option value="Firefox">
    </datalist>
  • keygen представляет контроллер для генерации ключевой пары.

  • output представляет некоторый тип выводы, как например вывод информации из подсчета, сделанного посредством скрипта.

Атрибут type элемента input теперь имеет следующие новые значения:

Идея относительно этих новых типов состоит в том, что пользовательский агент может обеспечить интерфейс для таких объектов как выбор даты в календаре или интеграция с адресной книгой пользователя, и отправить серверу данные в определенном формате. Это дает определенные преимущества пользователям, так как вся веденная информация проверяется перед отправкой на сервер. Это означает, что требуется гораздо меньше времени для ожидания ответа.

3.2. Новые атрибуты

HTML 5 вводит несколько новых атрибутов для элементов, которые уже входили в HTML 4:

  • Элементы a и area получили новый атрибут media для согласованности с элементом link.

  • У элемента area, для согласованности с элементами a и link теперь тоже есть атрибуты hreflang, type и rel.

  • У элемента base теперь может иметься также атрибут target , в основном для согласованности с элементом a. (Это уже широко поддерживается).

  • The meta element has a charset attribute now as this was already widely supported and provides a nice way to specify the character encoding for the document.

  • Новый атрибут autofocus может быть указан в элементах input (кроме тех случаев, когда атрибут type является hidden), select, textarea и button. Он представляет декларативный способ сосредоточиться на контроле формы во время загрузки страницы. Использование этой функции должно улучшить впечатление пользователей от пребывания на странице, так как ее можно будет отключить, если, к примеру, она не нравится пользователю.

  • Новый атрибут placeholder может быть указан в элементах input и textarea. Тут указываются подсказки, которые помогут пользователям при вводе информации.

    <input type=email placeholder="a@b.com">
  • Новый атрибут form для input, output, select, textarea, button, label, object and fieldset позволяет привязывать контроллеры к форме. Т.е. эти элементы теперь можно разместить где угодно на странице, не только в элемент form элементе, and still be associated with a form.

    <label>Email:
     <input type=email form=foo name=email>
    </label>
    <form id=foo></form>
  • Новый атрибут required относится к input (кроме случаев, когда атрибут type является hidden, image или имеет некоторый тип кнопки, например submit), select и textarea. Он указывает, что пользователю необходимо ввести значение, прежде чем он сможет отправить форму. For select, the first option element has to be a placeholder with an empty value.

    <label>Color: <select name=color required>
     <option value="">Choose one
     <option>Red
     <option>Green
     <option>Blue
    </select></label>
  • Элемент fieldset element now allows the disabled attribute which disables all descendant controls when specified, and the name attribute which can be used for script access.

  • У элемента input появилось несколько новых атрибутов, чтобы указывать ограничения: autocomplete, min, max, multiple, pattern и step. Как было упомянуто ранее, у него также появился новый атрибут list который можно использовать вместе с элементом datalist. It also now has the width and height attributes to specify the dimensions of the image when using type=image.

  • Элементы input и textarea получили новый атрибут под названием dirname который придает направленность контроллеру, как установлено пользователем.

  • У элемента textarea также появились два новых атрибута, maxlength и wrap which control max input length and submitted line wrapping behavior, respectively.

  • У элемента form появился атрибут novalidate который можно использовать для отключения проверки формы перед отправкой (т.е. форму можно будет отправить в любом случае).

  • У элементов input и button появились новые атрибуты formaction, formenctype, formmethod, formnovalidate, и formtarget. Если присутствуют, то они отменяют атрибуты action, enctype, method, novalidate, иtarget в элементе form .

  • Элемент menu теперь имеет два новых атрибута: type и label. Они позволяют трансформировать элемент в меню, как в типичном пользовательском интерфейсе, также как и предоставление контекстных меню вместе с глобальным атрибутом contextmenu .

  • У элемента style есть новый атрибут scoped which can be used to enable scoped style sheets. Правила стиля внутри такого элемента style применяются только к текущей ветке.

  • У элемента script появился новый атрибут, async который влияет на загрузку и выполнение скрипта.

  • Элемент html получил новый атрибут под названием manifest который указывает на manifest кэша, используемый вместе с API в для оффлайновых Веб-приложений.

  • У элемента link появился новый атрибут под названием sizes. Его можно использовать вместе с отношением icon (устанавливается через атрибут rel можно использовать к примеру для фавиконов) для указания размера иконки. Таким образом, у иконок могут быть определенные размеры.

  • У элемента ol появился новый атрибут под названием reversed. Если он присутствует, то указывает что список организован в убывающем порядке.

  • Элемент iframe имеет три новых атрибута под названием sandbox, seamless, and srcdoc которые позволяют использовать такой контент как, к примеру, комментарии в блогах.

Некоторые атрибуты из HTML4 теперь можно применить ко всем элементам. Они называются «глобальные атрибуты»: accesskey, class, dir, id, lang, style, tabindex and title. Additionally, XHTML 1.0 only allowed xml:space on some elements, which is now allowed on all elements in XHTML documents.

Также появилось несколько новых глобальных атрибутов:

  • Атрибут contenteditable указывает, что элемент является редактируемой областью. Пользователь может изменять содержимое элемента и изменять разметку.
  • Атрибут contextmenu может быть использован для указания контекстного меню, предоставленного автором.
  • data-* коллекция атрибутов, указанных автором. Авторы могут определять любой атрибут, если только проставят вначале data- во избежание пересечений с будущими версиями HTML. Единственное требование для таких атрибутов – они не используются для расширения агента пользователя.
  • Атрибуты draggable и dropzone могут использоваться вместе с новым drag & drop API.
  • Атрибут hidden указывает, что элемент еще, или уже не уместный.
  • Атрибуты role и aria-* могут быть использованы в качестве помощи вспомогательным технологиям.
  • Атрибут spellcheck позволяет давать подсказки о том, может ли содержимое быть проверено на наличие ошибок или нет.

HTML5 обрабатывает все события также как и атрибуты в HTML4, принимает форму onevent-name, глобальные атрибуты и добавлет несколько новых атрибутов обработчиков событий для новых событий, которые он определяет. К примеру, событие play которое используется API для медиа-элементов (video и audio).

3.3. Измененные элементы

Эти элементы немного изменили свое значение в HTML5, чтобы лучше отражать то, как они используются в Интернете или чтобы быть более полезными:

  • Элемент a без атрибута href теперь представляет собой место, куда могла быть в противном случае помещена ссылка. Он также может содержать поточное содержимое, а не ограничиваться содержанием фраз.

  • Элемент address в данный момент ограничен новой концепцией разделения на секции.

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

  • Элемент cite теперь самостоятельно представляет заголовок работы (например, книга, эссе, поэма, песня, скрипт, фильм, изображение, итп.). В частности, пример в HTML4, где этот элемент используется для выделения имени человека – такой способ больше не считается правильным.

  • Элемент dl element now represents an association list of name-value groups, and is no longer said to be appropriate for dialogue.

  • The head element no longer allows the object element as child.

  • Элемент hr теперь представляет тематическую разбивку по абзацам.

  • Элемент i теперь представляет область текста, означающую отличающийся термин или настроение и др., к примеру, технический термин, фраза на другом языке, название корабля. Текст будет выделен курсивом. Использование может очень сильно различаться в зависимости от языка.

  • Для элемента label браузер больше не должен перемещать фокус с названия на сам контроллер, если такое поведение не является стандартным для текущей платформы пользователя.

  • Элемент menu был переопределен, чтобы быть полезным для панелей инструментов и контекстных меню.

  • Элемент s теперь представляет содержимое, которое больше не является на 100% верным или является совсем неверным.

  • Элемент small теперь представляет маленький шрифт (например, для комментариев).

  • Элемент strong теперь означает важность, а не сильный акцент на чем-либо.

  • The u element now represents a span of text with an unarticulated, though explicitly rendered, non-textual annotation, such as labeling the text as being a proper name in Chinese text (a Chinese proper name mark), or labeling the text as being misspelt.

3.4. Измененные атрибуты

The value attribute for the li element is no longer deprecated as it is not presentational. The same goes for the start attribute of the ol element.

The target attribute for the a and area elements is no longer deprecated, as it is useful in Web applications, e.g. in conjunction with iframe.

Атрибут type в script и style больше не требуется, если языком скрипта является ECMAScript и языком стиля - CSS соответственно.

The border attribute on table only allows the values "1" and the empty string.

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

  • Атрибут border в img. Если он присутствует, требуется чтобы он имел значение "0". Вместо этого лучше использовать CSS.

  • Атрибут language в script. Если он присутствует, требуется чтобы он имел значение "JavaScript" " (чувствительно к регистру) и он не может конфликтовать с атрибутом type . Авторы могут просто опустить его, так как это не очень полезная функция.

  • Атрибут name в a. Вместо этого авторы могут использовать атрибут id.

  • Атрибут summary в table. В черновой версии HTML5 указано несколько решений.

  • The width and height attributes on img and other elements are no longer allowed to contain percentages.

3.5. Отмененные элементы

Элементы в этом разделе не для использования авторами. Браузеры все равно должны будут их поддерживать и различные разделы HTML5 указывают как. Например, устаревший элемент isindex обрабатывается секцией парсера.

Следующих элементов нет в HTML5, так как они оказывают только визуальный эффект. Их функции лучше всего можно реализовать посредством CSS:

  • basefont
  • big
  • center
  • font
  • strike
  • tt

Следующих элементов нет в HTML5, потому что их использование негативно сказалось на доступности и удобстве:

  • frame
  • frameset
  • noframes

The following elements are not included because they have not been used often, created confusion, or their function can be handled by other elements:

  • acronym не включен, так как он создавал путаницу. Используйте abbr для аббревиатур.
  • applet устарел в пользу object.
  • Использованиеisindex может быть заменено использованием контроллеров форм.
  • dir устарел в пользу ul.

И, наконец, элемент noscript является соответствующим только в синтаксисе HTML. Он не включен в синтаксис XML и его использование основывается на парсере HTML.

3.6. Отмененные атрибуты

Некоторые атрибуты из HTML4 не разрешены в HTML5. Эта спецификация указывает как браузеры должны обрабатывать их в документах, но авторы не должны их использовать – атрибуты не пройдут валидацию.

HTML5 дает совет – что вы можете использовать вместо них:

  • rev и charset для атрибутов link и a.
  • shape и coords для a.
  • longdesc для img и iframe.
  • target для link.
  • nohref для area.
  • profile для head.
  • version для html.
  • name для img (вместо этого используйте id).
  • scheme для meta.
  • archive, classid, codebase, codetype, declare и standby для object.
  • valuetype и type для param.
  • axis и abbr для td и th.
  • scope для td.
  • summary для table.

Дополнительно, в HTML5 нет ни одного презентационного атрибута, которые были в HTML4 , так как такой функционал лучше обрабатывается CSS:

  • align для caption, iframe, img, input, object, legend, table, hr, div, h1, h2, h3, h4, h5, h6, p, col, colgroup, tbody, td, tfoot, th, thead и tr.
  • alink, link, text и vlink для body.
  • background для body.
  • bgcolor для table, tr, td, th и body.
  • border для object.
  • cellpadding и cellspacing для table.
  • char и charoff для col, colgroup, tbody, td, tfoot, th, thead и tr.
  • clear для br.
  • compact для dl, menu, ol и ul.
  • frame для table.
  • frameborder для iframe.
  • height для td и th.
  • hspace и vspace для img и object.
  • marginheight и marginwidth для iframe.
  • noshade для hr.
  • nowrap для td и th.
  • rules для table.
  • scrolling для iframe.
  • size для hr.
  • type для li, ol и ul.
  • valign для col, colgroup, tbody, td, tfoot, th, thead и tr.
  • width для hr, table, td, th, col, colgroup и pre.

4. APIs

В HTML5 представлено несколько API, который помогают создавать Веб-приложения. Они могут быть использованы вместе с новыми элементами представленными для приложений:

  • API для проигрывания видео и аудио, который можно использовать с новыми элементами video и audio.
  • API, который позволяет работать с автономными Веб-приложениями.
  • API, который позволяет Веб-приложениями регистрироваться на определенные протоколы или типы медиа.
  • Редактирование API вместе с новым глобальным атрибутом contenteditable .
  • Drag & drop API вместе с новым атрибутом draggable .
  • API , который предоставляет историю и позволяет добавлять туда страницы, во избежание неправильной работы кнопки «Назад».

4.1. Расширения для HTMLDocument

HTML5 расширил интерфейс HTMLDocument с DOM Level 2 HTML несколькими способами. В настоящее время интерфейс реализован на всех объектах, использующих интерфейс Document поэтому он остается значимым и в контексте соединенного документа. У него также есть несколько примечательных новых составляющих:

  • getElementsByClassName() - чтобы выбирать элементы по названию их класса. То, как определен этот метод, позволит ему работать с любым содержимым, имеющим атрибуты class и объект Document к примеру, SVG и MathML.

  • innerHTML - в качестве легкого способа парсить и сериализировать документ HTML или XML. Этот атрибут ранее был доступен только в HTMLElement в браузерах и не являлся частью какого-либо стандарта.

  • activeElement и hasFocus чтобы определить какой элемент является активным в данный момент и активен ли Document соответственно.

4.2. Расширения для HTMLElement

Интерфейс HTMLElement также получил несколько расширений в HTML5:

  • getElementsByClassName() который является более специализированной версией найденного на HTMLDocument.

  • innerHTML как используется сегодня во многих браузерах. Также определено как работать в контексте XML (когда он используется в XML документе).

  • classList является удобным доступом к className. Объект, который он возвращает, предоставляет методы (contains(), add(), remove(), и toggle()) ()) для манипуляции классами элементов. Элементы a, area и link имеют схожий атрибут relList который предоставляет такую же функциональность для атрибута rel .

5. Лог изменений HTML5

В данном разделе представлен лог изменений между публикациями черновых версий HTML5. Обоснования для изменений могут быть найдены в архивах рассылок public-html@w3.org и whatwg@whatwg.org , а также в серии постов в блогах WHATWG Weekly . Более детальные обоснования собраны на WHATWG страничке вики - Rationale. Многие редакторские и мелкие технические изменения не включены в этот лог. Т.е. разработчикам рекомендуется следовать основным спецификациям и следить за всеми обновлениями.

Изменения в логе расположены в грубом хронологическом порядке для облегчения редактирования этого документа.

5.1. Изменения после 5 Апреля 2011

  • Support for the javascript: scheme in img, object, CSS, etc, has been dropped.
  • The toBlob() method has been added to canvas.
  • The drawFocusRing() method on the canvas 2d context has been split into two methods, drawSystemFocusRing() and drawCustomFocusRing().
  • The values attribute on PropertyNodeList has been replaced with a getValues() method.
  • The select event has been specified.
  • The selectDirection IDL attribute has been added to input and textarea.
  • The :enabled and :disabled pseudo-classes now match fieldset, and the :indeterminate pseudo-class can now match progress.
  • The getKind() method has been added to TrackList.
  • The MediaController API and the mediagroup attribute have been added to synchronize playback of media elements.
  • Some ARIA defaults have changed, and it is now invalid to specify ARIA attributes that match the defaults.
  • The getName() method on TrackList was renamed to getLabel().
  • The border attribute on table is now conforming.
  • The u element is now conforming.
  • The summary attribute on table is now non-conforming.
  • The audio attribute on video was changed to a boolean muted attribute.
  • The Content-Language meta pragma is now non-conforming.

5.2. Changes from 13 January 2011 to 5 April 2011

  • The pushState and replaceState features have been changed based on implementation feedback in Firefox, and history.state has been introduced.
  • The tracks IDL attribute on media elements has been renamed to textTracks.
  • Event handler content attributes now support ECMAScript strict mode.
  • The forminput and formchange events, and the dispatchFormInput() and dispatchFormChange() methods have been dropped.
  • The rel keywords archives, up, last, index, first and related synonyms have been dropped.
  • Removing a media element from the DOM and inserting it again in the same script now doesn't pause the media element.
  • The video element's letterboxing rules are now specified in terms of CSS 'object-fit'.
  • Cross-origin fonts now don't leak information about the font when drawn on a canvas.
  • The character encoding declaration is now allowed to be within the first 1024 bytes instead of the first 512 bytes.
  • The onerror event handler on window is now invoked for compile-time script errors as well as runtime errors.
  • Script-inserted script elements now have async default to true, which can be set to false to make the scripts execute in insertion order.
  • The atob() and btoa() methods have been specified.
  • The suggested file extension for application cache manifest files has been changed from .manifest to .appcache.
  • The action and formaction attributes are no longer allowed to have the empty string as value.

5.3. CИзменения после 19 Октября 2010 to 13 January 2011

  • Была усовершенствована модель drag and drop.
  • Был добавлен новый глобальный атрибут dropzone.
  • Был добавлен новый элемент bdi для оказания помощи по содержимому, созданному пользователями, которое может иметь подтекст bidi (биди).
  • Атрибут dir получил новое значение "auto" .
  • Атрибут dirname был добавлен к элементам input . Если пользователем указана направленность, то она будет также отправлена и на сервер.
  • A new track element and associated TextTrack API were added for video text tracks.

API getSelection() был перемещен в отдельный документ DOM Range . Также UndoManager был убран из W3C копии HTML5, так как он еще не готов.

5.4. Изменения с 24 Июня 2010 до 19 Октября 2010

  • Огромное количество изменений алгоритма парсинга HTML, основываясь на отзывах о внедрении.
  • Атрибут hidden теперь работает с элементами, связанными с таблицами.
  • Метод canvas getContext() теперь определен и сможет лучше обрабатывать несколько контекстов.
  • IDL атрибут медиа элемента startTime был переименован в initialTime и был добавлен startOffsetTime.
  • Отношение ссылок prefetch теперь может использоваться на элементах a .
  • Атрибут datetime в ins и del больше не требует указания времени.
  • Использование PUT и DELETE в качестве методов HTTP для элемента form больше не поддерживается.
  • Элемент s больше не считается устаревшим.
  • У элемента video появился новый атрибут audio .

Как и раньше, также было сделано множество мелких изменений и доработок.

5.3. Изменения с 4 Марта 2010 до 24 Июня 2010

  • Атрибут ping был убран из W3C версии HTML5. .
  • Элемент title является необязательным для документов iframe srcdoc и других сценариев, где уже есть заголовок. Точно так же обстоит ситуация и с email.
  • keywords теперь является стандартным названием метаданных для элемента meta.
  • Значение allow-top-navigation было добавлено для атрибута sandbox на элементе iframe.
  • Был добавлен элемент wbr.
  • Ключевое слово alternate для атрибута rel в элементе link теперь можно использовать для указания feeds, даже если feed не является альтернативой для документа.
  • Отображение HTML в Atom было убрано из W3C версии HTML5.

Кроме того, в документ были внесены незначительные изменения, уточнения и поправки.

5.4. Изменения с 25 Августа 2009 до 4 Марта 2010

  • Был убран элемент dialog. Раздел о том, как эффективно помечать разговоры, успешно его заменил.
  • Был представлен document.headчтобы предоставить удобный доступ к элементуhead скрипта.
  • Был убран тип ссылки feed . alternate теперь используется вместо него – с отдельными типами медиа.
  • createHTMLDocument() был представлен в качестве API, чтобы позволить быстро создавать HTML документы.
  • Оба элемента meter и progress больше не обрабатывают свое содержимое «магическим» образом, потому что эта функция не может работать должным образом (в других странах).
  • Элементы meterи progress, также как и элемент output теперь могут быть помечены, используя элемент label .
  • Был представлен новый тип медиа text/html-sandboxed, чтобы разрешить размещение потенциально опасного содержимого без причинения вреда.
  • Был представлен атрибут srcdoc для элемента iframeчтобы разрешить вставлять код потенциально опасного содержимого. Ожидается, что он будет использоваться вместе с атрибутами sandbox и seamless .
  • Элемент figureтеперь использует новый элемент figcaption вместо legend потому что люди хотят использовать HTML5 задолго до Рекомендации W3C.
  • Элемент details теперь использует новый элемент summary абсолютно по той же причине.
  • Атрибут autobuffer на медиа-элементах был переименован в preload.

Было также решено множество мелких вопросов. Список, приведенный выше, приводит лишь те пункты, которые будут наиболее интересны авторам.

В дополнение к написанному выше, Microdata, 2D контекст API для canvas,и Веб-сообщения (postMessage() API) ), были разделены в отдельные документы в W3C (WHATWG все еще публикует версию HTML5, которая их содержит):

Специальные термины microdata исчезли в W3C черновике HTML5 и не публикуются отдельно. Черновик WHATWG HTML5 все еще их включает.

5.5. Изменения с 23 Апреля 2009 до 25 Августа 2009

  • Когда элемент time пустой, агенты пользователей должны рендерить локальное время.
  • Событие loadотправляется в Window, но теперь в качестве цели у него Document.
  • pushState() теперь виляет на заголовок Referer .
  • onundo и onredo теперь в Window.
  • У медиа элементов теперь есть startTime который указывает, где начинается текущий ресурс.
  • header был переименован в hgroup и был представлен новый элемент header.
  • createImageData() теперь также работает с объектами ImageData .
  • createPattern() теперь также в качестве аргумента может принимать video .
  • Элемент footer больше недопустим в header и header больше не разрешен address или footer.
  • Был представлен новый контроллер: <input type="tel">
  • Command API теперь работает для всех элементов.
  • accesskey теперь обозначен должным образом.
  • section и article теперь работают с атрибутом cite. Была представлена новая функция под названием Microdata, которая позволяет людям вставлять пользовательские структуры данных в их HTML документы.
  • В использование модели Microdata были также включены три рпедустановленных словаря: vCard, vEvent, и модель для лицензирования.
  • Drag and drop был обновлен, чтобы работать с моделью Microdata.
  • The last of the parsing quirks has been defined.
  • textLength был добавлен в качестве участника элемента textarea.
  • Элемент rp теперь обрабатывает содержимое по фразам, а не по символам.
  • location.reload() теперь обозначен.
  • Событие hashchange теперь активизируется асинхронно.
  • Были добавлены правила совместимости с XPath 1.0 и XSLT 1.0.
  • IDL атрибут spellcheck теперь преобразовывается в DOMString.
  • Поддержка hasFeature() была сведена к минимуму.
  • Конструктор Audio() устанавливает атрибут autobuffer.
  • Элемент td больше не разрешен в thead.
  • Элемент input и объект DataTransfer имеют IDL атрибут files.
  • datagrid и bb были убраны, из-за несогласованности по их дизайну.
  • API диапазона подписи был убран из медиа-элементов.
  • The cue range API has been removed from the media elements.
  • Была добавлена поддержка для WAI-ARIA.

Внесены незначительные исправления, подправлены опечатки, прояснены вопросы, задаваемые разработчиками, а также внесены другие мелкие поправки.

Дополнительно, следующие части были убраны из HTML5 и, скорее всего, далее будут разрабатываться в IETF:

  • Definition of URLs (Определение URL адресов).
  • Definition of Content-Type sniffing (Определение анализа типа содержимого).

5.6. Изменения с 12 Февраля 2009 до 23 Апреля 2009

  • Был добавлен новый глобальный атрибут spellcheck .
  • Было установлено, что скрипт ECMAScript this в глобальном объекте возвращает объект WindowProxy , а не объект Window.
  • Определен IDL атрибут value для элементов input в состоянии загрузки файлов.
  • Definition of designMode was changed to be more in line with legacy implementations.
  • The drawImage() method of the 2D drawing API can now take a video element as well.
  • Был изменен способ, которым медиа-элементы загружали ресурсы.
  • document.domain теперь совместим с IPv6.
  • Элемент videoполучил логический атрибут autobuffer , который служит подсказкой.
  • Теперь можно указывать элемент meta в атрибуте charset XML документов, если значение этого атрибута совпадает с кодировкой документа. (Обратите внимание, что он не указывает значение, а просто является талисманом.)
  • Составляющие bufferingRateи bufferingThrottled медиа-элементов были убраны.
  • Алгоритм выбора ресурса медиа-элемента теперь является асинхронным.
  • postMessage() теперь берет массив объектов MessagePort, а не только один из них.
  • Второй аргумент метода add() в элементе select и составляющая options элемента select теперь являются необязательными.
  • Атрибуты action, enctype, method, novalidate, и target на элементах input и button были переименованы в formaction, formenctype, formmethod, formnovalidate, и formtarget.
  • Концепт "storage mutex" был добавлен, чтобы иметь дело с отдельными страницами, пытающимися изменить элемент хранения (document.cookie и localStorage). Navigator получил метод getStorageUpdates() чтобы он мог быть осовбожден.
  • Синтаксис для SVG схож с MathML и теперь указано, что SVG может быть включен в ресурсы text/html.
  • Атрибут placeholder был добавлен к элементу textarea.
  • Добавлен элемент keygen для генерации ключевой пары
  • Элемент datagrid был пересмотрен, чтобы сделать API более асинхронным и разрешить незагруженные части сетки.

Дополнительно, были изъяты некоторые части HTML5 и дальше будут разрабатываться Рабочей Группой по Веб Приложениям (Web Applications Working Group) как отдельно стоящие спецификации:

5.9. Изменения с 10 июня по 12 февраля 2009

  • Составляющая dataобъекта ImageData была изменена с массива на объект CanvasPixelArray .
  • Тени требуются для внедрения элемента canvas и его API.
  • Была прояснена модель безопасности для canvas.
  • Были применены различные изменения к модели canvas в ответ на отзывы о внедрении и отзывы авторов. Т.е. прояснения к тому, что случается когда применены значения «нет» и «бесконечность» и внесены изменения в определения arc() и arcTo().
  • innerHTML в XML был слегка изменен для улучшения кругооборота.
  • Метод toDataURL() в элементе canvas теперь поддерживает установку уровня качества, когда аргумент типа медиа - image/jpeg.
  • Атрибут poster элемента video теперь влияет на внутренние размеры.
  • Было прояснено поведение атрибута type элемента link.
  • Анализ пакетов не разрешен для link , когда ожидаемый тип - изображение.
  • Представлен раздел по URL, который имеет дело с тем, как должны быть интерпретированы значения URL и что именно должны делать авторы. Каждая функция этой спецификации, использующая URL, была перефразирована, принимаю в расчет новый раздел по URL.
  • Теперь является явным, что атрибут href элемента base не зависит от xml:base.
  • Не указано каким должно быть поведение, когда меняется URL базы.
  • IDL атрибуты декомпозиции URL теперь более согласованы с Internet Explorer.
  • Атрибут xmlns со значением http://www.w3.org/1999/xhtml теперь разрешен во всех элементах HTML.
  • Атрибуты data-* и пользовательские атрибуты элемента embed теперь должны совпадать с продуктом XML Name и не могут содержать двоеточие.
  • Введен WebSocket API для двусторонней связи с сервером.
  • Значение volume в медиа элементах по умолчанию теперь равно 1.0, а не 0.5.
  • event-source был переименован в eventsource , потому что никакой элемент HTML не использует тире.
  • Был введен API канала сообщений, увеличивая postMessage().
  • Был добавлен новый элемент под названием bb. Он представляет команды браузера, которые могут быть вызваны пользователем.
  • Метод addCueRange() медиа элементов был изменен, чтобы принимать идентификатор, который показывается во время обратных запросов.
  • Теперь определено как изменить DOM в infoset.
  • Атрибут parent объекта Window теперь определен.
  • Определен элемент embed чтобы узнавать расширения, совместимые с серверами, которые предоставляют Flash как text/plain. (Это помечено как вопрос в спецификации, чтобы выяснить – есть ли лучший способ заставить это работать.)
  • embed можно теперь использовать и без атрибута src .
  • getElementsByClassName() теперь определен как чувствительный к регистру ASCII в режиме совместимости с CSS. .
  • В HTML документах localName больше не возвращает имя узла заглавными буквами.
  • Атрибуты data-* определены как «всегда строчными буквами».
  • Атрибут opener объекта Window не должен присутствовать когда страница была открыта по ссылке с target="_blank" и rel="noreferrer".
  • Теперь определен атрибут top объекта Window .
  • Элемент a теперь позволяет иметь вложенный поток содержимого, но не вложенное интерактивное содержимое.
  • Теперь обозначено что элемент header означает в аннотации документа и содержании.
  • Определено что означает «извлекать ресурс».
  • Теперь требуется, чтобы у всех шаблонов был элемент canvas .
  • Атрибут autosubmit был убран из элемента menu .
  • Была добавлена поддержка для outerHTML и insertAdjacentHTML().
  • xml:lang теперь разрешен в HTML, когда lang также указан и они имеют одно и то же значение. В XML lang разрешен, если xml:lang также указан и они имеют одно и то же значение.
  • Определен атрибут frameElement объекта Window. .
  • Цикл событий и очередь задач теперь выполняются по детальному скрипту и событиями. Все функции были обновлены, чтобы соответствовать этому механизму.
  • Если в атрибуте alt опущен атрибут title то должны присутствовать закрывающий элемент figure с дочерним элементом legend или вмещающий раздел с соответствующим заголовком.
  • Атрибут irrelevant был переименован в hidden.
  • Атрибут definitionURL в MathML теперь поддерживается должным образом. Раньше он выдал бы результат парсинга - все символы в нижнем регистре.
  • Браузеры должны обрабатывать US-ASCII как Windows-1252 по причинам совместимости.
  • Разрешен альтернативный синтаксис для DOCTYPE для совместимости с некоторыми инструментами XML.
  • Были убраны шаблоны данных (состоящие из элементов datatemplate, rule и nest).
  • Медиа элементы теперь поддерживают только один атрибут loop .
  • Метод load() () медиа элементов был определен как асинхронный. Он теперь также рассматривает все файлы по одному, вместо того, чтобы просто смотреть на атрибут type элемента source .
  • Новый компонент canPlayType() был добавлен к медиа-элементам.
  • Атрибуты totalBytes и bufferedBytes были убраны с медиа-элементов
  • Объект Location получил метод resolveURL() .
  • Элемент q был снова изменен. Пунктуация снова должна быть предоставлена агентом пользователя.
  • Различные изменения были произведены с HTML алгоритмом парсинга, чтобы больше соответствовать тому поведению, которое требуют вебсайты.
  • Теперь определены события unload и beforeunload.
  • IDL блоки в спецификации были обновлены, чтобы соответствовать предстоящим Веб IDL спецификациям.
  • Заголовки таблиц теперь могут иметь собственные заголовки. Требуется, чтобы браузеры поддерживали атрибут headers указывающий на элемент td или th но требуется также, чтобы авторы позволяли им указывать только элементы th .
  • Заинтересованные лица могут теперь зарегистрировать новые значения http-equiv .
  • Когда у элемента meta есть атрибут charset – он должен содержаться в первых 512 байтах.
  • У объекта StorageEvent теперь есть атрибут storageArea .
  • Теперь определено как должен использоваться HTML внутри SVG элемента foreignObject.
  • Был убран API уведомлений.
  • Определено то, как работает [[Get]] для HTMLDocument и объектов Window .
  • Объект Window получил атрибуты locationbar, menubar, personalbar, scrollbars, statusbar и toolbar , которые предоставляют информацию о пользовательском интерфейсе.
  • Раздел кэша приложения был пересмотрен и сильно изменен.
  • document.domain теперь основывается на Public Suffix List. [PSL]
  • Был добавлен ненормативный рендеринг-раздел, который описывает правила рендеринга для агентов пользователей на устаревшие и актуальные элементы.
  • Был добавлен нормативный раздел, который определяет когда определенные селекторы, указанные как Selectors и основном пользовательский модуль CSS3 (Basic User Interface Module) совпадают с элементами HTML. [SELECTORS] [CSS-UI]

Веб Формы 2.0, которые раньше были отдельной спецификацией, были полностью интегрированы в HTML5 с последней публикации. Следующие изменения были произведены с формами:

  • Была убрана поддержка XML отправки.
  • Была убрана поддержка заполнения формы.
  • Была убрана поддержка элементов select и datalist через атрибут data .
  • Убрана возможность ассоциировать поле с несколькими формами. Поле все еще можно ассоциировать с одной формой, но оно не располагается в атрибуте form .
  • Методы dispatchChangeInput() и dispatchFormChange() были убраны из элементов select, input, textarea и button.
  • Были убраны повторяющиеся шаблоны.
  • Атрибут inputmode был убран.
  • Элемент input в состоянии Загрузки Файлов больше не поддерживает атрибуты min и max .
  • Атрибут allow на элементах input input в состоянии Загрузки Файлов больше не является авторитетным.
  • Атрибуты pattern и accept для textarea были удалены.
  • RFC 3106 больше не поддерживается.
  • Метод submit() теперь только отправляет, он больше не проверяет верны ли элементы управления формы.
  • Элемент input в состоянии ряд (Range) теперь по умолчанию устанавливается на среднем, а не на минимальном значении.
  • Атрибут sizeэлемента input теперь является подтвержденным (ранее он считался «устаревшим»).
  • Элементы object теперь принимаю участие в отправке формы.
  • Атрибут type элемента input получил значения color и search.
  • Элемент input получил атрибут multiple который позволяет либо отправлять несколько e-mail’ов, либо загружать несколько файлов одновременно (в зависимости от значения атрибута type).
  • Элементы input, button и form теперь имеют атрибут novalidate для указания того, что поля в форме необязательно должны иметь правильные значения при отправке.
  • Когда элемент label содержит input он все еще может иметь атрибут for , так как он указывает на элемент input, который его содержит. .
  • У элемента input теперь есть IDL атрибут indeterminate .
  • Элемент input получил атрибут placeholder attribute.

5.8. Изменения с 22 Января 2008 до 10 Июня 2008

  • Изменилось внедрение и авторские данные атрибута ping .
  • <meta http-equiv=content-type> теперь является правильным способом установить кодировку.
  • Был подчищен API для элемента canvas. Была добавлена поддержка текста.
  • globalStorage в настоящее время ограничивается политикой единого происхождения и был переименован в localStorage. Было прояснено оперативное управление схожими событиями.
  • Изменился API-интерфейс postMessage(). . Отображается только источник происхождение сообщения, а не URL как раньше. Также требуется второй аргумент, который указывает происхождение целевого документа.
  • API-интерфейс перетаскивания стал яснее. Объект dataTransfer теперь имеет атрибут types, указывающий какой тип данных передается.
  • Элемент m теперь называется mark.
  • События, отправляемые сервером, теперь изменились и получили прояснения. Используется новый формат
  • Элементу figure больше не требуется заголовок.
  • У элемента ol появился новый атрибут reversed .
  • Изменилось определение кодировки символов в ответ на отзывы о внедрении.
  • Изменения были сделаны в секции HTML парсера в ответ на отзывы о внедрении.
  • Были произведены различные изменения в секции редактирования, включая добавление queryCommandEnabled() и связанных методов.
  • Атрибут headers был добавлен для элементов td .
  • У элемента table появился новый метод createTBody() .
  • Была добавлена поддержка MathML в секцию парсера HTML. (Поддержка SVG по прежнему ожидает вставку SVG WG.)
  • Были добавлены определенные автором атрибуты. Авторы могут добавлять атрибуты к элементам по типу data-name и могут получить доступ через DOM используя dataset[name] в качестве элемента в вопросе.
  • Был изменен элемент q – теперь пунктуация требуется внутри, а раньше ее рендерил браузер.
  • Атрибут target теперь может оставлять значение _blank.
  • Был определен API showModalDialog.
  • Был определен API document.domain.
  • У элемента source теперь есть новый элемент pixelratio , полезный дл тех видео, у которых есть какая-либо ошибка с кодировкой.
  • IDL атрибуты bufferedBytes, totalBytes и bufferingThrottled были добавлены к элементу video .
  • Медиа событие begin было переименовано в loadstart, чтобы соответствовать спецификации Progress Events.
  • Атрибут charset был добавлен в script.
  • Элемент iframe получил аттрибуты sandbox и seamless, которые предоставляют функционал sandboxing (песочницы).
  • Были добавлены элементы ruby, rt и rp для поддержки аннотации ruby.
  • Был добавлен метод showNotification(), чтобы показывать сообщения с уведомлениями пользователям.
  • Была добавлена поддержка для событий beforeprint и afterprint.

Благодарности

Редактор хотел бы поблагодарить Ben Millard, Bruce Lawson, Cameron McCormack, Charles McCathieNevile, Dan Connolly, David Håsäther, Dennis German, Frank Ellermann, Frank Palinkas, Futomi Hatano, Gordon P. Hemsley, Henri Sivonen, James Graham, Jens Meiert, Jeremy Keith, Jürgen Jeka, Krijn Hoetmer, Leif Halvard Silli, Maciej Stachowiak, Marcos Caceres, Mark Pilgrim, Martijn Wargers, Martyn Haigh, Masataka Yakura, Michael Smith, Ms2ger, Olivier Gendrin, Øistein E. Andersen, Philip Jägenstedt, Philip Taylor, Randy Peterman, Simon Pieters, Toby Inkster, и Yngve Spjeld Landro за их вклад в эту работу, а также всех людей, которые работали над HTML5 на протяжении многих лет, чтобы улучшить наш опыт в вебе!

References

[CSS-UI]
CSS3 Basic User Interface Module, T. Çelik. W3C.
[DOCTYPE]
Activating Browser Modes with Doctype, H. Sivonen.
[DOM2HTML]
Document Object Model (DOM) Level 2 HTML Specification, J. Stenback, P. Le Hégaret, A. Le Hors. W3C.
[HTML4]
HTML 4.01 Specification, D. Raggett, A. Le Hors, I. Jacobs, editors. W3C.
[HTML5]
HTML5, I. Hickson. W3C.
HTML5 (editor's draft), I. Hickson. WHATWG.
HTML5 (editor's draft), I. Hickson. W3C.
[PSL]
Public Suffix List, Mozilla Foundation.
[SELECTORS]
Selectors, D. Glazman, T. Çelik, I. Hickson. W3C.
[XHTML1]
XHTML™ 1.1 - Module-based XHTML (Second Edition), S. McCarron, M. Ishikawa. W3C.
[XML]
Extensible Markup Language (XML) 1.0 (Fifth Edition), T. Bray, J. Paoli, C. Sperberg-McQueen, E. Maler, F. Yergeau. W3C.
Namespaces in XML 1.0 (Third Edition), T. Bray, D. Hollander, A. Layman, R. Tobin, H. S. Thompson. W3C.