Windows 中的 Chrome/Opera 用户:将以下行包含在任何有效的 html 框架中:
<a id = "a" href="http://www.google.com">http://www.google.com</a>
<br />
Some text THEN a link <a id="b" href="http://www.google.com">http://www.google.com</a>
<br />
<a id="c" href="http://www.google.com">http://www.google.com</a> A link THEN some text
<br />
现在,将鼠标放在一边并仅使用tab上下文键/菜单键/应用程序键*,尝试“将链接另存为”。第一个和第三个失败并尝试保存当前页面。第二个工作正常。此外,如果我使用像 normalizr 这样的 css 重置库,它会在所有链接上失败。
在 IE 和 Firefox 中,所有链接的行为都应如此。这只发生在基于眨眼的浏览器中。
*(随便称呼它,它是鼠标指针指向上下文菜单的图像,通常位于键盘 alpha 部分的右下角,键盘用户和盲人/屏幕阅读器用户依赖它)。
Chromium 已经删除了我票证上的“错误”标签,并表示希望行为一致,不仅在鼠标和键盘之间,甚至在一行上的链接放置之间,是一个“功能请求”。
除了召集一小群盲人用户来解释为什么将他们排除在外很糟糕之外,我还希望能够提供坚如磐石的技术证明。
问题是,几乎整个上午之后,我都找不到一种方法来“区分”两个 DOM 元素以找出导致一个工作和一个失败的原因。
有许多 stackoverflow 答案指向以下内容:
var a = document.getElementById("a");
var b = document.getElementById("b");
alert( a.isEqualNode(b) );
但无论如何它对我没有多大帮助。问题是,深入研究所有事件属性、侦听器、元素、样式等似乎是一项无休止的任务——仅在“模糊”侦听器上似乎有几乎无限级别的属性。如您所知,在这一点上,我是一个但超出了我的深度的人。
tl;我的问题的博士版本
有什么方法可以获取DOM /浏览器对元素的了解,并将其与应该是相同的元素进行比较?
澄清
这是一个与依赖键盘快捷键的用户的可访问性有关的问题,该快捷键仅影响围绕闪烁渲染引擎构建的浏览器。这与 DOM 相关,而不是 javascript。在删除这三个基本标签或添加其他不相关的标签之前,请仔细考虑这个问题。谢谢你。