Closed5

WAI-ARIA Authoring Practices 1.2のComboboxの章を読む

nissy-devnissy-dev

Combobox = Popupが付属した input 要素

  • 入力不可の場合 -> select-only combobox
    • これがいわゆるドロップダウンメニューか
  • 入力不可の場合 -> editable combobox
    • 入力できる内容も、自由な場合や制限された値のみの場合などがもちろんある

使いどころ

  • 事前に定義された値のうちの1つを入力させたいとき
  • 任意の値を入力させたいが、サジェスト機能があると便利なとき

これがいわゆるドロップダウンメニューか

ドロップダウンは、role="menubar"や"listbox"などで見た目を作るのが一般的っぽい

https://react-bootstrap.github.io/components/dropdowns/

Navigation Menubar Example
https://www.w3.org/TR/wai-aria-practices-1.2/examples/menubar/menubar-1/menubar-1.html

Collapsible Dropdown Listbox Example
https://www.w3.org/TR/wai-aria-practices-1.2/examples/listbox/listbox-collapsible.html

nissy-devnissy-dev

Popupについて

  • Popupに表示する内容は、ユーザーが選択できる選択肢 or 入力したい内容のサジェストが多い
  • Popupとしては、 listbox/grid/tree/dialogのようなUIで構成されることが多い
  • Popupの表示のタイミング
    • 下矢印や開くボタンがあってそれをクリックしたとき
    • 文字が空 + フォーカスされたとき
  • 文字が入力されている場合は、入力文字に部分一致している選択肢やサジェストを表示
nissy-devnissy-dev

Autocompleteについて

  • No autocomplete
    • 入力された文字にかかわらず、ポップアップはいつも同じ値を表示
  • List autocomplete with manual selection
    • 入力された文字列に対応した (完全 or 部分一致) 値がポップアップに表示される
    • ユーザーがポップアップで値を選択しない限り、ユーザーが入力した文字列がコンボブックスの値になる
  • List autocomplete with automatic selection
    • 入力された文字列に対応した (完全 or 部分一致) 値がポップアップに表示される
    • 表示された候補は、最初の候補が自動的に選択されてハイライト表示される
    • 別の候補を選択 or 入力した文字列を変更しない限り、フォーカスを失ったときにセットされる値は自動的に選択された値
  • List with inline autocomplete
    • 基本は List autocomplete with automatic selection と同じ
    • 入力カーソルの後に補完文字列がインラインで表示される
nissy-devnissy-dev

リストボックスやメニューボタンとの違い

  • ユーザーは値の一部または全部を選択してクリップボードにコピーできる

コンボボックスとメニューボタン

  • 現在の選択を維持しながら、許可された選択肢のセットを確認できる
    • ポップアップをエスケープで閉じると、ナビゲート前に選択していた値に戻す事ができる
    • 単一選択のリストボックスでは、選択肢を移動するとすぐに値が変更されてしまう

コンボボックスとリストボックス

menubotton

確かに値がない
https://www.w3.org/TR/wai-aria-practices-1.2/examples/menu-button/menu-button-links.html

listbox

値はinputにセットしている
https://www.w3.org/TR/wai-aria-practices-1.2/examples/combobox/combobox-autocomplete-both.html

このスクラップは2021/10/29にクローズされました