【问题标题】:WCAG accessibility issue with nested elements嵌套元素的 WCAG 可访问性问题
【发布时间】:2016-07-25 08:47:22
【问题描述】:

我在 (<div>) 中有几个方框。每个盒子都有一个带有几个/几个链接的列表(简单的ul li 列表和<a> 元素)。此链接列表是隐藏的,仅在悬停时显示。

它工作得很好,但我有可访问性问题,即我无法使用“tab”键进入任何列表元素(框<div> 工作正常,它获得焦点,所以列表显示),它只是跳到下一个框元素。我试过在每个盒子和里面的每个列表元素上添加tabindex,但似乎这不是解决方案。

是否有任何 CSS/HTML 解决方案?我当然可以编写简单的 JS,它将检查焦点在哪里以及焦点是否有带焦点选项的父级,但如果可能的话,我想避免它。

【问题讨论】:

  • 正如我所说,我在 box 元素和里面的所有子元素上都使用了 tabindex,但不幸的是,我无法进入任何下降元素
  • 你能不能把你的代码,我们会看到更好,tks
  • 是的,发布代码会有所帮助。我正在使用带有 tabindex 的
  • ,它与键盘配合使用效果很好。
  • 我也对您的评论感到有些困惑,即除非您将鼠标悬停,否则该链接将被隐藏。这是否意味着您需要使用鼠标才能看到它?键盘不能用?
  • 标签: html css focus accessibility wcag


    【解决方案1】:
    • 如何隐藏链接列表?使用display: none 或使用visibility: hidden。 (并且您仅将其应用于列表元素还是也应用于 div?根据您的描述,我猜它仅适用于列表元素。)使用 display: none 隐藏的内容无法通过键盘访问。
    • 为了使列表在悬停时显示,您使用的是 JavaScript 事件处理程序还是 CSS?如果您使用 JavaScript,您可能需要添加一个响应键盘事件的事件侦听器(例如 onfocus,但如上所述,使用 display: none 隐藏的内容不会获得焦点)。在 CSS 中,我总是建议在使用 :hover 时添加 :focus 伪类(除非您希望这些东西使用不同的样式)。
    • 当父div 获得焦点时,您可能需要编写一些JavaScript 来切换列表的可见性。 (如果您在 div 元素上有 tabindex,正如您所说,它们应该已经能够获得焦点。)

    【讨论】:

      猜你喜欢
      相关资源
      最近更新 更多
      热门标签