ツリービュー

Tree view

別名: ツリー表示、階層ツリー、フォルダツリー、ツリーグリッド、Tree view、Tree grid

生態(さわってみる)

  • プロジェクト資料
    • 要件定義書.docx
    • スケジュール.xlsx
  • 議事録.pdf

一言定義

親子関係を持つデータを、開閉できるインデント付きの階層構造として表示するUI。

分類

使う場面

  • フォルダ構造や組織図など、親子関係を持つデータをそのまま見せたいとき
  • 必要な階層だけを開いて、全体のボリュームを抑えたいとき

避ける場面

  • データがフラットで、そもそも階層を持たないとき(→データテーブル)
  • 開閉の単位が独立したセクションであり、親子関係を表現する必要がないとき(→アコーディオン)

近縁種との比較

同じ一覧データでも、フラットな行の集合であるデータテーブルは属性同士の横断比較・並び替えに向くのに対し、ツリービューは親子関係そのものを構造として見せることに主眼があり、階層を持つデータにはツリービューが適している。アコーディオンとは見た目の開閉動作が似ているが、アコーディオンの各パネルは互いに独立したセクションであるのに対し、ツリービューの各項目は親子関係でネストしており、キーボード操作も矢印キーによる階層移動(WAI-ARIA APGのTree Viewパターン)という専用の作法を必要とする点で異なる。

実例リンク

アクセシビリティ

role
role="tree"の中にrole="treeitem"を親子ネストで配置する。開閉可能な項目にはaria-expanded、選択状態にはaria-selectedを付与する
キーボード操作
↑↓で項目間、→で展開または子要素へ、←で折りたたみまたは親要素へ移動し、Home/Endで先頭・末尾に飛ぶ、WAI-ARIA APGのTree View操作パターンに従う
補足
フォーカスは1項目のみをTabストップとするroving tabindexで管理し、ツリー内部の移動は矢印キーに任せる