我知道这个问题: Which "href" value should I use for JavaScript links, "#" or "javascript:void(0)"?包含对 javascript 链接的正确 href 内容的讨论。这与 508 合规性有何关系?当点击处理程序在 javascript 代码的其他地方定义时,有人知道 javascript:void(0) 是否可以接受吗?
最佳答案
这就是术语变得重要的地方 - 就可访问性而言,没有“javascript 链接”这样的东西。有一些链接,它们是纯粹的 anchor 元素,还有一些 javascript 行为,为了可访问性,这些行为应该被假定为不可运行。
触发 javascript 的空 anchor 元素(类似于 href='#' onclick='...')不是链接,它是用于触发页面行为的 UI 元素。对于可访问性,不要为此滥用 anchor 元素,使用具有正确 ARIA Angular 色的真实 UI 元素。
对于点击链接(执行类似“点击 anchor ”->“调用神奇的 JS”->“window.location 更改为某个新页面”之类的操作),请注意您在语义上误传了您的内容。即使您使用的是 anchor 元素,您对它的使用也不是链接,因为它不是另一个资源的 anchor 。就像上面的例子一样,它实际上是一个按钮。页面位置最后发生变化的事实并没有改变这一点。
要获得真正的可访问性,您必须放弃任何中间的 JavaScript。但别担心,这并没有听起来那么严重:最简单的解决方案是改用重新路由链接。如果您曾经使用过 google.com 或 duckduckgo.com 等,您就会熟悉这一点:与其链接到实际的 URL,不如链接到通过无页面脚本代理的 URL。您可以保证带有 URL“http://our.domain.com/ref=http://the.actual.link.to.visit”的 anchor 最终会很好地重定向到实际站点,并且您可以将“当人们单击时”应该发生的任何所需操作作为服务器端操作添加,当您解决重定向。
如果您认为自己依赖 JavaScript,那么遵守 508 将很困难。所以对于可访问性:积极尝试不要。如果您可以使用它,请丰富它,确保没有它也能正常工作。
关于javascript - 508 兼容页面上的 JavaScript 链接的 HREF 属性应该是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14715397/