Русская Википедия:HTML5

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Шаблон:Файловый формат Шаблон:HTML HTML5 (Шаблон:Lang-en) — язык для структурирования и представления содержимого всемирной паутины. Это пятая версия HTML. Хотя стандарт был завершён (рекомендованная версия к использованию) только в 2014 году[1][2] (предыдущая, четвёртая, версия опубликована в 1999 году[3]), уже с 2013 года[4] браузерами оперативно осуществлялась поддержка, а разработчиками — использование рабочего стандарта (Шаблон:Lang-en). Цель разработки HTML5 — улучшение уровня поддержки мультимедиа-технологий с одновременным сохранением обратной совместимости, удобочитаемости кода для человека и простоты анализа для парсеров.

Во всемирной паутине долгое время использовались стандарты HTML 4.01, XHTML 1.0 и XHTML 1.1. Веб-страницы[5] на практике оказывались свёрстаны с использованием смеси особенностей, представленных различными спецификациями, включая спецификации программных продуктов, например веб-браузеров, а также сложившихся общеупотребительных приёмов. HTML5 был создан как единый язык разметки, который мог бы сочетать синтаксические нормы HTML и XHTML. Он расширяет, улучшает и рационализирует разметку документов, а также добавляет единый API для сложных веб-приложений[6].

В HTML5 реализовано множество новых синтаксических особенностей. Например, элементы Шаблон:Tag, Шаблон:Tag и Шаблон:Tag, а также возможность использования SVG и математических формул. Эти новшества разработаны для упрощения создания и управления графическими и мультимедийными объектами в сети без необходимости использования сторонних API и плагинов. Другие новые элементы, такие как Шаблон:Tag, Шаблон:Tag, Шаблон:Tag и Шаблон:Tag, разработаны для того, чтобы обогащать семантическое содержимое документа (страницы). Новые атрибуты были введены с той же целью, хотя ряд элементов и атрибутов был удалён. Некоторые элементы, например Шаблон:Tag, Шаблон:Tag и Шаблон:Tag, были изменены, переопределены или стандартизированы. API и DOM стали основными частями спецификации HTML5[6]. HTML5 также определяет некоторые особенности обработки ошибок вёрстки, поэтому синтаксические ошибки должны рассматриваться одинаково всеми совместимыми браузерами[7].

Предпосылки

W3C, к 2004 году захвативший множество компаний, не связанных напрямую с браузерами, вроде Adobe, настаивал на XHTML — машиночитаемом, но малопригодном для человеческого редактирования формате[8], да и просто медленно внедрял новшества. Потому была создана новая рабочая группа, WHATWG.

В 2005 году появился YouTube — основной видеохостинг Интернета вплоть до настоящего времени (2021). Его плеер был написан на Adobe Flash — распространённой системе интернет-приложений. На момент появления YouTube это было нормально, поскольку просмотр страниц происходил в основном с компьютеров и ноутбуков, а порты Flash были под все крупные ОС.

В 2007 году появился iPhone. Телефоны до него либо использовали чисто мобильные технологии вроде WAP, либо полагались на серверный рендеринг (Opera Mini). iPhone же располагал полноценным браузером — а YouTube, полагавшийся на Flash, был реализован отдельной программой. Одной из задач HTML5 стало снизить потребность в Flash — с помощью HTML5 video, SVG и холстов.

iPhone поставил новый стандарт смартфона — прибор с сенсорным экраном на всю переднюю панель. Экранная клавиатура обычно миниатюрная, и потому для разных типов ввода — чисел, дат, адресов электронной почты — нужны разные клавиатуры. HTML5 добавил и другие новшества для мобильных устройств — геолокацию, управление кэшем для офлайн-работы и т.д. Как в HTML5, так и в CSS3 добавлены механизмы перевёрстки сайтов под мобильные устройства и страничные медиа (электронная книга, печатный документ).

Всё больше распространяются AJAX и одностраничные сайты, и добавился API для управления историей в них.

Выяснилось, что вебмастера ставят DOCTYPE какой попало — потому эта строка упрощена до <!DOCTYPE html>. Поддержка ошибочных документов унифицирована и в других местах.

История

WHATWG начал работу над новым стандартом в 2004 году[9], когда World Wide Web Consortium (W3C) сосредоточился на будущих разработках XHTML 2.0, а HTML 4.01 не изменялся с 2000 года[10]. В 2009 году W3C признал, что срок работы у рабочей группы XHTML 2.0 истёк, и решил не возобновлять его. Впоследствии W3C и WHATWG совместно разрабатывали HTML5[11].

Даже несмотря на то, что HTML5 был хорошо известен среди веб-разработчиков в течение нескольких лет, он стал основной темой СМИ только в апреле 2010 года. После этого глава компании Apple Inc. Стив Джобс[12][13][14][15] написал публичное письмо, заголовок которого гласил: «мысли по поводу Flash», где он заключил, что с разработкой HTML5 нет больше необходимости смотреть видеоролики или использовать другие виды приложений с помощью Adobe Flash[16]. По этому поводу вспыхивали дебаты в кругу веб-разработчиков, причём некоторые намекали, что, хотя HTML5 и обеспечивает расширенную функциональность, разработчики должны принимать во внимание различия браузеров и необходимость поддержки различных частей стандартов, равно как и функциональные различия между HTML5 и Flash[17].

Процесс стандартизации

WHATWG начал работу над спецификацией в июне 2004 года под названием Web Applications 1.0[18]. С января 2011 года спецификация в Draft Standard (Стандартизация проекта) утверждается в WHATWG, Working Draft (рабочий проект) утверждается в W3C. Ян Хиксон из компании Google является редактором спецификации HTML5[19].

Спецификация HTML5 была принята в качестве точки начала работы над новым HTML рабочей группой W3C в 2007 году. Эта рабочая группа опубликовала спецификацию как первый публичный рабочий проект (working draft) 22 января 2008 года[20]. Рабочий проект — это текущая работа, она оставалась на несколько лет, её части HTML5 были закончены и реализованы в браузерах до того момента, когда вся спецификация достигла финального статуса «Рекомендовано»[21].

Ян Хиксон ожидал достижения Candidate Recommendation в течение 2012 года[21].

Чтобы спецификация получила статус W3C Рекомендации, необходимы две законченные на 100 % и полностью взаимодействующие реализации[21].

В интервью TechRepublic Хиксон предполагал, что это случится в 2012 году или позже[22][23]. Однако многие части спецификации были стабильны и могли быть реализованы в продуктах:

Шаблон:Quotation

В декабре 2009 года WHATWG переключилась на универсальную модель разработки для спецификации HTML5[24]. W3C всё ещё продолжала публиковать снимки со спецификацией HTML5[5].

14 февраля 2011 года W3C увеличил срок работы для рабочей группы HTML с промежуточными снимками для HTML5. Рабочая группа предполагала продвинуть HTML5 в Last Call, приглашая сообщества к сотрудничеству с W3C, чтобы подтвердить техническое отсутствие дефектов в спецификации в мае 2011 года. Затем группа переключилась на тестирование своей реализации. W3C также разрабатывала всестороннюю проверку, чтобы добиться широкой функциональной совместимости для финальной спецификации 2014 года — ожидаемой даты для Рекомендации[25].

Шаблон:QuotationС 28 октября 2014 года W3C официально рекомендует использовать HTML5 — это значит, что стандарт окончательно финализирован и готов к широкому использованию[2].

План выпуска новых версий стандартов

2012 2013 2014 2015 2016 2017 2018
HTML 5.0[37][38] Candidate Rec Call for Review Recommendation
HTML 5.1[39] 1st Working Draft Last Call Candidate Recommendation Recommendation
HTML 5.2[40] W3C First Public Working Draft Candidate Recommendation,
Recommendation
HTML 5.3[41] W3C First Public Working Draft

Свойства

Разметка

HTML5[42][43][44] вводит несколько новых элементов и атрибутов, которые отражают типичное использование разметки на современных веб-сайтах. Некоторые из них — семантические замены для использования универсальных блочных (<div>) и строчных (<span>) элементов, например, <nav> (блок навигации по сайту), <footer> (обычно относится к нижней части страницы или последней строке HTML кода) или <audio> и <video> вместо <object>[45][46]. Некоторые устаревшие элементы, которые можно было использовать в HTML 4.01, были исключены, включая чисто оформительские элементы, такие как <font> и <center>, чьи эффекты выполняются с помощью каскадных таблиц стилей. Также в поведении гипертекстовых страниц снова заострено внимание на важности скриптов DOM (например, Javascript).

Синтаксис HTML5 больше не базируется на SGML, несмотря на подобие его разметки. Однако он был разработан обратно совместимым с обычным парсингом более старых версий HTML. В HTML5 применяется новая вводная строка, которая выглядит как объявление типа документа в SGML, <!DOCTYPE html>, запускающая соответствующий стандартам режим визуализации[47]. С 5 января 2009 года HTML5 также включает в себя Web Forms 2.0, ранее бывшие отдельной спецификацией WHATWG.

Новые API

В дополнение к определению разметки HTML5 устанавливает API[6][48], который может быть использован с JavaScript. Возможности DOM расширены и фактически используемые свойства задокументированы. Также добавлены новые API, например:

Файл:HTML5 APIs and related technologies taxonomy and status.svg
HTML5 APIs and related technologies taxonomy and status
  • элемент «холст» для непосредственного метода рисования в 2D. См. спецификацию Canvas 2D API Specification 1.0[49];
  • контроль над проигрыванием медиафайлов, который может использоваться, например, для синхронизации субтитров с видео[50];
  • хранение данных в браузере[51];
  • File API: возможность загрузки документа через выбор (тег <input type="file">) или перетаскиванием (Drag-and-drop)
  • Drag-and-drop: предоставляет набор событий для каждого элемента DOM, таких как появление и нахождение в его зоне, благодаря которым разработчик может информировать пользователя о необходимых действиях и идентификаторе перетаскиваемого файла, содержащего адрес, имя, тип, размер и дату изменения;
  • управление историей браузера;
  • тип MIME и регистрация обработчика протокола;
  • микроданные.

Не все выше перечисленные технологии включены в спецификацию W3C HTML5, хотя они есть в спецификации WHATWG HTML[52]. Немного связанных технологий, которые не являются частью ни одной из спецификаций, следуют далее. W3C публикует спецификации для них отдельно.

  • геолокация;
  • база данных SQL для Web, внутренняя база данных (больше не поддерживаемая)[53];
  • Индексированная база данных (IndexedDB) API, индексирование по типу ключ-значение (прежде — WebSimpleDB)[54];
  • Файл API, дескриптор обновления файлов и управления ими[55];
  • Работа с системой. Этот API предназначен для того, чтобы обеспечить хранение информации со стороны клиента без управления базами данных[56];
  • Запись в файл, использование API для записи в файл информации из приложения[57].

XHTML5

XHTML5 — это XML-сериализация языка HTML5. Документы XML должны быть снабжены XML Internet media type, например, application/xhtml+xml или application/xml[6]. XHTML5 требует строгого и правильно оформленного синтаксиса XML. Выбор между HTML5 и XHTML5 сводится к выбору типа MIME/содержимого: тип медиа, который будет выбран, определит, какой тип документа должен быть использован[58]. В XHTML5 doctype <html> необязателен и может быть просто пропущен[59]. HTML, который был написан, чтобы соответствовать техническим требованиям и HTML и XHTML — и который производит то же DOM дерево, разбирающее HTML или XML, — назван многоязычным[60].

Обработка ошибок

Спецификация HTML5 предъявляет требования как к юзер-агентам (браузерам), так и к документам. Документы могут содержать не всегда корректный синтаксис, но HTML5-совместимые браузеры, так же, как и их предшественники, применяют алгоритмы разбора ошибок разметки в документах для построения правильной объектной модели (DOM). Чёткое определение требований к юзер-агентам делается с целью достижения совместимости между браузерами разных производителей. Так же, как и требования к синтаксису разметки документов с целью корректного отображения их в различных браузерах[61]. В старых версиях браузеров новые теги HTML5 просто игнорируются.

Отличия HTML5 от HTML4.01 и XHTML1.0

Ниже представлен список отличий:

Шаблон:Multicol

  • Изменён синтаксис
  • Встраивание SVG и MathML в text/html
  • Новые элементы: <article>, <aside>, <audio>, <canvas>, <command>, <datalist>, <details>, <embed>, <figcaption>, <figure>, <footer>, <header>, <hgroup>, <keygen>, <main>, <mark>, <meter>, <nav>, <output>, <progress>, <rp>, <rt>, [[<ruby>|en]] (Ruby (annotation markup)), <section>, <source>, <summary>, <time>, <video>, <wbr>[62]

Шаблон:Col-break

  • Новые компоненты ввода: date/time, email, url, search, number, range, tel, color[63]
  • Новые атрибуты: charset (в <meta>), async (в script)
  • Глобальные атрибуты, которые могут быть применены ко всем элементам: id, tabindex, hidden, data-* (пользовательские атрибуты данных)
  • Элементы, которые будут исключены: <acronym>, <applet>, <basefont>, <big>, <center>, <dir>, <font>, <frame>, <frameset>, <isindex>, <noframes>, <strike>, <tt>

Шаблон:Col-end

Полный список изменений в HTML5 представлен в обновляющемся рабочем проекте W3C «Отличия HTML5 от HTML4» (последняя версия от 9 декабря 2014 года)[6].

Логотип HTML5

Файл:HTML5-logo.svg
Логотип HTML5

18 января 2011 года W3C ввёл логотип, чтобы представить использование или добавить интерес к HTML5. В отличие от других знаков, выпущенных ранее компанией W3C, он не подразумевает соответствие определённому стандарту. С 1 апреля 2011 года этот логотип считается официальным[64].

Во время первого показа его публике W3C объявил логотип HTML5 как символ «универсальной визуальной идентификации данных для широкого набора открытых Веб-технологий, включая HTML, CSS, SVG, WOFF и другие»[65]. Некоторые защитники веб-стандартов, включая и The Web Standards Project, раскритиковали это определение HTML5 как обобщённое и размытое понятие[65]. Тремя днями позже W3C ответил на отзыв сообщества и изменил определение логотипа, убрав перечисление связанных технологий[66]. Затем W3C заявил, что логотип «представляет HTML5, краеугольный камень для современных веб-приложений»[64].

Пример веб-страницы HTML5

Файл:Html-5.png
Семантическая вёрстка страницы
<!DOCTYPE html>
<html>
   <head>
      <meta charset="utf-8">
      <title>
         (Это title) Пример страницы на HTML5
      </title>
   </head>
   <body>
      <header>
         <hgroup>
            <h1>
               Заголовок "h1" из hgroup
            </h1>
            <h2>
               Заголовок "h2" из hgroup
            </h2>
         </hgroup>
      </header>
      <nav>
         <menu>
            <li>
               <a href="link1.html">
                  Первая ссылка из блока "nav"
               </a>
            </li>
            <li>
               <a href="link2.html">
                  Вторая ссылка из блока "nav"
               </a>
            </li>
         </menu>
      </nav>
      <section>
         <article>
            <h3>
               Заголовок статьи из блока "article"
            </h3>
            <p>
               Текст абзаца статьи из блока "article"
            </p>
            <details>
               <summary>
                  Блок "details", текст тега "summary"
               </summary>
               <p>
                  Абзац из блока "details"
               </p>
            </details>
         </article>
      </section>
      <footer>
         <time>
            Содержимое тега "time" блока "footer"
         </time>
         <p>
            Содержимое абзаца из блока "footer"
         </p>
      </footer>
   </body>
</html>

См. также

Примечания

Шаблон:Примечания

Литература

Ссылки

Шаблон:Стандарты W3C

  1. Шаблон:Cite web
  2. 2,0 2,1 Шаблон:Cite web
  3. Шаблон:Cite web
  4. Шаблон:Cite web
  5. 5,0 5,1 Шаблон:Cite web
  6. 6,0 6,1 6,2 6,3 6,4 Шаблон:Cite web
  7. Шаблон:Cite web
  8. Шаблон:Cite web
  9. Шаблон:Cite web
  10. Шаблон:Cite web
  11. Шаблон:Cite web
  12. Шаблон:Cite web
  13. Шаблон:Cite web
  14. CBS News: Steve Jobs: Why Apple Banned Flash
  15. Шаблон:Cite web
  16. Шаблон:Cite web
  17. Шаблон:Cite web
  18. Шаблон:Cite web
  19. Шаблон:Cite web
  20. Шаблон:Cite web
  21. 21,0 21,1 21,2 Шаблон:Cite web
  22. Шаблон:Cite web
  23. Шаблон:Cite web
  24. Шаблон:Cite web
  25. Шаблон:Cite web
  26. Шаблон:Cite web
  27. Шаблон:Cite web
  28. Начало разработки версии 5.1 Шаблон:Wayback W3C
  29. Шаблон:Cite web
  30. Шаблон:Cite web
  31. Шаблон:Cite web
  32. Шаблон:Cite web
  33. Шаблон:Cite web
  34. Шаблон:Cite web
  35. Шаблон:Cite web
  36. Шаблон:Cite web
  37. Шаблон:Cite web
  38. Шаблон:Cite web
  39. Шаблон:Cite web
  40. Шаблон:Cite web
  41. Шаблон:Cite web
  42. Шаблон:Cite web
  43. Шаблон:Cite web
  44. Шаблон:Cite web
  45. Шаблон:Cite web
  46. Шаблон:Cite web
  47. Шаблон:Cite web
  48. Differences from HTML4 — APIs Шаблон:Wayback WHATWG.
  49. «HTML Canvas 2D Context» Шаблон:Wayback. World Wide Web Consortium.
  50. Шаблон:Cite web
  51. «Web Storage Specification» Шаблон:Wayback. World Wide Web Consortium.
  52. HTML Standard
  53. «Web SQL Database» Шаблон:Wayback. World Wide Web Consortium.
  54. «Indexed Database» Шаблон:Wayback. World Wide Web Consortium.
  55. «File API» Шаблон:Wayback. World Wide Web Consortium.
  56. «Filesystem API» Шаблон:Wayback. World Wide Web Consortium.
  57. «File API: Writer» Шаблон:Wayback. World Wide Web Consortium.
  58. Сергей Анатольевич Мавроди «Sergey’s HTML5 & CSS3 Quick Reference». Belisso Corp., 2010. ISBN 978-0-615-43321-9
  59. Шаблон:Cite web
  60. Polyglot Markup: HTML-Compatible XHTML Documents Шаблон:Wayback, W3C Working Draft 05 April 2011
  61. Шаблон:Cite web
  62. Шаблон:Книга
  63. Шаблон:Cite web
  64. 64,0 64,1 Шаблон:Cite web
  65. 65,0 65,1 Шаблон:Cite web
  66. Шаблон:Cite web