material-ui autoFocus在菜单项上不起作用,点击打开的菜单才起作用,

67up9zun  于 6个月前  发布在  其他
关注(0)|答案(5)|浏览(74)

重复问题

  • 我已搜索现有的问题

最新版本

  • 我已测试了最新版本

重现步骤 🕹

链接到实时示例: https://codesandbox.io/s/blissful-kare-sokg13?file=/demo.tsx
步骤:

  1. 点击 Jmeter 盘按钮
  2. 第一个菜单项应该被聚焦

当前行为 😯

第一个菜单项被聚焦(参见控制台),但焦点样式和类没有被应用。

预期行为 🤔

第一个菜单项应有焦点样式和类被应用

上下文 🔦

我正在尝试向用户展示哪个菜单项在打开菜单时被聚焦。
这可能根据我为 autoFocus 应用的哪个项目而改变。
如果你点击并拖动按钮,但不直接点击它,然后按回车键,它会像预期的那样聚焦。

你的环境 🌎

npx @mui/envinfo

System:
    OS: macOS 12.2.1
  Binaries:
    Node: 19.6.0 - ~/.volta/tools/image/node/19.6.0/bin/node
    Yarn: 1.22.18 - ~/.volta/tools/image/yarn/1.22.18/bin/yarn
    npm: 9.4.0 - ~/.volta/tools/image/node/19.6.0/bin/npm
  Browsers:
    Chrome: 111.0.5563.64
    Edge: Not Found
    Firefox: 110.0.1
    Safari: 15.3
  npmPackages:
    @emotion/react: ^11.10.6 => 11.10.6 
    @emotion/styled: ^11.10.6 => 11.10.6 
    @mui/base:  5.0.0-alpha.121 
    @mui/core-downloads-tracker:  5.11.13 
    @mui/icons-material: ^5.11.11 => 5.11.11 
    @mui/material: ^5.11.13 => 5.11.13 
    @mui/private-theming:  5.11.13 
    @mui/styled-engine:  5.11.11 
    @mui/system:  5.11.13 
    @mui/types:  7.2.3 
    @mui/utils:  5.11.13 
    @types/react: ^18.0.28 => 18.0.28 
    react: ^18.2.0 => 18.2.0 
    react-dom: ^18.2.0 => 18.2.0 
    typescript: ^5.0.1-rc => 5.0.1-rc
dzjeubhm

dzjeubhm1#

请允许我接手这个问题,@mnajdova

scyqe7ek

scyqe7ek2#

应用的样式仅在焦点来自键盘时才生效。当使用鼠标导航时,菜单的用户将指向他们想要选择的元素(这是悬停样式将生效的时候),或者如果他们开始与键盘进行交互,将显示键盘焦点指示器。这是预期的行为。

axr492tv

axr492tv4#

@mnajdova 我想不到一个理由来解释为什么你不想展示它是专注的。
就我所知,原生Web组件无论键盘还是鼠标交互都以相同的方式处理焦点,所以在这种情况下有区别是令人困惑的。

vuktfyat

vuktfyat5#

我同意@gkiely的观点,它应该像原生浏览器行为一样运作。这并不是WCAG 2.4.7的焦点可见性(成功标准是:任何可操作键盘的用户界面都应有一个使键盘焦点指示器可见的操作模式)的技术上的失败,但我仍然建议应用视觉焦点状态,因为这将帮助用户看到哪个元素具有焦点。我认为在这种情况下这是最佳实践。

相关问题