我正在编写一个单元测试来测试我的网页上的选项卡顺序,但我找不到一种方法来模拟用户按下TAB键以聚焦于下一个可聚焦元素,尽管这似乎是一项容易的任务。
允许使用jQuery,但更喜欢纯JavaScript解决方案。任何形式的帮助都将不胜感激。
// TODO
function triggerTab () {
}
$("#btn-save").focus();
triggerTab();
// Expect the focus is on the cancel button now.
console.log(document.activeElement.id);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p> some text </p>
<button id="btn-save"> save </button>
<button id="btn-cancel> cancel </button>
顺便说一下,在下一个可聚焦的元素上调用focus()是不可接受的,即使您可以编写代码来找出下一个可聚焦的元素。因此,这条路不是我想要的:
function getAllFocusables () {
...
}
var focusables = getAllFocusables(),
index = focusables.indexOf(document.activeElement);
$(focusables[index+1]).focus();