我正在开发一个网页应用程序,其中一个重复的(锚点)元素在我通过页面时无法获得键盘焦点。只有当我添加tabindex=0时,才能将其选中。尽管我的目标是使焦点可见,但我使用jQuery代码片段来确定元素是否获得了焦点:
// Whenever I hit tab, show me which element has focus
$('main').on('keydown',function(e) {
var keyCode = e.keyCode || e.which;
if (keyCode == 9) {
console.log("focus is now on ", $(':focus'));
}
});
)
这让我感到困惑。根据 规范, "tabindex"属性也可以将任何元素变成交互内容 - 但是默认情况下,列表中的一个交互元素为 a
。
再次引用无障碍文章:
一个 [tabindex] 值为0表示该元素应放置在默认导航顺序中。这使得那些原生不支持焦点的元素(如 <div>, <span> 和 <p>)能够接收键盘焦点。当然,通常应使用链接和表单控件来创建所有交互式元素... (http://webaim.org/techniques/keyboard/tabindex)
是什么原因导致锚点元素在通过页面的交互元素时被跳过?
<a>
标签属性不是选项卡。 - Spencer Wieczorek