【tabindex属性】要素にフォーカスの移動順序を定める「HTML・属性・初心者向け」- ノブレコ

HTML tabindex 解説

tabindex属性とは

キーボード操作時にtabキーを押すことで、任意で決めた値の順序に沿ってフォーカスを移動させることができます。

このフォーカス移動のことを「シーケンシャルフォーカスナビゲーション」と呼びます。

通常は、DOMツリー順(HTMLのソースコード中の要素の出現順)にフォーカスが移動します。

通常、HTML要素の中には、フォーカス可能と定義されているものがあり、そのフォーカス可能な要素だけがシーケンシャルフォーカスナビゲーションができる対象となっています。ですから全ての要素がフォーカスを受け取ることができるわけではありません。ですが、このtabindex属性を使用するとフォーカス可能でない要素をフォーカス可能にすることができます。

フォーカス可能な要素は、javasctiptのfocus()メソッドでフォーカスを受け取ることもできます。

tabindex属性の属性値に整数を指定し、属性の有無を指定する数値によってフォーカスの順序を変化させることができます。

属性値には、(”正の数”、”0”、”負の数”)の数値を指定します。

【属性が指定されていない場合】

tabindex属性が指定されていない場合、初期状態でフォーカス可能の要素があればフォーカスすることができますが、そうでない場合はtabindex属性が指定されない限りフォーカス指定を受け取ることはできません。

【仕様】

★属性の区分

グローバル属性

★対応ブラウザ

・Chrome

・Firefox

・Internet Explorer

・Opera

・Sarari

【使用目的】

この属性は、tabキーをクリックしたときの、フォーカスの移動順序の挙動を設定したい場合に使用します。

ちなみに、tabキーでは順方向に、Shift+tabキーでは逆方向にフォーカスを移動することができます。

【使用上の注意点】

① 属性値は0、-1以上の数値をあまり使わないようにする。

tabindex属性の値を0より大きくしたり、要素の順序を変更できるCSSプロパティを使用したりすると、キーボードのナビゲーション、技術支援をしているユーザーの操作が難解になる恐れがあります。

② tabindex属性は<dialog>要素に使用してはならない。

③ 対話型コンテンツ以外にtabindex属性を指定することは控える。

対話的要素でない要素に使用して対話的コンポーネントを記述してしまうと、アクセシビリティツリーに掲載されなくなります。要するに、技術支援によって移動や操作することを妨害する恐れがあります。

【指定できる要素】

tabindex属性は、グローバル属性のため、全てのHTML要素に指定することができます。

ですが、指定したHTML要素との組み合わせ次第では、属性の効果が発揮されないことがあるので注意してください。

【候補となる要素】

tabindex属性はグローバル属性で、全ての要素に指定することができますが、使用する要素は以下に記されたものに限られてきます。

候補になる要素名

<a>(href要素が指定されているもの)

<link>(href要素が指定されているもの)

<button>

<input>(type属性が”hidden”以外のもの)

<select>

<textarea>

< menuitem>

・draggable属性が指定されている要素

【初期値でフォーカス可能な要素】

初期値でフォーカスできる要素

<a>(href属性が付与されているもの)

<button>

<input>(hidden属性を使わないもの)

<select>

<textarea>

※ 上記の要素は、tabindex属性を指定しなくても、マウスクリックでフォーカスをすることができます。また、tabキーで順序を移動させることができます。

旧HTMLからの変更点

・HTML5:指定できる要素が7種類の要素から、全種類になりました。

・HTML5:負の整数値を指定できるようになりました。

・HTML5:属性値の数値上限が、32767と決められていましたが、現在ではこの上限が適用されているのか不明です。

実用例

■tabindex属性の使用例

★tabindex属性の記述例

この例は、属性値を正の数で順序付けたコードです。

下の順序をクリックしてtabキーを押すと、数字の小さい順番から大きい順に移動していきます。

★表示結果

一番目

二番目

三番目

五番目

四番目

まとめ

この記事では、tabindex属性についての解説をいたしました。

この属性は、要素に指定することで、tabキーをクリックしたときのフォーカスの挙動を設定することができる属性です。

アクセシビリティ上、使用する際は正の数の使用は控えることをオススメします。

不用意なフォーカス順序の変更は、キーボード操作をしているユーザーなどに対して、予測しない箇所へのフォーカス移動が発生する場合があります。

使用する際は、ユーザーの操作性を損なわないように注意して指定しましょう。

この記事が少しでも皆さんのお役に立てれば幸いです。

最後まで読んでいただき、ありがとうございました。またなん☺

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA