2015-02-11 34 views
0

比方說,我有一個帶有標題和許多按鈕的複雜頁面。 然後在頁面下方,我有一個部分,DOM中的順序與它們應該聚焦的實際順序不匹配。tabIndex在大數開始時如何工作

我知道我可以添加tabIndex屬性,使它們按正確的順序可以進入Tab鍵。

但是,這會如何影響沒有tabIndex的部分上方的按鈕和鏈接?

例如:

<header> 
<a></a> 
<a></a> 
<a></a> 
<a></a> 
</header> 
<div> 
<button tabIndex=3 /> 
<button tabIndex=2 /> 
<button tabIndex=1 /> 
</div> 

將在報頭中的鏈接之前或按鈕之後是focussable?

如果我從10而不是1開始怎麼辦?

有沒有一種方法來限制某個DOM元素中的tabIndex的順序,但否則會與頁面的其餘部分一起流動?

+0

首先,您不應該創建如此差的可用性。作爲一個經驗法則,如果你認爲你需要tabindex,你的網站確實需要重新設計。 – 2015-02-11 21:28:11

+0

我對tabIndex有很好的理由。我正在做的是一個網格佈局,其中訂單可以輕鬆更改。所以我使用絕對定位。我想更新tabIndex以遵循視覺順序而不是DOM順序。 – 2015-02-12 18:18:03

+0

另外,如果你注意到,我沒有使用非語義標籤。我已經只使用鏈接和按鈕。我只需要幫助訂購。 – 2015-02-12 18:20:36

回答

2

支持和分配tabindex的元素先導航到其他元素。由於W3 states

  1. 那些支持tabindex屬性併爲其分配正值的元素首先被導航。導航從具有最低tabindex值的元素進入具有最高值的元素。價值觀不一定是順序的,也不一定要以任何特定價值開始。具有相同tabindex值的元素應按照它們在字符流中出現的順序進行導航。
  2. 接下來,導航那些不支持tabindex屬性或支持它併爲其分配值爲「0」的元素。這些元素按照它們在字符流中出現的順序進行導航。
  3. 禁用的元素不參與Tab鍵順序。
+0

因此,爲了澄清,你是說如果我把tabIndex:1放在所有鏈接上,並且從tabIndex 2開始,那麼它應該按照正確的順序工作? – 2015-02-12 18:19:58

+0

是的。這很容易測試。 – j08691 2015-02-12 18:25:02

1

那麼,你可以把tabIndex = -1放在節中的鏈接上,這樣它們就不會出現在Tab鍵順序中。這樣,他們將直接轉到分配了tabIndex值的人。

+0

我希望錨鏈接成爲Tab鍵順序的一部分。我不希望他們跳過。 – 2015-02-12 18:19:18