Listbox: 将 aria-activedescendant 设置为 combobox 按钮而不是 listbox
作者: Chrisdo82创建于 2026年1月21日更新于 2026年6月9日
<! -- 请提供下文所要求的所有资料。 我们是一个小团队,没有所有这些信息,我们不可能提供帮助,你的错误报告就会被关闭. . > 时间
** 无头UI中使用的是什么软件包? **
@headlessui/反应
** 你用的是哪个版本的软件包? **
例如: v2.2.9 (中文(简体) ).
** 你在使用什么浏览器? **
颜色
** 复制 URL**
https://codesandbox.io/p/devbox/stupefied-benz-g2gjwr?file\2Fsrc%2FApp.jsx%3A24%2C24-26%2C21
我从你的网站上复制了这个例子,但无法使风格发挥作用.
** 说明你的问题**
Listbox组件将`aria-活性后裔'设定在错误的元素上。
然而,Listbox在Listbox options元素上设置了有角色="listbox"的aria活性后裔. 这是不正确的。
MDN文档明确规定:"当列表盒,网格,或树弹出物的后人被聚焦时,DOM焦点仍然留在了组合盒上,而组合盒有aria活性后人设定的值是指被聚焦于弹出物内的元素".
aria活性后裔应该被设定在Listbox按钮元素上(它有角色="combobox"),而不是Listbox options元素上(它有角色="listbox").
内容来源: tailwindlabs/headlessui