我试图添加tabindex="0"以使未聚焦的元素成为焦点。我还添加了javascript代码来在焦点元素上激发Enter键。我有两个锚链接,一个有href值,另一个没有href。我将tabindex="0"添加到非href锚点标记中。
<a onclick="ob_os(this)" href="/ic/project/Headlines/headlines.asp" target="main">Home</a>
<a tabindex="0" onclick="ob_os(this)">Documents</a>
ob_os((是一个扩展和collpase元素的函数。但在将tabindex="0"添加到第二个链接后,会对第一个链接产生影响。当焦点在第一个链接上并按下Enter键时,它不会扩展,而第二个链接正在扩展。
function ob_os(e){
var os = e.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.firstChild.firstChild;
if (os != null) {
if ((typeof os != "undefined") && (os.tagName == "IMG")) {
var lensrc = (os.src.length - 8);
var s = os.src.substr(lensrc, 8);
if ((s == "inus.gif") || (s == "usik.gif")) {
e.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.firstChild.firstChild.click();
}
}
else {
ob_os(e.parentNode);
}
}}
由于没有href
属性的<a>
不会被屏幕阅读器视为链接,请执行以下操作:
- 删除您的
tabindex
,您将不需要它 - 将
link
ARIA角色添加到您的锚点
结果如下:
<a onclick="ob_os(this)" href="/ic/project/Headlines/headlines.asp" target="main">Home</a>
<a role="link" onclick="ob_os(this)">Documents</a>
第二个链接实际上是一个按钮,应该被分配一个角色。链接用于导航到页面或视图,而按钮用于页面上的交互式元素。在href中使用javascript:void(0);
可以防止页面滚动到顶部,同时屏幕阅读器也可以正确识别页面。
<a onclick="ob_os(this)" href="/ic/project/Headlines/headlines.asp" target="main">Home</a>
<a role="button" href="javascript:void(0);" onclick="ob_os(this)">Documents</a>