HTML tabindex — TAB按键操作

By | 2020年6月8日

tabindex支持的元素

HTML 4.0.1,只支持<a>, <area>, <button>, <input>, <object>, <select>和<textarea>

HTML 5,所有HTML Element都支持,tabindex是个global attributes。

浏览器对tabindex的支持

Edge 12以上版本,以及其他所有浏览器都支持。

tabindex的value

tabindex的值是个整数,如果不设置默认值为0。

  • 负数(通常 tabindex=”-1”),表示改元素不能被TAB键访问,但是能用Javascript或鼠标点击让元素获得focus。

用处:当有个元素是隐藏的,只有某个事件下才会显示。将元素tabindex设置为负数,就可以让TAB键访问不到该元素,但是Javascript可以调用focus()让该元素获得焦点。

  • tabindex=”0”,当tabindex值为正数的元素都访问完后,才会访问tabindex=”0”的元素。tabindex=”0”的元素顺序是由元素在document中的顺序决定的,从上到下,从左到右。
  • 正数,定义元素的TAB访问顺序。tabindex=”4”在tabindex=”5”和tabindex=”0”前访问,但是在tabindex=”3”之后访问。如果多个元素有相同的正数,则按照他们的document顺序访问。

实践

避免给tabindex设置大于0 的值,这会给依赖于快捷键访问元素的用户带来困扰。我们应该保持element在document中的顺序。

如果给<div>设置了tabindex,则<div>中的内容不能通过方向键滚动,除非给<div>里的内容也设置tabindex。

Reference

https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex