Back

Interop 项目详解

Interop 项目详解

如果你曾经写过在 Chrome 中运行完美但在 Safari 中却出现问题的 CSS,或者测试过 Firefox 尚未支持的 JavaScript API,那么你就已经体验过 Interop 项目所要解决的问题。

本文将解释什么是 Interop 项目、它如何运作,以及为什么它对你的日常前端工作很重要。

核心要点

  • Interop 项目是主流浏览器厂商之间每年一次的协调努力,旨在修复现有 Web 标准实现中的不一致性。
  • 进展通过 Web Platform Tests 测试套件来衡量,重点关注领域通常在一年内从低于 50% 的跨浏览器兼容性提升到超过 95%。
  • 进入 Interop 周期的特性能够比通过浏览器厂商独立努力更快地在所有主流浏览器中安全使用。
  • 该项目作为持续的年度计划运行,每个周期都会提名新的重点关注领域。

什么是 Interop 项目?

关于命名的说明: 本文介绍的是 Web Platform Interoperability Project(Web 平台互操作性项目),这是主流浏览器厂商之间的浏览器标准协作项目。它与 interop.io 无关,后者是用于金融和企业软件环境的桌面互操作性平台。

Interop 项目是 Apple、Google、Microsoft、Mozilla 以及 Bocoup 和 Igalia 等 Web 平台贡献者之间每年一次的协调努力。其目标很直接:识别浏览器在实现现有 Web 标准时存在不一致的领域,然后共同修复它们。

Interop 不引入新的 API 或编写新的规范。它针对那些已经标准化但在不同浏览器中表现不同的特性,推动所有引擎朝着一致、可靠的实现方向发展。

项目起源

在 Interop 项目出现之前,浏览器团队各自独立工作。一个引擎可能会发布某个特性,另一个会晚很多才跟进,而第三个可能会对规范有不同的解读。开发者只能为这三种情况编写各种变通方案。

该计划于 2021 年以 Compat 2021 的名义启动,重点关注长期存在的痛点,如 Flexbox 不一致性和 CSS Grid 错误。2022 年更名为 Interop,此后每年运行一次,每年都会选择一组新的重点关注领域,解决跨浏览器兼容性仍需改进的问题。

Interop 项目如何运作

重点关注领域和提案流程

每年,社区会向公开的 GitHub 仓库 提交提案。2024 年,共提交了 96 个以上的候选提案,最终确定了 17 个年度重点关注领域,包括 CSS 嵌套、声明式 Shadow DOM、Popover API、相对颜色语法和无障碍改进等。

选择过程不仅仅是人气竞赛。提案需要有成熟的标准规范和现有的 Web Platform Tests 才有资格入选。规范仍在积极开发中的特性通常不会入选。Interop 关注的是对齐实现,而不是推动未标准化的想法通过审核。

使用 Web Platform Tests 衡量进展

进展通过 Web Platform Tests (WPT) 测试套件进行跟踪,这是一个共享的自动化测试基础设施,包含超过 180 万个独立检查项。每个浏览器都针对相同的测试运行,分数会发布在实时仪表板上。

数据讲述了一个令人信服的故事。在 Interop 2024 开始时,该年度重点关注领域的跨浏览器交集得分为 48%。到年底,开发者渠道的浏览器达到了 95%+

这对前端开发者意味着什么

当某个特性进入 Interop 周期时,所有参与的浏览器团队都在同时处理它。这种并行努力带来两个好处:

  • 加快实现速度 — 不是每个引擎等待前一个引擎完成的串行瀑布式流程,而是所有引擎同时推进。
  • 提高规范质量 — 当浏览器在测试结果上存在分歧时,它们会在不兼容行为根深蒂固之前,尽早发现规范中的歧义。

实际结果是:曾经需要浏览器前缀、polyfill 或 JavaScript 变通方案的特性,在一年内就能在所有主流浏览器中安全地原生使用。

如果你对各个平台特性的实际状态感兴趣,Web Platform Status 仪表板 提供了实现进展的跨浏览器视图。

Interop 2025、2026 及未来

该项目作为持续的年度计划继续进行。Interop 2025Interop 2026 继续扩大浏览器标准协作的范围,每个周期都会提名新的重点关注领域。你可以在 官方 Interop 仪表板 上关注当前进展,并在 GitHub 上跟踪即将到来的提案。

结论

Interop 项目是 Web 平台开发中最实用的举措之一。它不会消除所有跨浏览器错误,也不能强制任何浏览器厂商做任何事情 — 参与完全是自愿的。但历史记录本身就说明了问题:协调的关注始终如一地将指标从不一致推向可靠,速度比独立努力快得多。

如果你想知道哪些特性可以安全使用而无需回退方案,关注每个 Interop 周期中的特性是一个很好的起点。

常见问题

访问官方 Interop 仪表板 wpt.fyi/interop。它列出了当年的每个重点关注领域以及每个浏览器的实时通过率。你还可以浏览 web-platform-tests/interop GitHub 仓库,查看即将到来周期的已接受和提议的重点关注领域。

不保证。Interop 是自愿承诺,而非有约束力的合同。浏览器厂商同意优先处理选定的重点关注领域,但时间表和完整性各不相同。也就是说,历史数据显示,重点关注领域在每个周期结束时通常会达到 95% 以上的跨浏览器兼容性。

可以。提案在每年的提名期间通过 web-platform-tests/interop GitHub 仓库提交。你的提案必须引用成熟的标准规范,并具有现有的 Web Platform Tests。鼓励社区参与,这在塑造每年的优先事项方面发挥着真正的作用。

Can I Use 是一个参考工具,报告 Web 特性的当前浏览器支持情况。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.

OpenReplay