tabindex 属性

7.3.1 シーケンシャル・フォーカス・ナビゲーションと tabindex 属性

tabindex コンテンツ属性は、要素がフォーカス可能かどうかを、そして、シーケンシャル・フォーカス・ナビゲーションを使って該当の要素に移動できるかどうかを、そして、シーケンシャル・フォーカス・ナビゲーションのための要素の相対的な順番を指定します。"タブ・インデックス" という名前は、フォーカス可能な要素を渡り動くため、一般的に "タブ" キーが使われていることに由来しています。"タビング" という用語は、シーケンシャル・フォーカス・ナビゲーションを使って到達可能でフォーカス可能な要素を渡り動くことを意味します。

tabindex 属性は、もし指定されれば、その値は妥当な整数でなければいけません。

この属性が指定されたら、整数パース規則を使ってパースしなければいけません。属性値は次の意味を持ちます:

属性が省略された、または、値をパースしたらエラーになった場合

ユーザーエージェントは、該当の要素がフォーカス可能かどうか、もしそうなら、その要素がシーケンシャル・フォーカス・ナビゲーションを使って到達できるかどうか、そして、どんな相対的順番でフォーカスするのかについては、プラットフォームの慣習に従って決定するべきです。

値が負の整数だった場合

ユーザーエージェントは、該当の要素をフォーカスできるようにしなければいけません。しかし、シーケンシャル・フォーカス・ナビゲーションを使って到達できるようにすべきではありません。

値がゼロだった場合

ユーザーエージェントは、該当の要素をフォーカスできるようにしなければいけません。そしてシーケンシャル・フォーカス・ナビゲーションを使って到達できるようにすべきです。そして、プラットフォームの慣習に従って、その要素の相対的順番を決定すべきです。

値がゼロより大きかった場合

ユーザーエージェントは、該当の要素がフォーカスできるようにしなければいけません。そして、シーケンシャル・フォーカス・ナビゲーションを使って到達できるようにするべきです。そして、次の通りとなるように、シーケンシャル・フォーカス・ナビゲーションの順番に該当要素を位置づけるべきです:

  • tabindex 属性が省略されているか、または、パース時に値がエラーとなるフォーカス可能な要素の前
  • tabindex 属性がゼロ以下の値となっているフォーカス可能な要素の前
  • tabindex 属性がゼロより大きくて該当要素の tabindex 属性の値より小さい値となっている要素の後
  • tabindex 属性が該当の要素の tabindex 属性の値に等しいが、該当の要素よりドキュメント内でツリー順序が手前となる要素の後
  • tabindex 属性が該当の要素の tabindex 属性の値に等しいが、該当の要素よりドキュメント内でツリー順序が後ろとなる要素の前
  • tabindex 属性が該当の要素の tabindex 属性の値より大きい要素の前

前述の tabindex 属性の定義で、該当の要素がフォーカス可能であると定義されれば、その要素は特別フォーカス可能といいます。

特別フォーカス可能だが、アクティベーション・ビヘイビアを持たない要素は、何もしないアクティベーション・ビヘイビアを持つことになります。

これは、tabindex 属性によってフォーカス可能になった要素は、non-mouse activation への応答において click イベントを発出することを意味します(例:その要素がフォーカスされて"enter" キーを押す)。

tabIndex IDL 属性は、tabindex コンテンツ属性の値を反映しなければいけません。このデフォルト値は、フォーカス可能な要素なら 0 となり、フォーカス可能でない要素なら -1 になります。


※ 原文:http://www.w3.org/TR/2011/WD-html5-20110113/editing.html#sequential-focus-navigation-and-the-tabindex-attribute