当默认tab顺序不符合逻辑顺序时,该技巧用来创建一个符合逻辑的tab书按需。但是,如果html源的内容顺序已是符合逻辑的,该技巧不是必须的。当精确设置tab顺序的时候,很容易引起可用性缺陷。
在某些情景下,开发者可能想要指定一个tab顺序,该顺序遵循内容中的关系,而不遵循代码中交互元素的顺序。在这种情况下,可以使用tabindex
属性指定一个替代顺序。tabindex
的范围是0~32767。
当使用tab键导航交互元素时,元素以tabindex
属性值增长的顺序获得焦点。tabindex
值大于0的元素将会比没有tabindex
或其值为0的元素先接收焦点。所有高tabindex
值元素获得焦点后,剩下的交互元素才会获得焦点,以其在web页面中出现的顺序。
一个搜索婚姻记录的家族搜索表单。搜索表单包含几个新郎和新娘的文本框。表单使用一个数据表格标记,该表格的第一列是新娘区域,第二列是新郎区域。内容中的顺序是一行一行的,但是开发者感觉一列一列的导航更符合逻辑。因此,所有新娘的条件可以在移动新郎区之前填写。编辑框的tabindex
属性被用来指定一列一列导航的tab顺序。
效果
一个页面在右上角包含一个搜索框。搜索框的tabindex
属性为1,这样搜索框可以第一个获得tab焦点,尽管其不是内容顺序中的第一个。
tabindex
值不需要连续,也不必开始于特定的值。tabindex
的值可以相同。具有tabindex
的元素以其出现在字符流中的顺序被导航。
在内容中,其tab顺序遵循其内容顺序,给定所有元素一个相同的tabindex
值,比为每一个元素指定不同的数值,更不容易出错。这更容易去重新排序这些元素或添加信息元素并保持符合逻辑的tab焦点。
效果