Popover API
モーダルなどのポップオーバーを実装するために提供されているブラウザの仕様
SafariはSafari 17から対応される
以下の3つの属性が追加された
popover属性
モーダル自体につく属性
デフォルトで非表示になり,展開された場合はトップレイヤに表示される.
auto
簡易非表示に対応
開いたとき他のモーダルを閉じる
manual
popovertarget属性
モーダルを起動するボタンにつく属性
<a>や<div>要素には設定できない
<div>をボタンとして実装してほしくないという想いにも応えている仕様
popovertargetaction属性
モーダルを起動するボタンにつく属性
以下が最小の動作パターン
code:.html
<button type="button" popovertarget="p1">開閉ボタン</button>
<div popover id="p1">ポップオーバーUI</div>
簡易非表示に対応
JavaScriptが不要で動作するという点が魅力
JavaScriptで制御することもできる
アクセシビリティとして
可能な限りポップオーバーはそれをトリガーするDOMの直後に配置することでスクリーンリーダなどが論理的に読み取ることができる
フォーカス
ポップオーバーの中のautofocus属性を持つものに移動する
ポップオーバーが閉じられた場合はトリガー要素に戻る
<dialog>に対しては利用できない