这让我疯狂!我有两个正在处理的站点非常相似,并且共享大量代码。这两个菜单都可以通过鼠标(悬停)工作,但是一个菜单无法显示选项卡上的子菜单(焦点)。我99%肯定有一些明显的遗漏。
损坏: https://onward2opportunity-vctp.org/
作品: https://americaserves.org/
另一组眼睛将是最有帮助和赞赏的!
答案 0 :(得分:1)
快速浏览一下即可发现“ americaserves”(有效)具有焦点/模糊事件处理程序,而“ onward”(断开)没有。我假设焦点处理程序是显示子菜单的内容。
但是,作为有关键盘可访问性的补充说明,使子菜单出现在焦点上会导致很多制表符停止。如果要在菜单上切换以获取最后一个项目,则必须在所有子菜单中进行浏览,因为它们会自动出现。
一种不错的方法是使用可视指示器指示子菜单,并在菜单上使用aria-expanded
属性,并根据菜单是否分别展开/折叠将其设置为true / false。让用户选择菜单来打开它,而不是自动打开。
但是,请注意,您的顶级菜单项实际上有两个作用。您可以选择菜单项本身并进入页面,也可以选择菜单项以显示子菜单。由于不能通过相同的交互( enter 键)发生两种行为,因此需要单独的元素。通常,通过使菜单文本成为一个链接将您带到另一页,然后在其旁边显示一个小的“向下箭头”类型按钮来显示子菜单,即可完成此操作。
您仍然可以使用鼠标显示菜单来支持悬停。多余的“向下箭头”按钮可能会一直隐藏,直到被选中为止,就像您的跳过链接一样。