本記事は執筆時点(2026年02月18日)の情報をベースにしております。掲載している情報が最新ではない可能性がありますので何卒ご容赦ください。
HTMLに比較的新しく追加されたpopover属性は、JavaScriptに大きく頼らずにポップアップUIを実装できる便利な仕組みです。本ページでは、popoverの基本的な使い方や活用方法を整理しながら、自身の理解を深めるための備忘録として情報をまとめています。
HTMLのpopover属性とは何か
HTMLのpopover属性は、JavaScriptに大きく依存しなくても補助的な情報やメニュー、ヒントなどをポップアップ表示できる仕組みです。

従来はモーダルウィンドウやツールチップを表示するために複雑なスクリプトや外部ライブラリが必要でしたが、popover属性を使うことで、よりシンプルかつ標準的な方法で実装できるようになりました。
ユーザーの操作に応じて軽量な情報を表示する仕組みとして注目されているpopoverの主な特徴は以下の通りです。
- 標準HTMLだけで実装できる
- ユーザー操作に応じて表示される
- アクセシビリティに配慮されている
標準HTMLだけで実装できる
popover属性はブラウザ標準の機能として提供されるため、特別なライブラリを読み込まなくても利用できます。
ボタンなどのトリガー要素と、表示したいコンテンツを関連付けるだけで動作するため、コード量を大幅に削減できます。
保守性も高まり、将来的な仕様変更にも対応しやすい点がメリットです。
ユーザー操作に応じて表示される
クリックやフォーカスなどのユーザー操作をきっかけに表示できるため、必要な情報だけを適切なタイミングで提示できます。
画面を常に情報で埋め尽くすことがなくなり、ユーザー体験の向上につながります。
特にフォームの補足説明やメニュー表示との相性が良い機能です。
アクセシビリティに配慮されている
標準仕様として設計されているため、キーボード操作やスクリーンリーダーへの対応が考慮されています。
独自実装のポップアップよりも支援技術との相性が良く、誰にとっても使いやすいWebページを作りやすくなります。
popover属性の基本的な使い方
popover属性の使い方は非常にシンプルで、表示したい要素にpopoverを指定し、それを呼び出すボタンなどを用意するだけで動作します。
複雑なスクリプトを記述せずに実装できるため、初心者でも扱いやすいのが特徴です。
popoverを付与する要素を用意する
まず、ポップアップとして表示したい要素にpopover属性を付けます。
この属性があることで、ブラウザはその要素を通常は非表示にし、呼び出されたときに前面表示する対象として扱います。
HTML
<div id="myPopover" popover>これはpopoverで表示される内容です。</div>
ボタンなどのトリガーを設定する
次に、popoverを表示するためのボタンやリンクを設置し、popovertarget属性を付けます。
指定した要素を呼び出す設定を行うことで、クリック時にポップアップが表示されます。ユーザーにとって直感的な操作で情報を確認できる導線を作ることが重要です。
HTML
<button popovertarget="myPopover">詳細を見る</button> <div id="myPopover" popover>これはpopoverで表示される内容です。</div>

popoverは画面の別の場所をクリックすると自動的に閉じる仕様になっています。わざわざ閉じる機能を実装する必要がないので開発の手間が軽減されます。
しかし用途によっては「閉じるボタン」を配置した方が良いケースもあるでしょう。
そのような場面では「popovertargetaction="hide"」を使えば簡単に閉じるボタンを追加できます。
HTML
<button popovertarget="myPopover">詳細を見る</button>
<div id="myPopover" popover>
これはpopoverで表示される内容です。
<button popovertarget="myPopover" popovertargetaction="hide">閉じる</button>
</div>

ここまでの機能をHTMLのみで実装できるので便利ですね。
続いてはpopoverのカスタマイズ方法について確認していきましょう。
popoverの表示位置を変更する【position-anchor】
popover属性はデフォルトでは画面中央に表示される仕様になっていますが、CSSを使えば配置をカスタマイズすることが可能です。
ツールチップ機能のようにクリックした要素の近くに表示させたい時は、「CSS Anchor Positioning API」を利用すると簡単です。
CSS Anchor Positioning API
CSS Anchor Positioning APIは、JavaScriptなしで特定の要素にくっつく要素を作れる機能です。
基準(アンカー)となる要素に対してpopover要素を簡単に配置することが可能です。
以下のような流れで設定します。
基準(アンカー)を定義
まず、ボタンなど配置の基準としたい要素に「anchor-name」プロパティで名前(先頭にハイフンを2つ付ける)を定義します。
HTML
<button popovertarget="tooltip" style="anchor-name: --tip;">ヘルプ</button>
紐付け
ポップオーバーさせる要素側で「position-anchor」プロパティを使って基準要素のanchor-nameを指定し、2つを紐づけします。
HTML
<div id="tooltip" popover>このボタンの補足説明です。</div>
CSS
[popover]#tooltip{
position-anchor:--tip;/* 紐付けたいボタンを指定 */
}
配置指定
ポップオーバーさせる要素側で「position-area」プロパティを使って位置を決めます。
CSS
[popover]#tooltip{
position-anchor:--tip;/* 紐付けたいボタンを指定 */
inset:unset;/* デフォルトスタイルをリセット*/
position-area:right;/* 配置を指定 */
}

popover属性の値「auto」と「manual」の違い
popover属性には値が用意されており、「どうやって閉じるか」と「複数を同時に出せるか」という挙動を制御できます。
- 「auto」はデフォルトの値。1つ開くと他のautoは勝手に閉じます。
- 「manual」は明示的に閉じないと消えない為、複数同時表示ができます。
初期値「auto」の状態(何も指定しない)
下記のようにpopover属性を使ったツールチップを複数設置したときの挙動を確認してみましょう。
HTML
<button popovertarget="tooltip1" style="anchor-name: --tip1;">ヘルプ1</button> <div id="tooltip1" class="tooltip" popover style="position-anchor: --tip1;">ヘルプ1の補足説明です。</div> <button popovertarget="tooltip2" style="anchor-name: --tip2;">ヘルプ2</button> <div id="tooltip2" class="tooltip" popover style="position-anchor: --tip2;">ヘルプ2の補足説明です。</div> <button popovertarget="tooltip3" style="anchor-name: --tip3;">ヘルプ3</button> <div id="tooltip3" class="tooltip" popover style="position-anchor: --tip3;">ヘルプ3の補足説明です。</div>

他のツールチップを開くとそれまで表示していたツールチップは自動的に非表示になり、複数を同時に表示しない仕様が確認できます。
値「manual」を指定した場合
続いて先ほどのツールチップ中で「ヘルプ2」にだけ、値「manual」を指定してみます。
HTML
<button popovertarget="tooltip1" style="anchor-name: --tip1;">ヘルプ1</button> <div id="tooltip1" class="tooltip" popover="" style="position-anchor: --tip1;">ヘルプ1の補足説明です。</div> <button popovertarget="tooltip2" style="anchor-name: --tip2;">ヘルプ2</button> <div id="tooltip2" class="tooltip" popover="manual" style="position-anchor: --tip2;">ヘルプ2の補足説明です。</div> <button popovertarget="tooltip3" style="anchor-name: --tip3;">ヘルプ3</button> <div id="tooltip3" class="tooltip" popover="" style="position-anchor: --tip3;">ヘルプ3の補足説明です。</div>

値「manual」が指定してある真ん中の「ヘルプ2」のツールチップのみ他のツールチップを開いても表示を継続していることが確認できます。
なお、値「manual」を指定すると別の箇所をクリックしても閉じることができないため、 「popovertargetaction="hide"」を使って閉じるボタンを設置しておく必要があります。
popoverとdialog要素の違い
dialog要素とは?
dialog要素はHTML標準のダイアログ表示用要素で、JavaScriptから .showModal() を使うことでモーダル表示が可能になります。フォーム入力や確認画面など、JavaScriptを用いて本格的なUIを作るための仕組みです。
モーダルとは、表示中に他の操作をできなくする画面表示方式のことです。確認ダイアログ、入力フォーム、重要な通知など、ユーザーに必ず対応してほしい場面で使用されます。下図のように背景が暗くなり、閉じるまで操作を制限するUIが一般的です。

対して、popoverはボタンなどの操作に連動して表示される「軽量なポップアップ表示機能」です。ツールチップ、補足説明、小さなメニューなどに適しており、画面全体を覆わないのが特徴です。ユーザーは背後の画面をそのまま操作できるため、あくまで補助的な情報表示として使われます。

軽い補足ならpopover、操作を伴うならdialogと覚えると良いかもしれません。
dialog要素について詳しくはこちらのページにまとめていますのでよろしければご覧ください。
popover属性が活躍する具体的な場面
popover属性は単なるポップアップ表示だけでなく、さまざまなUI改善に役立ちます。
特に情報量の多い業務システムや管理画面において、画面をすっきり保ちながら必要な情報を提示できる点が魅力です。
活用が期待できる代表的なシーンは以下の通りです。
- フォーム入力時の補足説明
- ナビゲーションメニューの簡易表示
- 用語解説やツールチップ
フォーム入力時の補足説明
入力欄の横にヘルプボタンを設置し、クリック時に入力例や注意事項を表示する使い方が効果的です。
常に説明文を表示するよりも画面が見やすくなり、ユーザーが迷ったときだけ情報を確認できる設計が可能になります。
ナビゲーションメニューの簡易表示
サブメニューや詳細リンクをpopoverで表示することで、ページ遷移なしに選択肢を提示できます。
特に管理画面や業務ツールでは、操作回数の削減につながり、作業効率を高める効果が期待できます。
用語解説やツールチップ
専門用語に対して補足説明を表示する用途にも適しています。
テキストをクリックすると簡単な説明が表示される仕組みを作ることで、初心者にも分かりやすいコンテンツになります。
教育系サイトやマニュアルページでも有効です。
popover属性を使う際の注意点
便利なpopover属性ですが、利用する際にはいくつか注意すべきポイントもあります。
対応ブラウザの状況や表示位置の調整など、事前に理解しておくことでトラブルを防げます。
導入前に確認したい主な注意点は以下の通りです。
- ブラウザ対応状況を確認する
- 表示位置のデザイン調整
- 重要な情報を入れすぎない
ブラウザ対応状況を確認する
比較的新しい機能のため、古いブラウザでは正しく動作しない可能性があります。
業務システムなど幅広い環境で利用されるサイトでは、事前に対応状況を確認し、必要に応じて代替手段を用意することが大切です。
表示位置のデザイン調整
popoverは自動で表示位置が調整されますが、デザインによっては意図しない場所に表示されることもあります。
実際の画面で動作確認を行い、視認性や操作性に問題がないかチェックすることが重要です。
重要な情報を入れすぎない
popoverは補足情報向けの仕組みです。主要な操作や重要な警告をすべてpopover内に入れてしまうと、ユーザーが見逃す可能性があります。
あくまで補助的な情報表示として使う意識が大切です。
まとめ
HTMLのpopover属性は、これまでJavaScriptに頼っていたポップアップ表示を、よりシンプルかつ標準的に実装できる画期的な機能です。
フォーム補助、メニュー表示、用語解説など幅広い用途に活用でき、ユーザー体験の向上にもつながります。
一方でブラウザ対応や使いどころには注意が必要ですが、適切に使えば保守性と操作性を両立できる優れた仕組みです。
今後のWeb制作において、popover属性は積極的に取り入れたい技術の一つと言えるでしょう。
