Interop Project の解説
Chrome では完璧に動作した CSS が Safari では崩れたり、Firefox がまだサポートしていない JavaScript API をテストしたりした経験があるなら、それこそが Interop Project が解決しようとしている問題です。
この記事では、Interop Project とは何か、どのように機能するのか、そして日々のフロントエンド開発にとってなぜ重要なのかを解説します。
重要なポイント
- Interop Project は、主要なブラウザベンダーが既存のウェブ標準の一貫性のない実装を修正するために、毎年協調して取り組む活動です。
- 進捗は Web Platform Tests スイートを通じて測定され、重点分野は通常、1年以内に50%未満から95%以上のクロスブラウザ互換性へと向上します。
- Interop サイクルに含まれる機能は、各ベンダーが独立して取り組む場合よりも速く、すべての主要ブラウザでネイティブに安全に使用できるようになります。
- このプロジェクトは継続的な年次イニシアチブとして運営され、各サイクルで新しい重点分野が選定されます。
Interop Project とは?
名称に関する注意: この記事で取り上げるのは、主要なブラウザベンダー間のブラウザ標準協力である Web Platform Interoperability Project です。金融や企業ソフトウェア環境で使用されるデスクトップ相互運用プラットフォームである interop.io とは無関係です。
Interop Project は、Apple、Google、Microsoft、Mozilla、そして Bocoup や Igalia などのウェブプラットフォーム貢献者による、毎年の協調的な取り組みです。その目標は明確です:ブラウザが既存のウェブ標準を一貫性なく実装している分野を特定し、それらを一緒に修正することです。
Interop は新しい API を導入したり、新しい仕様を書いたりするものではありません。すでに標準化されているものの、ブラウザ間で動作が異なる機能を対象とし、すべてのエンジンを一貫性のある信頼できる実装へと導きます。
誕生の経緯
Interop が存在する前は、ブラウザチームは独立して作業していました。あるエンジンが機能を実装しても、別のエンジンははるかに遅れてフォローし、3つ目のエンジンは仕様を異なる解釈で実装するかもしれません。開発者は3つすべてに対する回避策を書く羽目になっていました。
このイニシアチブは2021年に Compat 2021 として開始され、Flexbox の一貫性の欠如や CSS Grid のバグなど、長年の問題点に焦点を当てました。2022年に Interop と改名され、以降毎年実施されており、毎年クロスブラウザ互換性がまだ改善を必要とする新しい重点分野を選定しています。
Interop Project の仕組み
重点分野と提案プロセス
毎年、コミュニティは公開 GitHub リポジトリに提案を提出します。2024年には96以上の候補が提出され、CSS nesting、declarative Shadow DOM、Popover API、相対カラー構文、アクセシビリティの改善など、17の重点分野が選ばれました。
選定は単なる人気投票ではありません。提案が適格となるには、成熟した標準化トラックの仕様と既存の Web Platform Tests のセットが必要です。まだ活発に開発中の仕様を持つ機能は、通常選ばれません。Interop は実装を整合させることであり、標準化されていないアイデアを押し通すことではありません。
Web Platform Tests による進捗測定
進捗は Web Platform Tests (WPT) スイートを使用して追跡されます。これは180万以上の個別チェックを持つ、共有された自動テストインフラストラクチャです。各ブラウザは同じテストに対して実行され、スコアはライブダッシュボードで公開されます。
数字は説得力のあるストーリーを語っています。Interop 2024 の開始時、その年の重点分野のクロスブラウザ交差スコアは 48% でした。年末までに、開発者チャネルのブラウザは 95%以上 に到達しました。
Discover how at OpenReplay.com.
フロントエンド開発者にとっての意味
機能が Interop サイクルに含まれると、参加しているすべてのブラウザチームが同時に取り組みます。この並行作業は2つのことを実現します:
- 実装の高速化 — 各エンジンが前のエンジンを待つシリアルなウォーターフォールではなく、3つすべてが同時に進みます。
- 仕様品質の向上 — ブラウザがテスト結果について意見が分かれると、互換性のない動作が定着する前に、仕様の曖昧さを早期に明らかにします。
実用的な結果:かつてベンダープレフィックス、ポリフィル、または JavaScript の回避策を必要としていた機能が、1年以内にすべての主要ブラウザでネイティブに安全に使用できるようになります。
個々のプラットフォーム機能の実際のステータスに興味がある場合、Web Platform Status dashboard が実装進捗のクロスブラウザビューを提供しています。
Interop 2025、2026、そしてその先
このプロジェクトは継続的な年次イニシアチブとして続いています。Interop 2025 と Interop 2026 は、ブラウザ標準協力の範囲を拡大し続けており、各サイクルで新しい重点分野が選定されます。現在の進捗は 公式 Interop ダッシュボードで確認でき、今後の提案は GitHub で追跡できます。
まとめ
Interop Project は、ウェブプラットフォーム開発で起きている最も実用的な取り組みの1つです。すべてのクロスブラウザバグを排除することはできませんし、どのブラウザベンダーにも何かを強制することはできません — 参加は完全に任意です。しかし、実績が物語っています:協調的な焦点は、一貫性のない状態から信頼できる状態へと、独立した取り組みよりも速く針を動かし続けています。
フォールバックなしで安全に使用できる機能を知りたい場合、各 Interop サイクルに含まれる機能を確認することは良い出発点です。
よくある質問
wpt.fyi/interop にある公式 Interop ダッシュボードにアクセスしてください。現在の年のすべての重点分野と、各ブラウザのライブ合格率が一覧表示されます。また、web-platform-tests/interop GitHub リポジトリを閲覧して、今後のサイクルで承認された重点分野や提案された重点分野を確認することもできます。
いいえ。Interop は拘束力のある契約ではなく、任意のコミットメントです。ブラウザベンダーは選択された重点分野を優先することに同意しますが、タイムラインと完全性は異なります。とはいえ、過去のデータは、重点分野が各サイクルの終わりまでに一貫して95%以上のクロスブラウザ互換性に到達していることを示しています。
はい。提案は、毎年の指名期間中に web-platform-tests/interop GitHub リポジトリを通じて提出されます。提案には、成熟した標準化トラックの仕様と既存の Web Platform Tests を参照する必要があります。コミュニティの参加は奨励されており、毎年の優先事項を形成する上で実際の役割を果たしています。
Can I Use は、ウェブ機能の現在のブラウザサポートを報告するリファレンスツールです。Interop Project は、ブラウザベンダーが特定のクロスブラウザの一貫性の欠如を特定の年内に修正することにコミットする、アクティブな協力です。一方は現在の状態を文書化し、もう一方はそれを変えるために取り組んでいます。
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.