javascript - 仅在选项卡焦点上勾勒轮廓

标签 javascript css reactjs

我正在寻找一种简单、高效的解决方案,使可聚焦元素的轮廓仅在按下 Tab 键时 并且在 React 应用中使用鼠标时不显示。 (类似于 :focus-visible 实际上适用于不同的浏览器) - 非常令人沮丧的是,制作一个可访问的网站几乎没有在线解释的一般解释。 感谢您的帮助!

最佳答案

您要做的是为键盘和鼠标按下添加一个事件监听器。 如果是 Tab 按键,则添加一个 CSS 类来概述所需的元素。

function handleFirstTab(e) {
  if (e.keyCode === 9) {
    document.body.classList.add('user-is-tabbing');

    window.removeEventListener('keydown', handleFirstTab);
    window.addEventListener('mousedown', handleMouseDownOnce);
  }
}

function handleMouseDownOnce() {
  document.body.classList.remove('user-is-tabbing');

  window.removeEventListener('mousedown', handleMouseDownOnce);
  window.addEventListener('keydown', handleFirstTab);
}

window.addEventListener('keydown', handleFirstTab);

关于javascript - 仅在选项卡焦点上勾勒轮廓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54654350/

相关文章:

javascript - 无法设置未定义的属性(输入 [文本] 值)

html - 如何将 span 和 input 保持在同一行/行的 div 中?

javascript - 如何让元素跟随鼠标移动?

javascript - React 不渲染组件

reactjs - 无法使用 axios 发送 auth header

javascript - Provider 和 connect 在 React 中如何工作?

javascript - 尝试在用户滚动时动态更改背景视频

javascript - 使用 moment.js 将日期转换为字符串 "MM/dd/yyyy"

css - 使 bootstrap 3 容器内容全高

javascript - 无法在第二个或第三个删除的动态元素上触发 CK 编辑器 - CkEditor