popovertarget="" popovertargetaction=""

更新日
仕様 HTML Living Standard
分類 button要素input要素向けの属性

button要素、またはボタン状態のinput要素popovertarget=""popovertargetaction="" を追加すると、ボタンの操作でポップオーバー要素を開閉することができます。

  • ポップオーバー要素とは、popover属性が指定された要素のことを言います。

<button type="button" popovertarget="example" popovertargetaction="toggle">ボタン</button>

<input type="button" popovertarget="example" popovertargetaction="toggle" value="ボタン">

属性
任意属性
popovertarget="" [+]ポップオーバー要素との関連付け ID名 関連付けるポップオーバー要素に指定したID名
popovertargetaction="" [+]ポップオーバー要素の表示状態 toggle ポップオーバー要素を表示または非表示にする(既定値)
show ポップオーバー要素を表示する
hide ポップオーバー要素を非表示にする
  • 上記の属性をinput要素で使用する場合は、type属性の値に submitimageresetbutton のいずれかを指定する必要があります。

ポップオーバー要素の詳細については、下記のページを参考にしてください。

popovertarget属性について

popovertarget属性は、ポップオーバー要素とボタンとを関連付けるための属性です。

<button type="button" popovertarget="test1">ボタン</button>

<div popover="auto" id="test1">
ポップオーバー要素
</div>

上記のように、ポップオーバー要素に指定したID名(test1)をpopovertarget属性の値に記述することで、このボタンを押した時に対象のポップオーバー要素が開閉するようになります。

input要素を使用する場合は次のようになります。

<input type="button" popovertarget="test2" value="ボタン">

<div popover="auto" id="test2">
ポップオーバー要素
</div>

popovertargetaction属性について

popovertargetaction属性は、ボタンを押した時の動作を指定する属性です。指定できる値は次の3つです。

toggle
ボタンを押すたびに、ポップオーバー要素の表示・非表示が切り替わります。(既定値)
show
ボタンを押すと、非表示のポップオーバー要素が表示されます。
hide
ボタンを押すと、表示されているポップオーバー要素が非表示になります。

トグルボタンとして使用する場合は次のようになります。

<button type="button" popovertarget="test3" popovertargetaction="toggle">表示/非表示</button>

<div popover="auto" id="test3">
ポップオーバー要素
</div>

表示と非表示のボタンを別々に設置する場合は次のようになります。

<input type="button" popovertarget="test4" popovertargetaction="show" value="表示">
<input type="button" popovertarget="test4" popovertargetaction="hide" value="非表示">

<div popover="auto" id="test4">
ポップオーバー要素
</div>

ボタンとポップオーバー要素の記述位置について

可能な限り、ポップオーバー要素はボタンの直後に記述するようにします。そうすることで、スクリーンリーダーによって適切な順序で読み上げられるようになるそうです。

旧HTMLからの変更点
  • HTML LS:button要素input要素に、popovertarget属性とpopovertargetaction属性が追加されました。[2023/04/20]

使用例

  • 未対応のブラウザでは、ポップオーバー要素の内容が常に表示された状態になります。
トグルボタンとして使用した例

<p><button type="button" popovertarget="pop1">表示/非表示</button></p>


<div popover="auto" id="pop1">

<p>ポップオーバー要素A</p>

</div>

表示例

ポップオーバー要素A

表示と非表示のボタンを別々に設置した例

<p>
<input type="button" popovertarget="pop2" popovertargetaction="show" value="表示">
<input type="button" popovertarget="pop2" popovertargetaction="hide" value="非表示">
</p>


<div popover="auto" id="pop2">

<p>ポップオーバー要素B</p>

</div>

表示例

ポップオーバー要素B

ポップオーバー要素の中に非表示ボタンを設置した例

<p><input type="button" popovertarget="pop3" popovertargetaction="show" value="表示"></p>


<div popover="auto" id="pop3">

<p>ポップオーバー要素C</p>
<p><input type="button" popovertarget="pop3" popovertargetaction="hide" value="非表示"></p>

</div>

表示例

ポップオーバー要素C