百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
返回工具页/返回 Issues 列表
#3838·headlessui

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-活性后裔'设定在错误的元素上。

根据ARIA规格(https://developer.mozila.org/en-US/docs/Web/Accessibility/ARIA/Reference/Attizes/aria-活性后裔),aria活性后裔属性仅对有作用的元素有效:应用,组合框,复合,组,或文本框.

然而,Listbox在Listbox options元素上设置了有角色="listbox"的aria活性后裔. 这是不正确的。

MDN文档明确规定:"当列表盒,网格,或树弹出物的后人被聚焦时,DOM焦点仍然留在了组合盒上,而组合盒有aria活性后人设定的值是指被聚焦于弹出物内的元素".

问题代码是: https://GitHub.com/tailwindlabs/headlessui/blob/7c06d2b53626284bf706087450c9624ce8e3810packages/%40headlessui-resact/src/组件/listbox/listbox.tsx#L740

aria活性后裔应该被设定在Listbox按钮元素上(它有角色="combobox"),而不是Listbox options元素上(它有角色="listbox").

内容来源: tailwindlabs/headlessui

查看 GitHub 原文在 GitHub 查看讨论