HTML 5.3 | Введение

HTML 5.3 | Введение

Предпосылка

HTML является основным языком разметки Всемирной паутины. Первоначально HTML изначально разрабатывался как язык для семантического описания научных документов. Однако общий дизайн позволил адаптировать его в последующие годы для описания ряда других типов документов и даже приложений.

Аудитория

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

 

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

В частности, знакомство с основами DOM необходимо для полного понимания некоторых из более технических частей этой спецификации. Понимание Web IDL, HTTP, XML, Unicode, кодировок символов, JavaScript и CSS также будет полезно в некоторых местах, но не является необходимым.

 

Масштаб

Эта спецификация ограничена предоставлением языка разметки семантического уровня и связанных с ним API-интерфейсов сценариев семантического уровня для создания доступных страниц в Интернете — от статических документов до динамических приложений.

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

Объем этой спецификации не для описания всей операционной системы. В частности, программное обеспечение для конфигурирования аппаратного обеспечения, инструменты для работы с изображениями и приложения, которые пользователи должны будут использовать на рабочих станциях высокого уровня на ежедневной основе, не входят в сферу применения. Что касается приложений, эта спецификация предназначена специально для приложений, которые, как ожидается, будут использоваться пользователями время от времени или регулярно, но из разных мест, с низкими требованиями к процессору. Примеры таких приложений включают системы онлайн-покупок, поисковые системы, игры (особенно многопользовательские онлайн-игры), общедоступные телефонные книги или адресные книги, коммуникационное программное обеспечение (почтовые клиенты, клиенты для обмена мгновенными сообщениями, программное обеспечение для обсуждения), программное обеспечение для редактирования документов и т. д.

 

История

В течение первых пяти лет (1990–1995 гг.) HTML прошел через ряд ревизий и получил ряд расширений, в первую очередь размещенных сначала в CERN, а затем в IETF.

С созданием W3C разработка HTML снова изменилась. Первая неудачная попытка расширения HTML в 1995 году, известная как HTML 3.0, затем сменила более прагматичный подход, известный как HTML 3.2, который был завершен в 1997 году. HTML 4.01 вскоре последовал в том же году.

В следующем году члены W3C решили прекратить развитие HTML и вместо этого начать работу над XML-эквивалентом, называемым XHTML. Эти усилия начались с переформулирования HTML 4.01 в XML, известного как XHTML 1.0, в котором не было добавлено никаких новых функций, кроме новой сериализации, и которое было завершено в 2000 году. После XHTML 1.0 фокус W3C переключился на облегчение работы других рабочих групп. расширить XHTML, под знаменем XHTML Modularization. Параллельно с этим W3C также работал над новым языком, который не был совместим с более ранними языками HTML и XHTML, называя его XHTML 2.0.

Примерно в то время, когда развитие HTML было остановлено в 1998 году, части API для HTML, разработанные поставщиками браузеров, были определены и опубликованы под названием DOM Level 1 (в 1998 году) и DOM Level 2 Core и DOM Level 2 HTML (начиная с 2000 и кульминацией 2003 года). Затем эти усилия прекратились, некоторые спецификации DOM уровня 3 были опубликованы в 2004 году, но рабочая группа была закрыта до того, как были завершены все проекты уровня 3.

В 2003 году публикация XForms, технологии, которая позиционировалась как следующее поколение веб-форм, вызвала новый интерес к развитию самого HTML, а не к его замене. Этот интерес был вызван осознанием того, что развертывание XML как веб-технологии ограничивалось совершенно новыми технологиями (такими как RSS и более поздние версии Atom), а не заменой существующих развернутых технологий (таких как HTML).

Первым результатом этого стало подтверждение концепции, демонстрирующей, что формы HTML 4.01 можно было расширить для предоставления многих функций, представленных в XForms 1.0, без необходимости в браузерах реализовывать механизмы рендеринга, несовместимые с существующими веб-страницами HTML. возобновленный интерес. На этом раннем этапе, несмотря на то, что черновик уже был общедоступным, а входные данные уже запрашивались из всех источников, спецификация была только под авторским правом Opera Software.

Идея о том, что эволюция HTML должна быть возобновлена, была проверена на семинаре W3C в 2004 году, где были представлены некоторые принципы, лежащие в основе работы HTML (описанные ниже), а также вышеупомянутый предварительный проект предложения, охватывающий только функции, связанные с формами. W3C совместно с Mozilla и Opera. Предложение было отклонено на том основании, что это предложение противоречило ранее выбранному направлению развития Интернета; персонал и члены W3C проголосовали за продолжение разработки замен на основе XML.

Вскоре после этого Apple, Mozilla и Opera совместно объявили о своем намерении продолжить работу над проектом под эгидой нового места под названием WHATWG. Был создан публичный список рассылки, и черновик был перенесен на сайт WHATWG. Впоследствии авторское право было изменено, чтобы принадлежать всем трем поставщикам и разрешить повторное использование спецификации.

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

Последнее требование, в частности, требовало, чтобы объем спецификации HTML включал то, что ранее было указано в трех отдельных документах: HTML 4.01, XHTML 1.1 и HTML DOM уровня 2. Это также означало включение значительно большего количества деталей, чем ранее считалось нормой.

В 2006 году W3C проявил интерес к участию в разработке HTML 5.0, а в 2007 году сформировал рабочую группу, уполномоченную работать с WHATWG над разработкой спецификации HTML. Apple, Mozilla и Opera позволили W3C опубликовать спецификацию под авторским правом W3C, сохранив при этом версию с менее ограничительной лицензией на сайте WHATWG.

В течение нескольких лет обе группы работали вместе под одним редактором: Ианом Хиксоном (Ian Hickson). В 2011 году группы пришли к выводу, что у них разные цели: W3C хотел нарисовать линию в песке для функций для Рекомендации HTML 5.0, а WHATWG хотела продолжить работу над Живым стандартом для HTML, постоянно поддерживая спецификация и добавление новых функций. В середине 2012 года на W3C была представлена новая группа редакторов, которая позаботилась о создании рекомендации HTML 5.0 и подготовке рабочего проекта для следующей версии HTML.

С тех пор WG W3C Web Platform постоянно выбирает исправления из WHATWG, которые исправляют ошибки, зарегистрированные в спецификации HTML W3C, или более точно представляют реализованную реальность в пользовательских агентах. На момент публикации этого документа исправления из спецификации HTML WHATWG (https://whatwg.org/specs/web-apps/current-work/#) были объединены до 12 января 2016 года. Редакторы HTML W3C также добавили исправления, полученные в результате обсуждений и решений, принятых WG W3C Web Platform, а также исправления ошибок из ошибки не разделяются WHATWG.

Отдельный документ публикуется для документирования различий между HTML, указанным в этом документе, и языком, описанным в спецификации HTML 4.01. [HTML5-DIFF] (https://www.w3.org/TR/html53/references.html#biblio-html5-diff)

 

Дизайн заметки

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

HTML, его поддерживающие DOM API, а также многие поддерживающие его технологии были разработаны в течение нескольких десятилетий широким кругом людей с различными приоритетами, которые во многих случаях не знали о существовании друг друга.

Функции, таким образом, возникли из многих источников и не всегда были разработаны особенно последовательными способами. Кроме того, из-за уникальных характеристик Интернета ошибки реализации часто становятся де-факто (de-facto), а теперь и де-юре (de-jure) стандартами, поскольку контент часто непреднамеренно пишется способами, которые полагаются на них, прежде чем их можно будет исправить.

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

Сериализуемость исполнения скрипта

Чтобы не подвергать веб-авторов сложности многопоточности, API-интерфейсы HTML и DOM разработаны таким образом, что ни один сценарий не может обнаружить одновременное выполнение других сценариев. Даже с рабочими цель состоит в том, что поведение реализаций можно рассматривать как полную сериализацию выполнения всех сценариев во всех контекстах просмотра. (https://www.w3.org/TR/html53/browsers.html#browsing-context)

Соответствие другим спецификациям

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

 

Растяжимость

HTML имеет широкий спектр механизмов расширяемости, которые можно использовать для добавления семантики или поведения таким образом, чтобы это не противоречило будущей разработке веб-платформы:

  • Авторы могут создавать пользовательские элементы для обеспечения нового поведения (https://www.w3.org/TR/html53/semantics-scripting.html#custom-element)
  • Авторы могут использовать атрибут класса, чтобы аннотировать элементы для обработки. Это основной механизм, используемый CSS (https://www.w3.org/TR/html53/dom.html#element-attrdef-global-class)
  • Авторы могут комментировать элементы, используя атрибуты data-*=»». (https://www.w3.org/TR/html53/dom.html#element-attrdef-global-data) Они гарантированно не будут затронуты браузерами и позволяют сценариям включать данные об элементах HTML, которые сценарии затем могут искать и обрабатывать. Это действительная и рекомендуемая практика для пользовательских элементов. (https://www.w3.org/TR/html53/semantics-scripting.html#custom-element)
  • Авторы могут использовать механизм <meta name=»» content=»»> для включения метаданных всей страницы путем регистрации расширений предопределенного набора имен метаданных. (https://www.w3.org/TR/html53/document-metadata.html#register-the-names)
  • Авторы могут использовать механизм rel=»» (https://html.spec.whatwg.org/multipage/semantics.html#attr-link-rel) для аннотирования ссылок с определенными значениями путем регистрации расширений предопределенного набора типов ссылок. (https://www.w3.org/TR/html53/links.html#link-types-extensions-to-the-predefined-set-of-link-type) Это используется микроформатами.
  • Авторы могут встраивать необработанные данные, используя механизм <script type =»»> с пользовательским типом, для дальнейшей обработки встроенными или серверными сценариями. [JSON-LD] делает это. (https://www.w3.org/TR/html53/references.html#biblio-json-ld)
  • Авторы могут расширять API, используя механизм прототипирования JavaScript. Это широко используется библиотеками сценариев.
  • Авторы могут использовать RDFa [html-rdfa] или [microdata] для аннотирования контента.

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

 

HTML против синтаксиса XML

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

Представление в памяти известно как «DOM HTML» или «DOM» для краткости.

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

Первый такой конкретный синтаксис — это синтаксис HTML. Этот формат рекомендуется для большинства авторов. Он совместим с большинством устаревших веб-браузеров. Если документ передается с MIME-типом text/html, (https://www.w3.org/TR/html53/iana.html#text-html) веб-браузеры будут обрабатывать его как HTML-документ. Эта спецификация определяет последнюю версию синтаксиса HTML, известного просто как «HTML».

Второй конкретный синтаксис — это синтаксис XHTML, который является приложением XML. Когда документ передается с типом XML MIME (https://www.w3.org/TR/html53/infrastructure.html#xml-mime-type), таким как application/xhtml+xml (https://www.w3.org/TR/html53/iana.html#application-xhtmlxml), веб-браузеры обрабатывают его как XML-документ для анализа XML-процессором. Авторам напоминают, что обработка для XML и HTML отличается; в частности, даже незначительные синтаксические ошибки не позволят полностью отобразить документ, помеченный как XML, тогда как в синтаксисе HTML они будут игнорироваться. Эта спецификация определяет последнюю версию синтаксиса XHTML, известную просто как «XHTML».

DOM, синтаксис HTML и синтаксис XHTML не могут представлять один и тот же контент. Например, пространства имен не могут быть представлены с использованием синтаксиса HTML, но они поддерживаются в DOM и в синтаксисе XHTML. Точно так же документы, которые используют функцию <noscript> (https://www.w3.org/TR/html53/semantics-scripting.html#elementdef-noscript), могут быть представлены с использованием синтаксиса HTML, но не могут быть представлены с помощью DOM или в синтаксисе XHTML. Комментарии, содержащие строку «—>», могут быть представлены только в DOM, но не в синтаксисах HTML и XHTML.

 

Структура этой спецификации

Данная спецификация разделена на следующие основные разделы:

1. Введение

Ненормативные материалы, обеспечивающие контекст для спецификации HTML.

2. Общая инфраструктура

Классы соответствия, алгоритмы, определения и общие основания остальной части спецификации.

3. Семантика, структура и API-интерфейсы HTML-документов

Документы построены из элементов. Эти элементы формируют дерево с использованием DOM. В этом разделе описываются функции этого DOM, а также вводятся общие для всех элементов функции и концепции, используемые при определении элементов.

4. Элементы HTML

Каждый элемент имеет предопределенное значение, которое объясняется в этом разделе. Также приведены правила для авторов о том, как использовать элемент, а также требования к пользовательскому агенту о том, как обрабатывать каждый элемент. Это включает в себя большие функции подписи HTML, такие как воспроизведение видео и субтитры, элементы управления формой и отправка форм, а также API для 2D-графики, известный как холст HTML.

5. Взаимодействие с пользователем

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

6. Загрузка веб-страниц

HTML-документы не существуют в вакууме — в этом разделе определяются многие функции, влияющие на среды, связанные с несколькими страницами, такие как веб-браузеры и автономное кэширование веб-приложений.

7. API веб-приложений

В этом разделе представлены основные функции для написания сценариев приложений в HTML.

8. Синтаксис HTML

9. Синтаксис XML

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

10. Отображение

Этот раздел определяет правила рендеринга по умолчанию для веб-браузеров.

Есть также некоторые приложения, перечисляющие:

11. Устаревшие функции и

12. Соображений IANA, а также несколько индексов.