公開日: 2025 年 2 月 7 日
2024 年 4 月に、このサイトの投稿で、Popover API がベースラインで新しく利用可能になったことが発表されました。ただし、誤りがあり、ポップオーバーは 2025 年 1 月 27 日よりベースラインに移行されます。この記事では、誤った判断をした理由と、このような誤りが起こりにくくするためにその後に行われた変更について説明します。
Popover API とは何ですか?
Popover API には、ウェブ アプリケーションで使用されるさまざまなタイプのポップオーバーを作成するための組み込みの方法が用意されています。これまでは、JavaScript を使用して、ユーザー アクセスが可能な方法で実装する必要がありました。この API を使用すると、ブラウザにこれらすべてを導入できます。また、HTML で宣言的にシンプルなポップオーバーを作成できます。
<button popovertarget="my-popover">Open Popover</button>
<div id="my-popover" popover>
<p>I am a popover with more information. Hit <kbd>esc</kbd> or click away to close me.</p>
</div>
2024 年 4 月はベースラインではなかった理由
Firefox がポップオーバーの実装をリリースした 2024 年 4 月時点では、iOS と iPadOS で重大な問題があることは確認されていませんでした。これらのモバイル ブラウザでは、ポップオーバーの外側をクリックしても閉じませんでした。これは「ライト ディスミス」と呼ばれる機能です。これは、ほとんどのデベロッパーがポップオーバーを快適に使用できない問題です。つまり、4 月にベースラインとして含められるべきではなく、Safari 18.3 でバグが修正されるまで待つ必要がありました。
審査結果に異議がある場合、
ベースラインは、web-features ワークに依存して、機能がベースライン内にあるか外にあるかを計算します。そのプロジェクト内の個々の機能ファイル(ポップオーバーのファイルなど)を見ると、Mozilla ブラウザ互換データの個々の機能が一覧表示されます。通常、1 つのウェブ特徴には、これらの包含が複数含まれています。これは、ウェブ上の機能が単一のプロパティやメソッドではなく、機能するために多くのコンポーネント部分が必要であるためです。機能が仕様全体であるわけではありません。たとえば、CSS 仕様には、実装されていないサブ機能や、特定のコンテキストでのみ使用されるサブ機能が含まれていることがよくあります。ウェブ機能の作業では、既存の可用性データと人間の入力を組み合わせて、ウェブ プラットフォームの機能を構成するものを特定します。また、部分的な実装がベースラインから除外されるほど深刻なものかどうかを判断します。
2 月時点では、ウェブ機能の作業は完了にほど遠いものでした。そのため、ベースラインの仕組みを示すために、ベースライン 2024 に含まれる主な機能について、必要なデータがすべて揃っていない状態で調査を進めていました。書面上、または問題が見つかった9 月まで更新されていなかったブラウザの互換性データでは、ポップオーバーが含まれているように見えていました。ただし、iOS のバグが深刻でポップオーバーを使用できないため、準備ができていませんでした。
また、モバイル向けのテスト インフラストラクチャも不足していました。ウェブ プラットフォーム テスト プロジェクトを使用すると、ウェブ プラットフォームの機能がすべてのブラウザで動作することをテストできます。このライトの閉じる問題がパソコンのブラウザで発生した場合、テストは失敗しますが、モバイルではそうではありませんでした。
今後、このような事態を回避するにはどうすればよいですか?
すでに、データの状況は大幅に改善されています。ウェブ特徴データはほぼ完成しているため、ベースラインとして宣言する特徴の信頼度を高めることができます。
この問題の場合、iOS のモバイル デバイスでのみ発生する問題を特定することが問題の一部でした。今後、モバイルでの相互運用性の問題をより簡単に特定できるように、いくつかの変更が予定されています。Web Platform Tests でのモバイル テストの改善は継続的に行われており、モバイル ブラウザに問題がある場合、パソコンとは別に問題を特定できるようになります。また、今年中にこのデータを webstatus.dev ダッシュボードに公開する予定です。今後、このような問題が発生した場合は、ベースラインに機能が追加される前に、問題が発生したことをより迅速に把握できるようになります。
ウェブ プラットフォーム全体を機能のセットとしてマッピングすることは簡単ではないことは、常にわかっていました。ただし、部分的な実装、バグ、機能の実際の構成については、非常に有益なディスカッションが行われています。これにより、ユーザーにとって本当に重要なことが特定され、Interop 2025 などの取り組みを計画する際に役立つシグナルが得られます。