- Спецификации HTML5 W3C и WHATWG — документированные различия
- «HTML5» против «Живого стандарта HTML»
- Моё мнение
- Элемент main
- Main title
- Main title
- Main title
- Main title
- Моё мнение
- Элемент hgroup
- 5 deprecated features of HTML5
- Sometimes specifications are changed and you need to refactor your code
- Моё мнение
- API веб-уведомлений
- Моё мнение
- Заключение
- P.S. Это тоже может быть интересно:
- Saved searches
- Use saved searches to filter your results more quickly
- License
- whatwg/html
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
- Взгляд в HTML6
- Введение
- Обзор HTML5
- Понимание концепции HTML6
Спецификации HTML5 W3C и WHATWG — документированные различия
Несколько недель назад HTML5 получил статус W3C-рекомендации. Я воспользовался этим событием, чтобы обсудить на SitePoint пять интересных, но уже устаревших вещей. Проблема в том, что W3C-спецификации — это лишь одна сторона медали. Начиная с этой версии HTML, разработчики и производители браузеров могут выбирать между двумя разновидностями одного и того же языка разметки: спецификациями, разработанными консорциумом W3C, и тех, что разработаны WHATWG.
По большей части эти спецификации одинаковы или очень похожи, но, с годами между ними возникает всё больше и больше различий. Стоит ли вам беспокоиться об этом? В большинстве случаев не стоит, потому что либо они мало что изменят для вас и ваших проектов, либо разработчики браузеров будут поддерживать оба стандарта. Однако, в краткосрочной перспективе другие различия могут иметь важное значения для вас, т.к. они влияют на реализацию нововведения. У каждого разработчика браузера есть свой собственный взгляд на то, какой спецификации следовать. Например, Дэвид Бэрон из Mozilla недавно заявил:
Если HTML-спецификации W3C и WHATWG различаются, то мы стараемся следовать спецификации WHATWG.
В этой статье мы пройдёмся по некоторым различиям между спецификациями W3C и WHATWG, и в конце каждого раздела я выскажу свою точку зрения. Эта статья не претендует на роль исчерпывающего списка различий, но ее должно хватить, чтобы вникнуть в эту проблему.
«HTML5» против «Живого стандарта HTML»
Давайте начнём нашу дискуссию о различиях с простой темы: название стандарта. Версия спецификации WHATWG в начале 2011 года была переименована в «HTML», отбросив цифру «5» в конце названия. Затем в дальнейшем она была переименована в «Живой стандарт HTML», чтобы указать на то, что впредь она будет находиться в постоянной разработке, не ссылаясь на какой-то определённый номер версии.
W3C-спецификации, напротив, всё ещё используют номера версии, как я упоминал в начале этой статьи — последняя стабильная версия — «5», соответственно «HTML5». Как следствие этого шага, консорциум теперь активно развивает новую версию стандарта, известную как «HTML5.1». В HTML5.1 обсуждаются некоторые элементы и атрибуты, которые не попали в HTML5, например, элемент dialog и новые типы input — month и week .
Моё мнение
Я думаю, что нынешний мир действительно отличается от ранних 2000-х, потому что технологии развиваются в еще более бешеном темпе, особенно в вебе. Так что есть основания чувствовать непрерывность, отбросив все номера версий. Однако не каждый браузер обновляется автоматически (широко используется термин «вечнозелёный браузер»), и периодичность выхода новых версий у разных браузеров разная, поэтому всё ещё имеет смысл привязать набор возможностей к одной или нескольким версиям браузеров.
Я считаю, что до тех пор, пока каждый браузер не примет политику быстрых релизов и автообновление, наличие версии позволит разработчикам лучше планировать свою работу. Не с целью создания сайтов, определяющих версию браузера, чтобы подключить ту или иную функцию (для этого лучше воспользоваться подходом определения реально поддерживаемых браузером функций), а потому, что для конкретной версии браузера мы можем получить статистику ее использования. С помощью таких статистик можно оценить, пора ли уже включать определенную функцию в свой проект. Да, полифилы и «заплатки» могут помочь, но нужно же учесть, насколько вы готовы утяжелить свой сайт?
Элемент main
Элемент main — один из последних элементов, добавленных в спецификации, и его значение может быть разным в зависимости от версии. Спецификация W3C описывает его, как главное содержимое страницы — содержимое, которое описывает основную тему страницы или центральную функциональность приложения. Спецификация также утверждает, что документ не должен содержать более одного элемента main и что элемент main должен быть привязан к ARIA role=»main» или к эквиваленту в API вспомогательных технологий.
Простой пример использования, основанного на этой спецификации, выглядит так:
Main title
Main title
This is the content of this section
Спецификации WHATWG не закрепляют никакого семантического значения за элементом main и описывают его как контейнер для основного содержимого другого элемента. Если вы придерживаетесь спецификации WHATWG, то вы не ограничены в количестве используемых элементов main . Следовательно, если у вас на странице есть несколько элементов article , вы могли бы разметить содержимое каждого article элементом main .
Пример использования, основанного на спецификации WHATWG, может выглядеть так:
Main title
Main title
This is the content of this section
Заметьте, что в вышеприведённом коде я использовал элемент main дважды.
Моё мнение
В отношении элемента main я за W3C, потому что сомневаюсь, что у людей есть потребность в нескольких основных областях в документе. Кроме того, я помню, что Стив Фолкнер (редактор спецификаций W3C) в почтовой рассылке несколько раз призывал Йена Хиксона (редактора спецификаций WHATWG) показать ему данные, которые доказали бы необходимость в использовании нескольких главных областей. Результат всегда был один и тот же — во всех случаях редактор WHATWG не мог предоставить такие данные.
Элемент hgroup
Элемент hgroup предназначен для группировки набора из одного или более элементов h1-h6 , что полезно, чтобы сгруппировать заголовок раздела и сопутствующий подзаголовок.
Этот элемент был введён для лёгкого создания подзаголовков, и чтобы решить важную проблему с алгоритмом структуры документа. Фактически, при группировке нескольких заголовочных элементов в hgroup , структурный алгоритм должен был, по задумке, скрыть всё кроме заголовка самого верхнего уровня в группе из полученной структуры документа.
Пример, показанный ниже, взят из моей статьи «5 устаревших вещей в HTML5»
5 deprecated features of HTML5
Sometimes specifications are changed and you need to refactor your code
In this article we'll discuss.
В апреле 2013 года этот элемент был удалён из спецификации W3C из-за отсутствия реализации, примеров реального использования, а также способствовал плохому стилю разметки. Напротив, спецификация WHATWG всё ещё включает hgroup .
Моё мнение
Как было указано в цитируемой статье, я был фанатом этого элемента, но перестал его использовать по двум причинам. Во-первых, из-за того, что я в основном являюсь сторонником спецификации W3C. А во-вторых, я тоже заметил, что браузеры не очень заинтересованы в его реализации.
API веб-уведомлений
API Веб-уведомления определяется, как API для уведомлений конечного пользователя. Уведомление позволяет оповещать пользователя вне контекста веб-страницы, например, о таком событии, как передача электронной почты. С помощью этого API можно предоставить уведомление вашим пользователям о том, что они получили электронное письмо, или уведомить их в случае, если произошло событие, на которое им следует обратить внимание. Как конкретные примеры можно привести, если кто-то упоминает пользователя в твиттере или отправляет фотографию с вами на Facebook или Google+.
Простой пример использования этого API показан ниже:
Notification.requestPermission(function() < var notification = new Notification('Email received', < body: 'You have a total of 3 unread emails' >); notification.onshow = function() < console.log('Notification shown'); >; >);
API веб-уведомлений описаны в обеих спецификациях, как в W3C, так и в WHATWG, но но между двумя версиями есть некоторые различия. В частности в спецификации WHATWG отсутствуют события onclose и onshow . Таким образом, W3C-спецификации определяют четыре события ( onclick , onclose , onerror и onshow ), а спецификации WHATWG только два ( onclick и onerror ).
Если у вас есть желание более подробно изучить различия между версиями этого API и узнать, какова его поддержка в основных браузерах, то вы можете посмотреть мою статью «Состояние API Веб-уведомления».
Моё мнение
Различий между спецификациями не так много, но они влияют на то, как вы можете решать задачи. В данном случае я также поддерживаю спецификации W3C, так как думаю, что могут возникнуть случаи когда нужно совершать действия по событию close, что невозможно, если следовать спецификациям WHATWG.
Заключение
В этой статье мы обсудили несколько самых важных различий между спецификациями W3C и WHATWG. Как вы видите, учитывая количество элементов и API, определённых в спецификациях, различий между ними пока не так уж много. Учитывая это, я не беспокоюсь о будущем, так как уверен, что, в конце концов, спецификации будут просто соответствовать действительности. Это означает, что независимо от того, что было указано обеими группами при появлении функции, браузеры и разработчики в силах поспособствовать успеху той или иной версии. Таким образом, браузеры и разработчики — игроки, которые решают, какая спецификация для них «выигрышная» путём её реализации или принятия. Так что для каждой спорной функции «проигравшая» группа в конечном итоге адаптирует спецификации в соответствии с реальностью.
Под занавес стоит отметить, что в случае, если вы захотите открыть для себя ещё несколько различий, то можете посмотреть их на странице «Различия между спецификациями W3C HTML5.1 и WHATWG LS» на W3C Wiki.
P.S. Это тоже может быть интересно:
Если вам понравилась статья, поделитесь ей!
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
License
whatwg/html
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
This repository hosts the HTML Standard.
We are committed to providing a friendly, safe and welcoming environment for all. Please read and respect the WHATWG Code of Conduct.
We appreciate all contributions, see the guidelines for contributing for details, including information on how to build HTML output from the source file so you can preview your changes locally.
Tests are in the html/ directory of the web-platform-tests repository.
As the source file is too large for GitHub’s blame utility, use blame for source on searchfox instead.
Взгляд в HTML6
23.07.2015
804
Введение
HTML – простой язык веб-разработки, продолжающий развиваться и обновляться. Сейчас идет работа над шестой версией языка. HTML5, текущая версия HTML, считается одним из самых популярных релизов по сравнению с предыдущими версиями HTML.
Обзор HTML5
В HTML5 появились очень интересные функции, например, поддержка аудио и видео, а также возможность создания оптимизированных для смартфонов сайтов. Кроме того, он освободил разработчиков от использования атрибута type в тегах
и. Он позволил систематизировать контент, используя новые метки
,,и т. д. Однако, HTML5 все еще находится на стадии развития и не является законченным продуктом.
Понимание концепции HTML6
Представьте себе использование тега для присвоения логотипа веб-странице или тега . Было бы удобно, если бы Вы могли использовать тег
без использования нескольких идентификаторов, а сразу использовать или напрямую. Проще говоря, вместо использования
HTML6 – шестой релиз HTML с такой же структурой пространств имен, как у XML. Пространства имен XML помогут Вам использовать тот же тег, не конфликтуя с любым другим тегом. Например, тег, используемый в XHTML DOCTYPE:
В HTML6 можно будет отходить от определенных спецификаций тегов и использовать теги более понятные и удобные для разработчика.
Пример HTML6