javascript 从Tab键顺序中删除HTML标记

yjghlzjz  于 2023-04-10  发布在  Java
关注(0)|答案(2)|浏览(135)

在我的应用程序的标签循环中,<html>标签占据了一个标签位。我希望从点击循环中删除<html>标签。
我尝试将tabindex="-1"添加到<html>标签中,但至少在IE11上,这似乎并没有将元素从tab循环中删除。我几乎可以使用JS旋转自己的逻辑来“跳”到下一个可聚焦元素,如果document.activeElement === <html>,但我想知道是否有更简单的方法。
该解决方案需要跨主要浏览器支持:IE11、Edge、FF、Chrome、Safari。
有什么想法吗

lokaqttq

lokaqttq1#

我访问了tabindex属性的HTML规范:https://html.spec.whatwg.org/multipage/interaction.html#the-tabindex-attribute
以下是第二帕拉:
当属性被省略时,用户代理将应用默认值(如果不禁用元素或使其成为惰性元素,则无法使正在呈现的元素完全不可聚焦)。
正如上面明确提到的,使任何元素不可聚焦的唯一方法是使其禁用或使其在DOM中不可见。
我仍在寻找,并将发布关于这一点的更新。
而且,我也试图复制这个问题,在IE上做不到。(没有尝试在其他浏览器上复制)。

更新一:

我找到了difference in tabIndex between HTML4 AND HTML5
虽然HTML5允许在任何元素上添加tabIndex属性,但它可能没有任何效果。这也适用于HTML元素。我知道,我们如何知道HTML元素是否被聚焦?

w8f9ii69

w8f9ii692#

根据我的简单研究,我发现你可以使用tabindex="-1"
W3C HTML5规范支持负tabindex值。
您也可以使用,适用于大多数浏览器:

element.removeAttribute('tabindex');

我在jquery中发现了这种方法,但我不确定

$('#yourelment').prop('tabIndex', -1);

请查看这些链接以了解更多详细信息:

相关问题