首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于508兼容页面上的javascript链接,HREF属性应该是什么?

对于508兼容页面上的javascript链接,HREF属性应该是什么?
EN

Stack Overflow用户
提问于 2013-02-06 03:31:29
回答 2查看 1.6K关注 0票数 5

我知道这个问题:Which "href" value should I use for JavaScript links, "#" or "javascript:void(0)"?包含了关于javascript链接的正确href内容的讨论。这与508合规性有什么关系?有人知道在javascript代码中的其他地方定义click处理程序时,javascript:void(0)是否可接受吗?

EN

回答 2

Stack Overflow用户

发布于 2013-02-06 06:13:15

这就是术语变得重要的地方--就可访问性而言,没有“javascript链接”这样的东西。有链接,这是纯粹的锚元素,还有javascript行为,这应该被认为是不可访问的。

触发javascript的空锚元素(例如href='#‘onclick='...')不是一个链接,它是一个用于触发页面行为的UI元素。对于可访问性,不要滥用锚元素,使用具有正确ARIA角色的实际UI元素。

对于点击链接(类似于“点击锚点”->“神奇的JS被称为”-> "window.location被更改为某个新页面“),那么要意识到你在语义上曲解了你的内容。即使你正在使用一个锚元素,你对它的使用也不是一个链接,因为它不是指向另一个资源的锚。就像上面的例子,它实际上是一个按钮。页面位置在末尾发生更改这一事实不会改变这一点。

为了真正的可访问性,您必须放弃任何中间JavaScript。但别担心,这并不像听起来那么严重:最简单的解决方案是改用重新路由链接。如果您曾经使用过google.com或duckduckgo.com等,那么您应该已经熟悉这一点:不是链接到实际的URL,而是链接到通过无页脚本代理的URL。您可以保证带有URL "http://our.domain.com/ref=http://the.actual.link.to.visit“的锚点最终会很好地重定向到实际站点,并且当您解决重定向问题时,您可以添加任何应该在”当人们单击时“发生的所需操作作为服务器端操作。

如果你认为你依赖于JavaScript,那么遵守508将会很困难。因此,对于可访问性:积极尝试不要这样做。如果你可以使用它,就丰富它,确保没有它的情况下仍然可以工作。

票数 1
EN

Stack Overflow用户

发布于 2013-02-07 02:11:48

我基本上同意Mike的观点。

这与508合规性有什么关系?

关于第508节的一个常见误解是“哦,我用JAWS (或者可能是NVDA)运行我的站点,它很好。所以我是合规的。”从理论上讲,第508条应该涵盖所有残疾,而不仅仅是失明。当你对重型JavaScripting感到好奇时,机构倾向于使用“软件应用程序和操作系统”(1194.21)标准,而不是“基于网络的内部网和互联网信息和系统”(1194.22),因为它们更多地讨论UI元素。不幸的是,像WebAIM这样的地方否认了这一点。

因此,当包含1194.21时,标准可以更容易地理解为“你把所有的@alts和<label>都放在上面了,但是这个网站/应用程序/系统可以使用键盘吗?也可以用键盘导航吗?”你能找到那个看起来像链接的<span>吗?

正如Mke所说,一种辅助方法是使用ARIA。因此,该<span>现在必须是:

代码语言:javascript
复制
<span onclick="Clicky()" role="link">Link</span>

(参考:MDN)

现在回到你的问题:

我知道这个问题: JavaScript链接的Href属性:"#“还是"javascript:void(0)"?有人知道在javascript代码中的其他地方定义click处理程序时,javascript:void(0)是否可接受吗?

我主张使用void,因为当引用(认为它被称为页面内引用)未定义时,焦点将返回到浏览器框架,而不是停留在链接上。您需要编写一些处理程序来将焦点返回到链接。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14715397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档