重复问题
- 我搜索了现有的问题
最新版本
- 我测试了最新版本
重现步骤 🕹
链接到实时示例:
步骤:
- 转到 Mui chip 链接 https://mui.com/material-ui/react-chip/
- 转到可点击的部分
- 用以下代码更新示例
<Chip label="Clickable" disabled skipFocusWhenDisabled={false} onClick={handleClick} /> <Chip label="Clickable" variant="outlined" onClick={handleClick} />
当前行为 😯
如果你检查第一个禁用的 chip 组件,当设置 skipFocusWhenDisabled={true} 时,tabIndex 被设置为 -1,我认为这是正确的。如果你然后设置 skipFocusWhenDisabled={false},tabIndex 仍然是 -1,我认为这是不正确的。
预期行为 🤔
当 disabled 设置为 true 且 skipFocusWhenDisabled={false} 时,索引不应为 -1,它应该允许其获得焦点。
上下文 🔦
- 无响应*
你的环境 🌎
npx @mui/envinfo
Don't forget to mention which browser you used.
Output from `npx @mui/envinfo` goes here.
7条答案
按热度按时间flvlnr441#
@danilo-leal 我想处理这个问题,你能把这个分配给我吗?
fafcakar2#
@aman44444 已分配。请告知我们是否遇到任何问题。
6qqygrtg3#
@brijeshb42 我尝试直接或间接地改变tabIndex的值,但它不起作用。经过调试后,我发现只有在应用'disabled'时,值才会改变。'skipFocusWhenDisabled'没有效果,我很抱歉无法确定'disabled'是如何改变值的。同时也很抱歉回复晚了。
p8h8hvxi4#
在#35065中添加的
skipFocusWhenDisabled
属性存在一个bug。我们在渲染为ButtonBase时,忽略了芯片同时具有clickable
和disabled
的情况。b0zn9rqh5#
嘿,@ZeeshanTamboli,我想接手这个任务,但我有点困惑。从可访问性的Angular 来看,难道一个有障碍的Chip不应该始终具有tabIndex为-1吗?这是在ButtonBase组件中的方式,我认为这是正确的。
我已经在我的playground中删除了对这个属性的使用,它按预期工作,Chip没有被聚焦。我这样做是为了重现你发送的问题/PR。我觉得我遗漏了一个重要的部分。
sqyvllje6#
当
skipFocusWhenDisabled
属性设置为false
(无论是作为其默认值还是在未明确提供给组件的情况下),禁用的 Chip 应该可聚焦。相反,当设置为true
时,禁用的 Chip 应该不可聚焦。引入此属性的目的是防止 #35065 中的破坏性更改,如该线程中讨论的那样。然而,它当前的功能不足以满足预期,仅在禁用的 Chip 具有onDelete
属性时才能正常工作,如下例所示:考虑到其实现中的问题,理想的解决方案是考虑删除此属性并正确处理 #35038,PR #35065 试图解决这个问题。值得注意的是,这样的更改将引入破坏性更改。
doinxwow7#
好的,谢谢你,ZeeshanTamboli。我会尝试接手这个问题并尽快更新你。