Проект Interop: подробное объяснение
Если вы когда-либо писали CSS, который отлично работал в Chrome, но ломался в Safari, или тестировали JavaScript API, который Firefox просто ещё не поддерживал, вы сталкивались с проблемой, для решения которой существует проект Interop.
Эта статья объясняет, что такое проект Interop, как он работает и почему он важен для вашей повседневной фронтенд-разработки.
Ключевые выводы
- Проект Interop — это ежегодная скоординированная инициатива между крупными производителями браузеров по исправлению несогласованных реализаций существующих веб-стандартов.
- Прогресс измеряется через набор тестов Web Platform Tests, при этом области фокусировки регулярно поднимаются с уровня менее 50% до более 95% кроссбраузерной совместимости в течение одного года.
- Функции, попадающие в цикл Interop, становятся безопасными для нативного использования во всех основных браузерах быстрее, чем при независимых усилиях производителей.
- Проект реализуется как постоянная ежегодная инициатива с новыми областями фокусировки, номинируемыми в каждом цикле.
Что такое проект Interop?
Краткое замечание о названии: Эта статья посвящена Web Platform Interoperability Project — совместной работе крупных производителей браузеров над стандартами. Он не имеет никакого отношения к interop.io — платформе для обеспечения совместимости настольных приложений, используемой в финансовой и корпоративной среде.
Проект Interop — это ежегодная скоординированная инициатива между Apple, Google, Microsoft, Mozilla и участниками веб-платформы, такими как Bocoup и Igalia. Его цель проста: выявить области, где браузеры реализуют существующие веб-стандарты несогласованно, а затем исправить их — совместно.
Interop не вводит новые API и не пишет новые спецификации. Он нацелен на функции, которые уже стандартизированы, но ведут себя по-разному в разных браузерах, и направляет все движки к согласованным, надёжным реализациям.
Откуда он появился
До появления Interop команды браузеров работали независимо. Один движок мог выпустить функцию, другой следовал за ним гораздо позже, а третий мог интерпретировать спецификацию иначе. Разработчикам приходилось писать обходные решения для всех трёх.
Инициатива была запущена в 2021 году как Compat 2021, фокусируясь на давних проблемах, таких как несогласованности Flexbox и ошибки CSS Grid. В 2022 году она была переименована в Interop и с тех пор проводится ежегодно, каждый год выбирая новый набор областей фокусировки, где кроссбраузерная совместимость всё ещё требует доработки.
Как работает проект Interop
Области фокусировки и процесс подачи предложений
Каждый год сообщество подаёт предложения в публичный GitHub-репозиторий. В 2024 году было подано более 96 кандидатов, что привело к 17 областям фокусировки на год, включая CSS nesting, декларативный Shadow DOM, Popover API, синтаксис относительных цветов и улучшения доступности.
Отбор — это не просто конкурс популярности. Предложение должно иметь зрелую спецификацию на пути к стандартизации и существующий набор Web Platform Tests, чтобы квалифицироваться. Функции со спецификациями, всё ещё находящимися в активной разработке, обычно не проходят отбор. Interop направлен на согласование реализаций, а не на продвижение нестандартизированных идей.
Измерение прогресса с помощью Web Platform Tests
Прогресс отслеживается с использованием набора тестов Web Platform Tests (WPT) — общей автоматизированной тестовой инфраструктуры с более чем 1,8 миллиона индивидуальных проверок. Каждый браузер запускается против одних и тех же тестов, а результаты публикуются на живой панели мониторинга.
Цифры рассказывают убедительную историю. В начале Interop 2024 показатель кроссбраузерного пересечения для областей фокусировки того года составлял 48%. К концу года браузеры в версиях для разработчиков достигали 95%+.
Discover how at OpenReplay.com.
Что это значит для фронтенд-разработчиков
Когда функция попадает в цикл Interop, все участвующие команды браузеров работают над ней одновременно. Эта параллельная работа даёт два результата:
- Ускоряет реализацию — вместо последовательного каскада, где каждый движок ждёт предыдущего, все три движутся одновременно.
- Улучшает качество спецификации — когда браузеры расходятся в результатах тестов, они выявляют неоднозначности в спецификации на ранней стадии, до того как несовместимое поведение станет укоренившимся.
Практический результат: функции, которые когда-то требовали вендорных префиксов, полифиллов или обходных решений на JavaScript, становятся безопасными для нативного использования во всех основных браузерах в течение одного года.
Если вам интересен реальный статус отдельных функций платформы, панель Web Platform Status предоставляет кроссбраузерный обзор прогресса реализации.
Interop 2025, 2026 и далее
Проект продолжается как постоянная ежегодная инициатива. Interop 2025 и Interop 2026 продолжают расширять масштаб сотрудничества по браузерным стандартам с новыми областями фокусировки, номинируемыми в каждом цикле. Вы можете следить за текущим прогрессом на официальной панели Interop и отслеживать предстоящие предложения на GitHub.
Заключение
Проект Interop — это одна из самых практичных инициатив в разработке веб-платформы. Он не устранит все кроссбраузерные ошибки и не может заставить какого-либо производителя браузера что-либо делать — участие полностью добровольное. Но послужной список говорит сам за себя: скоординированный фокус последовательно сдвигает стрелку от несогласованного к надёжному быстрее, чем это когда-либо делали независимые усилия.
Если вы хотите знать, какие функции безопасны для использования без фолбэков, наблюдение за тем, что попадает в каждый цикл Interop, — хорошее место для начала.
Часто задаваемые вопросы
Посетите официальную панель Interop по адресу wpt.fyi/interop. Она перечисляет все области фокусировки на текущий год вместе с живыми показателями прохождения для каждого браузера. Вы также можете просмотреть GitHub-репозиторий web-platform-tests/interop, чтобы увидеть принятые и предложенные области фокусировки для предстоящих циклов.
Нет. Interop — это добровольное обязательство, а не обязывающий контракт. Производители браузеров соглашаются отдать приоритет выбранным областям фокусировки, но сроки и полнота варьируются. Тем не менее, исторические данные показывают, что области фокусировки последовательно достигают более 95 процентов кроссбраузерной совместимости к концу каждого цикла.
Да. Предложения подаются через GitHub-репозиторий web-platform-tests/interop в течение каждого ежегодного периода номинации. Ваше предложение должно ссылаться на зрелую спецификацию на пути к стандартизации и иметь существующие Web Platform Tests. Участие сообщества приветствуется и играет реальную роль в формировании приоритетов каждого года.
Can I Use — это справочный инструмент, который сообщает о текущей поддержке веб-функций браузерами. Проект Interop — это активное сотрудничество, в рамках которого производители браузеров обязуются исправить конкретные кроссбраузерные несогласованности в течение определённого года. Один документирует текущее состояние, в то время как другой работает над его изменением.
Gain control over your UX
See how users are using your site as if you were sitting next to them, learn and iterate faster with OpenReplay. — the open-source session replay tool for developers. Self-host it in minutes, and have complete control over your customer data. Check our GitHub repo and join the thousands of developers in our community.