HTML — это живой стандарт, а не пыльная книга. И вот его дом на GitHub
Каждый раз, когда я прохожу собеседование на позицию фронтенд-разработчика, почти всегда всплывает вопрос: «Чем семантический тег отличается от <div>?». Мы привыкли думать об HTML как о чём-то статичном, наборе правил, которые мы выучили однажды и используем по сей день. HTML4, XHTML, потом громкий релиз HTML5... кажется, что это вехи, высеченные в камне.
А что, если я скажу вам, что эра версий HTML закончилась? Что стандарт, по которому живут и дышат современные браузеры, — это не заархивированный документ, а живой, постоянно меняющийся проект с тысячами коммитов и открытых задач? Добро пожаловать в репозиторий whatwg/html — место, где на самом деле рождается веб.
Что это за репозиторий и почему он важен?
На первый взгляд, репозиторий whatwg/html может показаться скучным. В нём нет красивого кода на JavaScript или зрелищных демонстраций. Вместо этого — гигантский файл source, содержащий... сам стандарт HTML.
Да, вы не ослышались. Это не библиотека, не фреймворк, а исходный код спецификации, которую реализуют разработчики Chrome, Firefox, Safari и Edge. За этим репозиторием стоит WHATWG (Web Hypertext Application Technology Working Group) — сообщество, созданное представителями Apple, Mozilla и Opera в 2004 году, чтобы развивать веб-стандарты с фокусом на реальные потребности разработчиков и пользователей, а не на абстрактные правила.
Именно WHATWG сегодня отвечает за развитие HTML, и их подход кардинально отличается от старого, «версионного».
Концепция «живого стандарта»
Главная идея, которую воплощает этот репозиторий, — это Living Standard. Вместо того чтобы годами копить изменения для выпуска новой большой версии (как было с HTML5), стандарт обновляется постоянно. Мелкие исправления, уточнения и даже добавление новых возможностей происходят по мере необходимости.
Это как сравнивать выпуск программ на дисках раз в год с моделью непрерывной поставки (Continuous Delivery) в облачных сервисах. Веб не стоит на месте, и его основной язык тоже. Этот репозиторий — сердце процесса. Взгляните на статистику: почти 9000 звезд, более 3000 форков и, что самое интересное, свыше 2300 открытых issues. Это не просто документ, это активный проект в разработке.
Зачем это нужно обычному разработчику?
«Хорошо, — скажете вы, — это интересно для разработчиков браузеров, но какая мне от этого польза?» Огромная. Вот несколько причин, почему этот репозиторий стоит добавить в закладки.
1. Единственный источник правды
Сколько раз вы спорили с коллегой о том, можно ли вкладывать <div> в <p> или как именно должен работать атрибут loading="lazy"? В интернете полно статей, но многие из них устарели или содержат неточности.
Репозиторий whatwg/html и его скомпилированная версия на html.spec.whatwg.org — это первоисточник. Здесь вы можете найти точное, актуальное определение любого элемента, атрибута или API. Это самый надежный способ разрешить любой спор и углубить свои знания.
2. Возможность заглянуть в будущее веба
Хотите знать, какие новые теги или JavaScript API появятся в браузерах завтра? Следите за pull request и issues в этом репозитории. Именно здесь обсуждаются и принимаются решения, которые формируют будущее веба.
Например, вы можете почитать дискуссии о новых элементах, таких как <dialog> или <search>, и понять логику, стоящую за их созданием. Это дает невероятное преимущество: вы начинаете понимать не только как что-то работает, но и почему оно работает именно так.
3. Шанс повлиять на стандарт
Самое вдохновляющее — это то, что HTML стал по-настоящему открытым проектом. Нашли опечатку в спецификации? Считаете, что описание какого-то атрибута можно сделать понятнее? Вы можете открыть issue или даже предложить pull request с исправлением.
Конечно, предложение нового тега — это сложный процесс, требующий долгих обсуждений. Но исправить неточность в документации или предложить более удачный пример — это вполне реально. Ваш коммит может помочь тысячам разработчиков по всему миру лучше понять веб. Разве это не круто?
Как устроен репозиторий?
Несмотря на масштаб, структура проекта довольно проста:
source: Тот самый главный файл, содержащий всю спецификацию в специальном формате. Он настолько большой, что GitHub даже не может отобразить его историю изменений (blame), и для этого приходится использовать внешние инструменты.CONTRIBUTING.md: Руководство для тех, кто хочет внести свой вклад. Здесь описан весь процесс: от форка репозитория до сборки HTML-версии стандарта для локального предпросмотра.- Тесты: Интересно, что тесты, проверяющие соответствие браузеров стандарту, находятся в отдельном огромном репозитории — web-platform-tests. Это общая база тестов для всего веба, и она заслуживает отдельной статьи.
Практическое применение
Итак, как можно использовать этот репозиторий в повседневной работе?
- Для самообразования: Вместо того чтобы читать очередную статью о семантике, откройте спецификацию и прочитайте раздел, посвященный элементу
<article>или<section>. Это может быть сложнее, но даст гораздо более глубокое понимание. - При решении сложных кейсов: Столкнулись с непонятным поведением браузера при работе с формами или Web Workers? Загляните в соответствующий раздел стандарта. Возможно, вы обнаружите, что браузер ведет себя в точном соответствии со спецификацией, а ваше представление о его работе было неверным.
- Для аргументации в спорах: В следующий раз, когда начнется холивар о «правильном» HTML, просто отправьте ссылку на нужный параграф в
html.spec.whatwg.org. Против такого аргумента устоять сложно.
Репозиторий whatwg/html — это гораздо больше, чем просто файл с текстом. Это символ современного подхода к развитию веба: открытого, совместного и непрерывного. Он превращает HTML из застывшего набора правил в живую, дышащую технологию, в развитии которой может поучаствовать каждый из нас.
Так что в следующий раз, когда вы напишете <!DOCTYPE html>, вспомните, что за этой простой строчкой стоит огромная работа тысяч людей и один удивительный репозиторий на GitHub. Загляните в него — и, возможно, вы больше никогда не будете смотреть на HTML прежними глазами.
