html - 具有相同 ID 的桌面和移动设备导航是否存在 ADA 问题?

标签 html css accessibility

我的任务是检查一个网站并使其完全符合 ADA 标准。我目前遇到的问题是如何解决重复 ID 的问题。

阅读此处:https://dequeuniversity.com/rules/axe/2.2/duplicate-id?application=lighthouse

它指出重复 ID 是 ADA 的一个问题。

此站点上存在重复 ID 的原因是因为它有两个主要导航。一种用于台式机,一种用于移动设备。在某个视口(viewport),移动菜单会将其 CSS 样式从显示切换为:无;显示: block ;桌面菜单反之亦然。

我在这里阅读:https://www.html5accessibility.com/tests/hidden2013.html

那个显示:无;是支持对屏幕阅读器隐藏内容的一种方式。所以我想知道重复 ID 的问题是否不是问题,并且由于移动和桌面菜单永远不会同时显示,所以这不是问题。

这些 ID 也没有连接到表单标签、表格标题单元格等。所以这不是一个值得担心的问题吗?还是这仍然不符合 ADA 标准?如果是,我可以采取什么步骤使其符合 ADA 标准,而无需将桌面和移动菜单合并为一个或为它们提供唯一的 ID?

最佳答案

您是正确的,使用 display:none 会向所有用户隐藏内容,这实际上会消除重复 ID 的问题。

但是,您仍然应该谨慎行事,因为这是一种具有潜在缺陷的次优做法。

一方面,具有重复的 ID 不是有效的 HTML。 HTML5 规范明确指出:

"The value must be unique amongst all the IDs in the element's home subtree" https://www.w3.org/TR/2011/WD-html5-20110525/elements.html#the-id-attribute

此外,任何按 ID 定位元素的脚本(当前或 future )都可能会因重复的 ID 而窒息,并可能产生不可预测的结果。

关于html - 具有相同 ID 的桌面和移动设备导航是否存在 ADA 问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54409784/

相关文章:

php - 将代码从页面发送到 php 脚本

php - 我如何制作一个表格来更新我的表格并在我的 TeamStats 页面上显示为一行?

javascript - 打印时底部的页脚

javascript - 如何告诉屏幕阅读器阅读切换元素

javascript - 通过多次传递正确传递内联 onclick 字符串的参数

javascript - 与这个简单示例中的 css 动画相比,Greensock (GSAP) 更不流畅/更生涩。有没有办法改善它?

javascript - 在浏览器中具有精确的图像缩略图大小

android - 在包 'accessibilityEventTypes' 中找不到属性 'android' 的资源标识符

css - CSS -webkit-tap-highlight-color : transparent; have accessibility implications?

html - ASP :TextBox; is there an "OnFocus" or CSS equivalent