diff options
author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:40:17 -0500 |
---|---|---|
committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:40:17 -0500 |
commit | 33058f2b292b3a581333bdfb21b8f671898c5060 (patch) | |
tree | 51c3e392513ec574331b2d3f85c394445ea803c6 /files/ja/web/accessibility/aria/roles/listbox_role | |
parent | 8b66d724f7caf0157093fb09cfec8fbd0c6ad50a (diff) | |
download | translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.gz translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.bz2 translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.zip |
initial commit
Diffstat (limited to 'files/ja/web/accessibility/aria/roles/listbox_role')
-rw-r--r-- | files/ja/web/accessibility/aria/roles/listbox_role/index.html | 211 |
1 files changed, 211 insertions, 0 deletions
diff --git a/files/ja/web/accessibility/aria/roles/listbox_role/index.html b/files/ja/web/accessibility/aria/roles/listbox_role/index.html new file mode 100644 index 0000000000..58106a9e75 --- /dev/null +++ b/files/ja/web/accessibility/aria/roles/listbox_role/index.html @@ -0,0 +1,211 @@ +--- +title: 'ARIA: listbox ロール' +slug: Web/Accessibility/ARIA/Roles/listbox_role +tags: + - ARIA + - ARIA Role + - Accessibility +translation_of: Web/Accessibility/ARIA/Roles/listbox_role +--- +<p>\{{ariaref}}</p> + +<ul class="ul1"> +</ul> + +<ul class="ul1"> +</ul> + +<p><span class="seoSummary"><code>listbox</code> ロールは、ユーザーが静的な1つ以上の項目を選択するリストに使用され、HTML の <code><select></code> 要素とは異なり、画像を含むことがあります。</span></p> + +<h2 id="Description" name="Description">説明</h2> + +<p><code>listbox</code> ロールは、HTML の {{htmlelement("select")}} 要素と同様に、ユーザーが1つまたは複数の静的項目を選択できるリストを作成する要素を識別するために使用されます。 <code><select></code> とは異なり、リストボックス(listbox)は画像を含むことができます。 リストボックスのそれぞれの子は、<code><a href="http://www.w3.org/TR/2010/WD-wai-aria-20100916/roles#option">option</a></code> ロールを持つべきです。</p> + +<p>HTML の <code><select></code> 要素または、1項目のみを選択する場合はラジオボタンのグループ、複数項目を選択する場合はチェックボックスのグループを使用することを強くお勧めします。 なぜなら、全ての子孫のフォーカスを管理するためのキーボードのインタラクティビティがたくさんあり、ネイティブな HTML 要素がこの機能を無料で提供するためです。</p> + +<p><code>listbox</code> ロールを持つ要素は、暗黙の <code>aria-orientation</code> の値に <code>vertical</code> を持ちます。</p> + +<p class="p1">リストに<kbd>タブ</kbd>で移動した場合、他に何も選択されていない場合はリスト内の最初の項目が選択されます。 <kbd>上/下矢印</kbd>はリストをナビゲートし、<kbd>Shift + 上/下矢印</kbd>を押すと選択範囲が移動して拡張されます。 1つ以上の文字を入力すると、リスト項目をナビゲートします(同じ文字はその文字から始まる各項目に移動し、異なる文字はその文字列全体で始まる最初の項目に移動します)。 現在の項目に関連するコンテキストメニューがある場合、<kbd>Shift + F10</kbd> でそのメニューが起動します。 リスト項目がチェック可能である場合、<kbd>スペース</kbd>を使用して<a href="http://www.w3.org/TR/wai-aria-practices/#checkbox">チェックボックス</a>をトグルできます。 選択可能なリスト項目の場合、<kbd>スペース</kbd>は選択をトグルし、<kbd>Shift + スペース</kbd>を使用して連続項目を選択し、<kbd>Ctrl + 矢印</kbd>で選択せずに移動し、<kbd>Ctrl + スペース</kbd>を使用して不連続項目を選択できます。 全ての項目を選択するには、チェックボックス、リンクまたは他の方法を使用することをお勧めします。 <kbd>Ctrl + A</kbd> は、このためのショートカットキーとして使用できます。</p> + +<p class="li2"><code>listbox</code> ロールが要素に追加されるか、そのような要素が可視になると、スクリーンリーダーは、フォーカスを得たときにリストボックスのラベルとロールをアナウンスします。 オプションや項目がリスト内でフォーカスされている場合は、次にそれがアナウンスされ、その後、スクリーンリーダーがサポートしている場合は、リストでの項目の位置が示されます。 リスト内でフォーカスが移動すると、スクリーンリーダーは関連する項目をアナウンスします。</p> + +<h3 id="Associated_ARIA_roles_states_and_properties" name="Associated_ARIA_roles_states_and_properties">関連する ARIA のロール、ステート、プロパティ</h3> + +<h4 id="Associated_Roles" name="Associated_Roles">関連するロール</h4> + +<dl> + <dt><a href="/ja/docs/Web/Accessibility/ARIA/Roles/Option_Role">option</a></dt> + <dd>1つ以上のネストされたオプションが必要です。 選択された全てのオプションは、<code>aria-selected</code> が <code>true</code> に設定されています。 選択されていない全てのオプションは、<code>aria-selected</code> が <code>false</code> に設定されています。 オプションを選択できない場合は、<code>aria-selected</code> を省略します。</dd> + <dt><a href="/ja/docs/Web/Accessibility/ARIA/Roles/List_role">list</a></dt> + <dd><code>listitem</code> 要素を含むセクション。</dd> +</dl> + +<h4 id="States_and_Properties" name="States_and_Properties">ステートとプロパティ</h4> + +<dl> + <dt>aria-multiselectable</dt> + <dd>ユーザーが複数のオプションを選択できるようにするには、これを含めて <code>true</code> を設定します。 <code>true</code> に設定するならば、全てのオプションに <code>aria-selected</code> 属性を含めるべきです。 <code>false</code> または省略すると、現在選択されているオプションのみが選択され、いずれかのオプションが選択されている場合は、<code>aria-selected</code> 属性が必要で、<code>true</code> に設定する必要があります。</dd> + <dt>aria-activedescendant</dt> + <dd>そのオプションの <code>aria-selected</code> の値が <code>true</code> や <code>false</code> を持っているかどうかに関わらず、最も最近にオプションと対話したことを意味する、現在アクティブなオプションの <code>id</code> を値として取ります。 複数選択であっても、1つの <code>id</code> の値をとります。</dd> + <dt>aria-required</dt> + <dd>選択が必要であることを示します。</dd> + <dt>aria-readonly</dt> + <dd>リストボックスは編集可能ではありません。 ユーザーはオプションの選択や非選択を変更することはできませんが、それ以外の操作は可能です。</dd> +</dl> + +<h3 id="Keyboard_interactions" name="Keyboard_interactions">キーボードインタラクション</h3> + +<ul> + <li>単一選択リストボックスがフォーカスを受け取ったとき、 + <ul> + <li>リストボックスがフォーカスを受け取る前にオプションが選択されていない場合、最初のオプションがフォーカスを受け取ります。 必要に応じて、最初のオプションを自動的に選択してもよい。</li> + <li>リストボックスがフォーカスを受け取る前にオプションが選択されている場合、フォーカスは選択されたオプションに設定されます。</li> + </ul> + </li> + <li>複数選択リストボックスがフォーカスを受け取ったとき、 + <ul> + <li>リストボックスがフォーカスを受け取る前にどのオプションも選択されていない場合、フォーカスは最初のオプションに設定され、選択状態には自動的な変更はありません。</li> + <li>リストボックスがフォーカスを受け取る前に1つ以上のオプションが選択されている場合、フォーカスは選択されているリストの最初のオプションに設定されます。</li> + </ul> + </li> + <li><kbd>↓(下矢印)</kbd>: 次のオプションにフォーカスを移動します。 必要に応じて、単一選択リストボックスでは、選択もフォーカスと共に移動することがあります。</li> + <li><kbd>↑(上矢印)</kbd>: 前のオプションにフォーカスを移動します。 必要に応じて、単一選択リストボックスでは、選択もフォーカスと共に移動することがあります。</li> + <li><kbd>Home</kbd>(オプション): 最初のオプションにフォーカスを移動します。 必要に応じて、単一選択リストボックスでは、選択もフォーカスと共に移動することがあります。 5つ以上のオプションを持つリストでは、このキーをサポートすることを強くお勧めします。</li> + <li><kbd>End</kbd>(オプション): 最後のオプションにフォーカスを移動します。 必要に応じて、単一選択リストボックスでは、選択もフォーカスと共に移動することがあります。 5つ以上のオプションを持つリストでは、このキーをサポートすることを強くお勧めします。</li> + <li>先行入力は、全てのリストボックス、特に7つ以上のオプションを持つリストボックスに対してお勧めします。 + <ul> + <li> 文字を入力: フォーカスは、入力された文字で始まる名前を持つ次の項目に移動します。</li> + <li>複数の文字を連続して入力: フォーカスは、入力された文字列で始まる名前を持つ次の項目に移動します。</li> + </ul> + </li> + <li><strong>複数選択</strong>: 作成者は、複数選択をサポートするために2つのインタラクションモデルのいずれかを実装することができます。 ユーザーがリストをナビゲートしながら <kbd>Shift</kbd> や <kbd>Ctrl</kbd> などの修飾キーを押し続けなくてもよい推奨モデルや、選択状態が失われるのを避けるためにナビゲート中に修飾キーを押し続ける必要のある代替モデルがあります。 + <ul> + <li>推奨選択モデル — 修飾キーを押し続ける必要はありません。 + <ul> + <li><kbd>スペース</kbd>: フォーカスされたオプションの選択状態を変更します。</li> + <li><kbd>Shift + ↓(下矢印)</kbd>(オプション): 次のオプションにフォーカスを移動し、選択状態をトグルします。</li> + <li><kbd>Shift + ↑(上矢印)</kbd>(オプション): 前のオプションにフォーカスを移動し、選択状態をトグルします。</li> + <li><kbd>Shift + スペース</kbd>(オプション): 直前に選択した項目からフォーカスされた項目までの連続した項目を選択します。</li> + <li><kbd>Ctrl + Shift + Home</kbd>(オプション): フォーカスされたオプションから最初のオプションまでの全てのオプションを選択します。 必要に応じて、フォーカスを最初のオプションに移動します。</li> + <li><kbd>Ctrl + Shift + End</kbd> (オプション): フォーカスされたオプションから最後のオプションまでの全てのオプションを選択します。 必要に応じて、フォーカスを最後のオプションに移動します。</li> + <li><kbd>Ctrl + A</kbd>(オプション): リスト内の全てのオプションを選択します。 必要に応じて、全てのオプションが選択されている場合は、全てのオプションを非選択にすることもできます。</li> + </ul> + </li> + </ul> + </li> +</ul> + +<h3 id="Required_JavaScript_features" name="Required_JavaScript_features">必要な JavaScript 機能</h3> + +<h4 id="selecting_an_option_in_a_single_select_listbox" name="selecting_an_option_in_a_single_select_listbox">単一選択リストボックスでオプションを選択する</h4> + +<p>ユーザーがオプションを選択すると、以下が起こる必要があります。</p> + +<ol> + <li>前に選択したオプションを非選択にし、<code>aria-selected</code> を <code>false</code> に設定するか、属性を完全に削除して、新しく選択されなくなったオプションの外観を選択されていないように変更する。</li> + <li>新しく選択したオプションを選択し、オプションで <code>aria-selected="true"</code> と設定し、新しく選択されたオプションの外観を選択されているように変更する。</li> + <li>リストボックスの <code>aria-activedescendant</code> の値を、新しく選択したオプションの <code>id</code> に更新する。</li> + <li>オプションのぼかし、フォーカス、選択状態を視覚的に処理する。</li> +</ol> + +<h4 id="Toggling_the_state_of_an_option_in_a_multi_select_listbox" name="Toggling_the_state_of_an_option_in_a_multi_select_listbox">複数選択リストボックスでオプションの状態をトグルする</h4> + +<p>ユーザーがオプションをクリックするか、オプションにフォーカスを当てたときに<kbd>スペース</kbd>を押すか、その他でオプションの状態をトグルすると、以下が起こる必要があります。</p> + +<ol> + <li>現在選択されているオプションの <code>aria-selected</code> ステート(状態)をトグルし、選択されている <code>aria-selected</code> の状態を <code>false</code> なら <code>true</code> に、<code>true</code> なら <code>false</code> に変更する。</li> + <li>選択状態を反映するようにオプションの外観を変更する。</li> + <li>リストボックスの <code>aria-activedescendant</code> の値を、オプションが非選択へトグルされている場合でも、ユーザーが直前に対話したオプションの <code>id</code> に更新します。</li> +</ol> + +<div class="note"> +<p> ARIA の最初のルールは、要素を再定義し、ARIA のロール、ステート、プロパティを追加してアクセス可能にするのではなく、すでに組み込まれている意味論と挙動を持つネイティブな機能を使用できることです。 <code><option></code> 要素を子孫に持つ <code><select></code> 要素は、必要な全てのインタラクションをネイティブに処理します。</p> +</div> + +<h2 id="Examples" name="Examples">例</h2> + +<h4 class="p1" id="Example_1_A_single_select_listbox_that_uses_aria-activedescendant" name="Example_1_A_single_select_listbox_that_uses_aria-activedescendant">例 1: aria-activedescendant を使用する単一選択リストボックス</h4> + +<p class="p2">以下のスニペットは、<code>listbox</code> ロールが HTML ソースコードに直接どのように追加されるかを示しています。</p> + +<pre class="brush: html"><p id="listbox1label" role="label">色を選択:</p> +<div role="listbox" tabindex="0" id="listbox1" aria-labelledby="listbox1label" + onclick="return listItemClick(event);" + onkeydown="return listItemKeyEvent(event);" + onkeypress="return listItemKeyEvent(event);" + aria-activedescendant="listbox1-1"> + <div role="option" id="listbox1-1" class="selected" aria-selected="true">緑</div> + <div role="option" id="listbox1-2">オレンジ</div> + <div role="option" id="listbox1-3">赤</div> + <div role="option" id="listbox1-4">青</div> + <div role="option" id="listbox1-5">紫</div> + <div role="option" id="listbox1-6">ペリウィンクル</div> +</div> +</pre> + +<p>これは、ネイティブの HTML の {{htmlelement("select")}} 要素と {{htmlelement("label")}} 要素でより簡単に処理できます。</p> + +<pre class="brush: html"><label for="listbox1">色を選択:</label> +<select id="listbox1"> + <option selected>緑</option> + <option>オレンジ</option> + <option>赤</option> + <option>青</option> + <option>紫</option> + <option>ペリウィンクル</option> +</select></pre> + +<h4 id="More_examples" name="More_examples">より多くの例</h4> + +<ul> + <li><a href="https://w3c.github.io/aria-practices/examples/listbox/listbox-scrollable.html">スクロール可能なリストボックスの例</a>: 1より大きい <code>size</code> 属性を持つ HTML の <code><select></code> と同様な、スクロールしてより多くのオプションを表示する単一選択リストボックス。(英語)</li> + <li><a href="https://w3c.github.io/aria-practices/examples/listbox/listbox-collapsible.html">折りたたみ可能なドロップダウンリストボックスの例</a>: 属性 <code>size="1"</code> を持つ HTML の <code><select></code> と同様な、アクティブにすると展開される単一選択の折りたたみ可能なリストボックス。(英語)</li> + <li><a href="https://w3c.github.io/aria-practices/examples/listbox/listbox-rearrangeable.html">並べ替え可能なオプションを持つリストボックスの例</a>: オプションの追加、移動、および削除が可能なツールバーが付属する、単一選択リストボックスと複数選択リストボックスの両方の例。(英語)</li> +</ul> + +<h2 id="Best_practices" name="Best_practices">ベストプラクティス</h2> + +<ul class="ul1"> + <li class="li3">キーボードからアクセス可能にするには、作成者はこのロールの全ての子孫の<a href="https://www.w3.org/TR/wai-aria-1.1/#managingfocus">フォーカスを管理</a>する必要があります。</li> + <li class="li3">リストにフォーカスが当てられていない場合、作成者は選択に異なるスタイリングを使用することが推奨されます。 例えば、非アクティブな選択が、より明るい背景色で表示されることが多い。</li> + <li class="li3">リストボックスが別のウィジェットの一部でない場合は、<code>aria-labelledby</code> プロパティが設定されている必要があります。</li> + <li class="li3">1つ以上のエントリがリストボックスの DOM の子でない場合、追加の <code>aria-*</code> プロパティを設定する必要があります(<a href="http://www.w3.org/TR/wai-aria-practices/#listbox_div">ARIA のベストプラクティス</a>(英語)を参照)。</li> + <li class="li3">リストボックスを<a href="https://www.w3.org/TR/wai-aria-1.1/#aria-expanded">展開</a>する正当な理由がある場合、<code><a href="/ja/docs/Web/Accessibility/ARIA/Roles/Combobox_Role">combobox</a></code> ロールがより適切かもしれません。</li> +</ul> + +<h2 id="Specifications" name="Specifications">仕様</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">仕様</th> + <th scope="col">状態</th> + </tr> + <tr> + <td>{{SpecName("ARIA","#listbox","ARIA listbox role")}}</td> + <td>{{Spec2('ARIA')}}</td> + </tr> + <tr> + <td>{{SpecName("ARIA Authoring Practices","#Listbox","Listbox Role")}}</td> + <td>{{Spec2('ARIA Authoring Practices')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Screen_reader_support" name="Screen_reader_support">スクリーンリーダーのサポート</h2> + +<p>TBD</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>HTML {{htmlelement("select")}} 要素</li> + <li>HTML {{htmlelement("label")}} 要素</li> + <li>HTML {{htmlelement("option")}} 要素</li> + <li><a href="/ja/docs/Web/Accessibility/ARIA/Roles/Combobox_Role">ARIA: <code>combobox</code> ロール</a></li> + <li><a href="/ja/docs/Web/Accessibility/ARIA/Roles/Option_Role">ARIA: <code>option</code> ロール</a></li> + <li><a href="/ja/docs/Web/Accessibility/ARIA/Roles/list_Role">ARIA: <code>list</code> ロール</a></li> + <li><a href="/ja/docs/Web/Accessibility/ARIA/Roles/Listitem_role">ARIA: <code>listitem</code> ロール</a></li> + <li class="li2"><a href="https://www.w3.org/TR/wai-aria-practices/#Listbox">ARIA のベストプラクティス — リストボックス</a>(英語)</li> + <li class="li2"><a href="https://www.w3.org/TR/wai-aria-1.1/#listbox">ARIA のロールモデル — リストボックス</a>(英語)</li> +</ul> |