12k
All articles

Проект Interop: подробное объяснение

Проект Interop координирует браузерных вендоров для устранения CSS и JavaScript-несовместимостей через Web Platform Tests и общие приоритеты.

OpenReplay Team
OpenReplay Team
Проект 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%+.

Что это значит для фронтенд-разработчиков

Когда функция попадает в цикл Interop, все участвующие команды браузеров работают над ней одновременно. Эта параллельная работа даёт два результата:

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

Практический результат: функции, которые когда-то требовали вендорных префиксов, полифиллов или обходных решений на JavaScript, становятся безопасными для нативного использования во всех основных браузерах в течение одного года.

Если вам интересен реальный статус отдельных функций платформы, панель Web Platform Status предоставляет кроссбраузерный обзор прогресса реализации.

Interop 2025, 2026 и далее

Проект продолжается как постоянная ежегодная инициатива. Interop 2025 и Interop 2026 продолжают расширять масштаб сотрудничества по браузерным стандартам с новыми областями фокусировки, номинируемыми в каждом цикле. Вы можете следить за текущим прогрессом на официальной панели Interop и отслеживать предстоящие предложения на GitHub.

Заключение

Проект Interop — это одна из самых практичных инициатив в разработке веб-платформы. Он не устранит все кроссбраузерные ошибки и не может заставить какого-либо производителя браузера что-либо делать — участие полностью добровольное. Но послужной список говорит сам за себя: скоординированный фокус последовательно сдвигает стрелку от несогласованного к надёжному быстрее, чем это когда-либо делали независимые усилия.

Если вы хотите знать, какие функции безопасны для использования без фолбэков, наблюдение за тем, что попадает в каждый цикл Interop, — хорошее место для начала.

Часто задаваемые вопросы

Как мне проверить, является ли конкретная функция частью текущего цикла Interop?

Посетите официальную панель Interop по адресу wpt.fyi/interop. Она перечисляет все области фокусировки на текущий год вместе с живыми показателями прохождения для каждого браузера. Вы также можете просмотреть GitHub-репозиторий web-platform-tests/interop, чтобы увидеть принятые и предложенные области фокусировки для предстоящих циклов.

Гарантирует ли нахождение функции в цикле Interop полную кроссбраузерную поддержку?

Нет. Interop — это добровольное обязательство, а не обязывающий контракт. Производители браузеров соглашаются отдать приоритет выбранным областям фокусировки, но сроки и полнота варьируются. Тем не менее, исторические данные показывают, что области фокусировки последовательно достигают более 95 процентов кроссбраузерной совместимости к концу каждого цикла.

Могу ли я подать предложение для будущей области фокусировки Interop?

Да. Предложения подаются через GitHub-репозиторий web-platform-tests/interop в течение каждого ежегодного периода номинации. Ваше предложение должно ссылаться на зрелую спецификацию на пути к стандартизации и иметь существующие Web Platform Tests. Участие сообщества приветствуется и играет реальную роль в формировании приоритетов каждого года.

Чем проект Interop отличается от Can I Use?

Can I Use — это справочный инструмент, который сообщает о текущей поддержке веб-функций браузерами. Проект Interop — это активное сотрудничество, в рамках которого производители браузеров обязуются исправить конкретные кроссбраузерные несогласованности в течение определённого года. Один документирует текущее состояние, в то время как другой работает над его изменением.

Open-source session replay

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.

Star on GitHub12k

We use cookies to improve your experience. By using our site, you accept cookies.