aria-haspopup 是否需要 true/false 值?

Does aria-haspopup require a true/false value?

根据spec, the value should be a boolean. However, one of the spec examples of proper implementation使用了不同于true/false-"listbox"的字符串值,这是另一个元素的角色属性的值。这是实施示例中的缺陷,还是屏幕阅读器在实践中会从 true 以外的值中获取更多信息?

链接示例中的相关代码:

<div role="combobox" aria-expanded="false" aria-owns="ex1-listbox" aria-haspopup="listbox" id="ex1-combobox">
    <input type="text" aria-autocomplete="list" aria-controls="ex1-listbox" id="ex1-input" aria-activedescendant="">
</div>

W3规格

如果 w3 规范规定它的值可以是 true 或 false,那么这就是浏览器将要实现的。
如果该属性接受其他值,则其行为未定义。尽可能避免这种情况。

有时接受属性的值会随着 w3 规范的不同版本而改变。

看来我发现自己正在阅读规范的旧版本。 This version 是正确的,它包含更新的选项。

原来(WAI-ARIA1.0),aria-haspopup只能是true/false。但是 WAI-ARIA 1.1 增加了额外的价值。您仍然可以使用 true/false,但您也可以更具体地说明元素将具有哪种弹出窗口(菜单、树、网格、列表框等)。