如何防止HTML音频控件在选项卡键导航期间获得焦点?
我有一个HTML页面,其中有一堆HTML音频元素(带有启用的控件)与文本输入元素交织在一起。音频元素具有tabindex=“-1”,文本输入具有正tabindex。这不会阻止Chrome在进行TAB键导航时迭代6个控件元素 可能音频控件不受tabindex行为的影响:但如果不是: 可以禁止他们从键盘获得焦点吗(没有JavaScript;下面是我的JS解决方案)?我希望用户能够使用TAB仅迭代文本输入(并在必要时使用鼠标播放音频),这是一个众包场景,因此节省用户的工作量非常重要 根据@makusium的评论,我提出了以下JavaScript解决方案:如何防止HTML音频控件在选项卡键导航期间获得焦点?,html,google-chrome,html5-audio,Html,Google Chrome,Html5 Audio,我有一个HTML页面,其中有一堆HTML音频元素(带有启用的控件)与文本输入元素交织在一起。音频元素具有tabindex=“-1”,文本输入具有正tabindex。这不会阻止Chrome在进行TAB键导航时迭代6个控件元素 可能音频控件不受tabindex行为的影响:但如果不是: 可以禁止他们从键盘获得焦点吗(没有JavaScript;下面是我的JS解决方案)?我希望用户能够使用TAB仅迭代文本输入(并在必要时使用鼠标播放音频),这是一个众包场景,因此节省用户的工作量非常重要 根据@makusi
onkeydown函数(evt)
{
const tab=evt.keyCode==9,shift=evt.shiftKey;
常量tabIndex=(document.activeElement | |{tabIndex:-1});
如果(选项卡)
{
const newTabIndex=shift?Math.max(0,tabIndex-1):tabIndex+1;
const newElem=document.querySelector(`[tabindex=“${newTabIndex}”`);
if(newElem)
newElem.focus();
返回false;
}
返回true;
}
文件。添加了监听器('keydown',onkeydown');
此链接可能会帮助您:谢谢。似乎manuall onkeydown处理是当前唯一的方法此链接可能会帮助您:谢谢。似乎manuall onkeydown处理是当前唯一的方法