Element: ariaHasPopup 属性

Baseline 2023
新推出

自 ⁨2023 年 10 月⁩ 以来,此功能已在最新设备和浏览器版本中得到支持。此功能可能无法在旧设备或浏览器上运行。

Element 接口的 ariaHasPopup 属性反映了 aria-haspopup 属性的值,该属性指示了可由元素触发的交互式弹出元素(例如菜单或对话框)的可用性和类型。

一个字符串,其值可能为以下之一:

"false"

该元素没有弹出窗口。

"true"

该元素有一个弹出菜单。

该元素有一个弹出菜单。

"listbox"

该元素有一个弹出列表框。

"tree"

该元素有一个弹出树视图。

"grid"

该元素有一个弹出网格。

"dialog"

该元素有一个弹出对话框。

警告:请注意,不同 aria-haspopup 值的支持可能因属性指定的元素而异。确保在使用 aria-haspopup 时,符合 ARIA 规范,并在使用必要的浏览器和辅助技术进行测试时,确保其行为符合预期。

示例

在此示例中,ID 为 animal 的元素的 aria-haspopup 属性设置为 "true"。使用 ariaHasPopup,我们将值更新为 "listbox",这是调用 listbox 弹出窗口的组合框的预期值。

html
<div class="animals-combobox">
  <label for="animal">Animal</label>
  <input
    id="animal"
    type="text"
    role="combobox"
    aria-autocomplete="list"
    aria-controls="animals-listbox"
    aria-activedescendant=""
    aria-expanded="false"
    aria-haspopup="true" />
  <ul id="animals-listbox" role="listbox" aria-label="Animals">
    <li id="animal-cat" role="option">Cat</li>
    <li id="animal-dog" role="option">Dog</li>
  </ul>
</div>
js
let el = document.getElementById("animal");
console.log(el.ariaHasPopup); // true
el.ariaHasPopup = "listbox";
console.log(el.ariaHasPopup); // listbox

规范

规范
无障碍富互联网应用程序 (WAI-ARIA)
# dom-ariamixin-ariahaspopup

浏览器兼容性