WPT — Единый полигон для браузерных войн

22 ноя 2025
6,146
3,938
402
2 дня

Знакомая ситуация? Вы потратили неделю на верстку идеального интерфейса. В Chrome всё выглядит пиксель в пиксель как на макете, в Firefox — тоже почти идеально. Вы с облегчением выкатываете задачу, но тут прилетает баг-репорт: «в Safari всё поехало». Начинается головная боль, поиск костылей и проклятия в адрес «особенного» браузера.

А что, если бы существовал способ заставить всех производителей браузеров договариваться и реализовывать веб-стандарты одинаково? Способ есть, и имя ему — Web Platform Tests (WPT). Это не просто очередной репозиторий на GitHub, а настоящий краеугольный камень современного веба, о котором должен знать каждый разработчик.

Что такое Web Platform Tests?

Если коротко, WPT — это гигантский набор тестов, который проверяет, насколько браузер соответствует веб-стандартам от W3C и WHATWG. Представьте себе единый государственный экзамен для браузеров. Чтобы получить «аттестат зрелости», движок браузера (будь то Blink, Gecko или WebKit) должен успешно пройти тысячи тестов, покрывающих всё: от отрисовки CSS-свойств до тонкостей работы JavaScript API.

Taskcluster CI Status documentation manifest

Этот проект — результат совместной работы всех ключевых игроков: Google, Mozilla, Apple, Microsoft и сообщества. Именно благодаря ему мы видим всё меньше межбраузерных войн и можем с большей уверенностью использовать новые фичи HTML, CSS и JS.

Реклама

Зачем это нужно мне, веб-разработчику?

«Хорошо, — скажете вы, — это полезно для разработчиков браузеров, но какая мне от этого польза?» Огромная!

  1. Понять, кто виноват. Когда что-то работает в одном браузере и не работает в другом, WPT помогает найти первопричину. Вы можете зайти на wpt.fyi, своеобразный «табель успеваемости» браузеров, и посмотреть, проходит ли конкретный тест на поддержку нужной вам фичи в разных движках. Это мощный аргумент в споре и отличный способ понять, баг в вашем коде или в браузере.

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

  3. Внести свой вклад. Нашли странное поведение или явный баг в реализации стандарта? Лучший способ помочь вебу — это не просто написать гневный твит, а... написать тест! README проекта прямо призывает: «Save the Web, Write Some Tests!». Ваш тест, добавленный в WPT, станет той самой лакмусовой бумажкой, на которую будут ориентироваться разработчики всех браузеров.

Как это работает на практике?

WPT — это не просто архив. Это целая экосистема инструментов для работы с тестами.

Командная строка wpt

После клонирования репозитория в вашем распоряжении оказывается мощная утилита wpt. Вот несколько ключевых команд:

  • wpt serve — запускает локальный HTTP-сервер для прогона тестов.
  • wpt run <browser> <test_file> — самая интересная команда. Она запускает указанный тест в выбранном браузере (например, wpt run chrome /css/selectors/pseudo-classes/focus.html) и показывает результат.
  • wpt lint — проверяет ваши тесты на соответствие стандартам оформления.

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

Живая демонстрация на wpt.live

Не хотите ничего устанавливать? Не проблема. Проект имеет публичную площадку — wpt.live. Вы можете зайти на этот сайт с любого устройства и запустить тесты прямо в своем браузере. Это самый быстрый способ проверить, как ваш текущий браузер справляется с тем или иным аспектом веб-стандартов.

Как помочь проекту?

Разработчики WPT максимально упростили процесс контрибьюции. Весь процесс сводится к стандартной схеме работы с Open Source на GitHub:

  1. Делаете форк репозитория.
  2. Создаете новую ветку для своих изменений (git checkout -b my-awesome-test).
  3. Пишете тест (или исправляете существующий). Тесты обычно представляют собой простые HTML-файлы с JavaScript-ассертами.
  4. Проверяете свой код с помощью ./wpt lint.
  5. Отправляете Pull Request.

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

Вывод: не просто репозиторий, а фундамент

Web Platform Tests — это один из тех невидимых героев, на которых держится современный интернет. Он редко попадает в заголовки новостей, но его влияние на нашу повседневную работу огромно.

Кому стоит обратить внимание на WPT?

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

В следующий раз, когда вы столкнетесь с очередным «багом только в Safari», не спешите писать CSS-хак. Загляните в репозиторий web-platform-tests/wpt — возможно, вы не только найдете ответ, но и поможете сделать так, чтобы эта проблема больше ни у кого не возникала.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.