Спецификация W3C или WHATWG — журнал «Доктайп»
Есть две спецификации HTML: W3C и WHATWG, какой из них верить? — спрашивают наши зрители Екатерина и Дмитрий. Верьте той, которая больше нравится, но не забывайте сверяться с браузерами. Давайте разберёмся.
Спецификация — это главный источник знаний: как для браузеров, так и для разрабочиков. Браузеры обрабатывают код по спеке, разработчики пишут код по спеке — и у нас всё вместе хорошо работает. Это называется «веб-стандарты» и вы не хотите знать, насколько всё было плохо до их широкого признания.
W3C и WHATWG
W3C — это консорциум всемирной сети, такая некоммерческая организация, в рамках которой разрабатывают технологии, на которых работает веб. WHATWG — это независимая рабочая группа по технологиям гипертекстовых веб-приложений, которую собрали в рамках W3C в середине 2000-х. Собрали не просто так, а по делу.
Когда-то в W3C решили отказаться от спецификации HTML 4 и начать разрабатывать XHTML, более строгую, формальную и, как потом стало ясно — слишком оторванную от реальности. В ответ на это собралась WHATWG, в которую вошли представители браузеров. Благодаря этому появилась спецификация HTML 5 со множеством по-настоящему полезных вещей. От XHTML осталась только привычка закрывать теги и кавычить атрибуты.
После выхода HTML 5 из рук WHATWG, спецификация пошла по формальному пути к рекомендации W3C и достигла её в 2014 году. Но по дороге что-то пошло не так и между WHATWG и W3C возникли разногласия. Из-за этого начали появляться различия между версиями. В 2011 году WHATWG вообще отказалась от нумерации HTML и начала разрабатывать спецификацию как живой стандарт, в духе вечнозелёных браузеров.
В итоге, сейчас у нас есть две спецификации: рекомендация HTML 5.1 по W3C и живой стандарт HTML по WHATWG. И у каждой — свои цели: HTML5 делает снимки реальности, нумерует их и выпускает рекомендации. Это отвечает на вопрос разработчиков: что уже есть в браузерах? WHATWG, напротив, старается опередить реальность, предложить что-то новое и предсказать изменения. Это уже ближе к задачам браузеров.
Так в чём же противоречия?
Например, W3C рекомендует иметь всего один элемент main на странице, приравнивая его к ARIA-роли main. Это помогает скринридерам находить самое главное на странице. WHATWG допускает main
в любом структурном элементе, как главную его часть, на манер header
и footer
.
<body> <header> <main> <article> <h2> <footer> <footer> <body> <header> <main> <article> <h2> <main> <footer> <footer>
Из спецификации W3C убрали элемент hgroup
, объясняя это отсутствием реализаций в браузерах, слабыми примерами использования и потенциальными проблемами. Вместо него рекомендуют обычный header
и параграф для подзаголовка. В версии WHATWG элемент hgroup
на месте — раз уж добавили, то чего убирать.
<article> <header> <h2>Заголовок</h2> <p>Подзаголовок</p> </header> <p>Текст</p> </article>
Спецификация W3C также приводит расширенные примеры, рекомендации к использованию и развивает семантику элементов. HTML 5 поясняет важность уровней заголовков, рекомендует figcaption
вместо атрибута title
для картинок, объясняет как использовать alt
, осуждает, но разрешает таблицы для раскладки, если есть role="presentation"
и так далее.
Вы наверное уже поняли, что мне версия W3C нравится больше. Прочная связь со спецификациями по доступности, большее количество примеров и недавний переезд на Гитхаб — очень подкупают. По-моему, у WHATWG просто отлично получаются другие спецификации: DOM, Canvas, Fetch, URL и многие другие.
Плохо, что у нас есть две спецификации вместо одной?
Да. Так почему не объединить их в одну? М-м, это вряд ли: слишком уж разные подходы к разработке. Но знаете, всё не так плохо: это просто две площадки для дискуссий со своими правилами, куда приходят представители всех браузеров, комитетов и групп, чтобы так или иначе развивать веб. И вы приходите — всё на Гитхабе.
Какой спецификации верить? Слепо — ни одной, ориентируйтесь на реализации в браузерах и на практическую ценность. Если вы о ней не знаете, не значит, что её нет. Выберите ту спеку, которая больше нравится и обращайтесь к ней почаще — они написаны для вас.
- W3C vs. WHATWG HTML5 Specs
- HTML Working Draft
- HTML Living Standard
- WHATWG Specs
«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.
ТелеграмПодкастБесплатные учебники
css — валидатор W3C, CSS3 и Bootstrap
спросил
Изменено 4 года, 8 месяцев назад
Просмотрено 18 тысяч раз
У меня есть сайт, использующий платформу Twitter Bootstrap, которая отображается без ошибок во всех браузерах. Однако, когда я вставляю основной URL нашего сайта в валидатор W3C, он выдает 1465 ошибок, большинство из которых являются ошибками синтаксического анализа.
Несколько примеров:
Ошибка синтаксического анализа {*zoom:1; Ошибка значения: background-color Слишком много значений или значения не распознаются: #3f6998 \000009
Я понимаю, что * и \000009 специфичны для IE, поэтому важно, чтобы они не прошли проверку?
Есть ли валидатор, который учитывает это?
- css
- twitter-bootstrap
- w3c-валидация
Вы всегда будете получать ошибку проверки CSS при использовании CSS3. Большинство стилей (css3) на данный момент недействительны в соответствии с правилами w3. Вы можете просто проигнорировать эти ошибки и двигаться дальше. Просто убедитесь, что у вас нет других проблем с проверкой, кроме тех, что связаны со стилями css3. Если да, то все в порядке..
Обновление:
Вы можете попробовать что-то вроде этого:
http://jigsaw. w3.org/css-validator/validator?profile=css3&uri=PATH_TO_YOUR_WEBSITE
Например:
http://jigsaw.w3.org/css-validator/validator?profile=css3&uri=http://stackoverflow.com
Тем не менее, он будет показывать много ошибок. Валидаторы CSS3 еще не реализованы, что приемлемо.
[Обновлено]
URL: https://validator.w3.org/
Используйте официальный валидатор.
4Вот объяснение Bootstrap ошибок проверки:
https://getbootstrap.com/docs/getting-started/#support-validators
Чтобы обеспечить наилучшие возможности для старых браузеров с ошибками, Bootstrap использует хаки браузера CSS в нескольких местах, чтобы нацелить специальный CSS на определенные версии браузера, чтобы обойти ошибки в самих браузерах. Эти хаки по понятным причинам заставляют валидаторов CSS жаловаться на то, что они недействительны. В нескольких местах мы также используем передовые функции CSS, которые еще не полностью стандартизированы, но они используются исключительно для прогрессивного улучшения. Эти предупреждения проверки не имеют значения на практике, поскольку нехакерская часть нашего CSS полностью проверяется, а хакерская часть не мешает правильному функционированию нехакерской части, поэтому мы намеренно игнорируем эти конкретные предупреждения.
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google Зарегистрироваться через Facebook Зарегистрируйтесь, используя электронную почту и парольОпубликовать как гость
Электронная почтаТребуется, но не отображается
Опубликовать как гость
Электронная почтаТребуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.
Спецификации CSS и W3C — Видеоруководство по CSS
Из курса: CSS Essential Training
Спецификации CSS и W3C
“— Консорциум World Wide Web, или сокращенно W3C, представляет собой международное сообщество, состоящее из организаций-членов, штатных сотрудников и общественности. Вместе они разрабатывают веб-стандарты и рекомендации, включая технические спецификации для CSS, что является сокращением от каскадных таблиц стилей. Когда я начал изучать CSS, я помню, как подумал, что собираюсь прочитать всю спецификацию.
Что ж, оказалось, что чтение рекомендаций W3C немного пугает, потому что они содержат много жаргона и терминов, с которыми я не был знаком, а также довольно обширны. Так что даже в наши дни я в основном обращаюсь к документации W3C, когда мне нужно перепроверить некоторую информацию прямо из источника. Но поскольку W3C отвечает за установление этих правил, вы, вероятно, в какой-то момент остановитесь на них. Итак, давайте рассмотрим их процесс публикации документации, чтобы лучше понять, откуда берутся спецификации CSS и как оставаться в курсе и обновляться. Первые две версии CSS, уровень 1 и уровень 2, публиковали всю спецификацию как один документ. После уровня 2 W3C решил разделить спецификацию на независимые модули, чтобы обеспечить более быстрое постепенное изменение. Каждый модуль может повышаться независимо. Некоторые из них могут быть отмечены как уровень 3, если это обновление CSS2. Новые модули, такие как flexbox, начинаются с уровня 1. Есть и другие, отмеченные уровнем 4. Таким образом, эти уровни не имеют никакого отношения к версии CSS.