[material-ui][Chip] 当设置为false且禁用时,skipFocusWhenDisabled属性会跳过焦点,

hc2pp10m  于 4个月前  发布在  其他
关注(0)|答案(7)|浏览(42)

重复问题

  • 我搜索了现有的问题

最新版本

  • 我测试了最新版本

重现步骤 🕹

链接到实时示例:
步骤:

  1. 转到 Mui chip 链接 https://mui.com/material-ui/react-chip/
  2. 转到可点击的部分
  3. 用以下代码更新示例 <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.
flvlnr44

flvlnr441#

@danilo-leal 我想处理这个问题,你能把这个分配给我吗?

fafcakar

fafcakar2#

@aman44444 已分配。请告知我们是否遇到任何问题。

6qqygrtg

6qqygrtg3#

@brijeshb42 我尝试直接或间接地改变tabIndex的值,但它不起作用。经过调试后,我发现只有在应用'disabled'时,值才会改变。'skipFocusWhenDisabled'没有效果,我很抱歉无法确定'disabled'是如何改变值的。同时也很抱歉回复晚了。

p8h8hvxi

p8h8hvxi4#

#35065中添加的skipFocusWhenDisabled属性存在一个bug。我们在渲染为ButtonBase时,忽略了芯片同时具有clickabledisabled的情况。

b0zn9rqh

b0zn9rqh5#

嘿,@ZeeshanTamboli,我想接手这个任务,但我有点困惑。从可访问性的Angular 来看,难道一个有障碍的Chip不应该始终具有tabIndex为-1吗?这是在ButtonBase组件中的方式,我认为这是正确的。

我已经在我的playground中删除了对这个属性的使用,它按预期工作,Chip没有被聚焦。我这样做是为了重现你发送的问题/PR。我觉得我遗漏了一个重要的部分。

sqyvllje

sqyvllje6#

skipFocusWhenDisabled 属性设置为 false(无论是作为其默认值还是在未明确提供给组件的情况下),禁用的 Chip 应该可聚焦。相反,当设置为 true 时,禁用的 Chip 应该不可聚焦。引入此属性的目的是防止 #35065 中的破坏性更改,如该线程中讨论的那样。然而,它当前的功能不足以满足预期,仅在禁用的 Chip 具有 onDelete 属性时才能正常工作,如下例所示:

<Chip label="Chip Filled" onDelete={() => {}} disabled />

考虑到其实现中的问题,理想的解决方案是考虑删除此属性并正确处理 #35038,PR #35065 试图解决这个问题。值得注意的是,这样的更改将引入破坏性更改。

doinxwow

doinxwow7#

好的,谢谢你,ZeeshanTamboli。我会尝试接手这个问题并尽快更新你。

相关问题