ウィジェットでroving tabindexを管理する
矢印キーで複合コントロール内を移動できるようにします。
「ウィジェットでroving tabindexを管理する」はCoddyKit上の無料Web Accessibility Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはWeb Accessibility Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Web Accessibility Academyコースには全4レッスンが含まれています。
ウィジェット全体を1か所で停止する
ツールバーやラジオボタングループでは、Tabで各項目ではなくウィジェットに1回だけ到達するようにします。これを実現するパターンがroving tabindexです。
基本的な考え方
一度にtabindex="0"を持つ項目は1つだけにします。それ以外の項目にはtabindex="-1"を設定し、Tabでグループ内の1か所から入れるようにします。
初期設定
読み込み時に、最初の項目または選択中の項目へtabindex="0"を設定し、それ以外にはtabindex="-1"を設定します。これがグループの待機状態です。
<button tabindex="0">Bold</button>
<button tabindex="-1">Italic</button>矢印キーで内部を移動する
フォーカスがグループ内に入ったら、Tabではなく矢印キーで項目間を移動します。Tabではウィジェット全体から抜けます。
rovingの手順
矢印キーが押されたら、2つの処理を行います。以前の項目を-1にし、新しい項目を0にしてから、新しい項目でfocus()を呼び出します。🧭
old.tabIndex = -1;
next.tabIndex = 0;
next.focus();0を1つだけにする理由
単一のtabindex="0"を維持すると、Tabは常にユーザーが最後に使った項目へ移動するため、ウィジェットに戻る操作が自然になります。
APGのパターンに合わせる
ARIA Authoring Practices Guideでは、各ウィジェットに必要なキーが正確に定められています。独自のものを考えず、指定されたキーボード操作の対応表に従ってください。
循環移動は任意
多くのウィジェットでは矢印キーによる移動が循環します。最後の項目で右矢印キーを押すと、最初の項目に戻る仕組みです。パターンを循環させるべきかどうかは、APGで確認してください。
Home と End も追加
複合ウィジェットでは、最初と最後の項目に移動するためにHome と Endを追加することがよくあります。小さな工夫ですが、ナビゲーションが速くなります。
roving tabindex と aria-activedescendant
roving tabindex は実際の DOM フォーカスを移動させます。もう一つの方法である aria-activedescendant では、コンテナーにフォーカスを置いたまま、仮想的なアクティブ項目を指し示します。
一連の流れ全体をテストする
Tab で中に入り、すべての項目を矢印キーで移動し、Tab で外に出ます。その後もう一度 Tab で入り、フォーカスが最後に使用した項目に戻ることを確認してください。
クイックチェック
roving tabindex を使うツールバーでは、どの時点でも tabindex="0" になっている項目はいくつありますか?
まとめ
roving tabindexをマスターしました。1つの項目を 0、残りを -1 に設定し、矢印キーで 0 を項目間で移動させ、Tab でウィジェット全体を通過します。🚀
よくある質問
「ウィジェットでroving tabindexを管理する」レッスンは無料ですか?
はい。「ウィジェットでroving tabindexを管理する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Web Accessibility Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Web Accessibility Academyコースには全4レッスンが含まれています。
「ウィジェットでroving tabindexを管理する」で何を学びますか?
矢印キーで複合コントロール内を移動できるようにします。 ブラウザで直接実行するハンズオンコードでWeb Accessibility Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Web Accessibility Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのWeb Accessibility Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「ウィジェットでroving tabindexを管理する」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このWeb Accessibility Academyレッスンでコードを書いて実行できますか?
はい。すべてのWeb Accessibility Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- tabindex 0、-1、そして正の値は使わない
- アクション後にフォーカスを移動する
- レイヤーを閉じたときにフォーカスを戻す
- ウィジェットでroving tabindexを管理する