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