Skip to content
fandhe-frontend
GitHub

Tree View

階層構造の展開・折りたたみ・選択を扱う部品です。fandhe-frontend-headless-uitree_view mod は 12 anatomy パーツと、展開集合 + 選択値を合成した状態機械を提供し、WAI-ARIA APG の Tree パターンに従う role="tree"/role="treeitem"/role="group"aria-expanded/aria-selected/aria-level 等を出力します。Themes 版と異なりインデントガイドの見た目を持たず、構造とアクセシビリティ属性のみを担います。

スタイル済みの表示例は Tree View を参照してください。

関連 API: fandhe-frontend-headless-ui API

Demo

枠線・余白は docs サイト側のデモ枠であり、fandhe-frontend-headless-ui 自体はスタイルを持ちません。

Project files
src
lib.rs
README.md

Features

  • Root / Label / Tree / Branch / BranchControl / BranchIndicator / BranchText / BranchContent / BranchIndentGuide / Item / ItemText / ItemIndicator の 12 anatomy パーツを提供する(tree_view.rs:1-10)。
  • 展開集合(MultiSelect)+ 選択値(SingleSelect)を合成した状態機械 TreeView を提供し、TreeView::render_nodes が深さ・aria-posinset/aria-setsize を再帰的に計算する(tree_view.rs:425-488)。
  • tree は role="tree"、branch/item は role="treeitem"、branch_content は role="group" を固定出力する WAI-ARIA APG Tree パターン準拠(tree_view.rs:125-259,269-303)。
  • branch/item は disabled=true のとき aria-disabled="true" を対で付与する(ネイティブ disabled を持たない role="treeitem" のための代替、tree_view.rs:186-193,295-300)。
  • キーボードナビゲーション・typeahead は SSR 静的マークアップに寄与しない CSR 挙動層のスコープ外(tree_view.rs:72-77)。

Anatomy

root
  label
  tree
    branch
      branch-control
        branch-indicator
        branch-text
      branch-content
        branch-indent-guide
        item
          item-indicator
          item-text

API Reference

Arguments

NameTypeDefaultDescription
tree: aria_label_text, aria_labelledby_idOption<&str>, Option<&str>None, Nonetree のアクセシブルな名前(いずれか片方が Some を推奨、tree_view.rs:125-146)。
branch/item: level, posinset, setsize, depth&str, &str, &str, &str呼び出し側が usize から文字列化した aria-level/aria-posinset/aria-setsize/data-depth(tree_view.rs:150-156)。
TreeView::render_nodes: nodes&[TreeNode]決定的な静的木を現在の展開・選択状態で再帰描画する(tree_view.rs:486-488)。

Data Attributes

PartAttributeObserved Values
branchdata-depth0
branchdata-stateopen
branchdata-valuesrc
branch-contentdata-stateopen
branch-controldata-stateopen
branch-indicatordata-stateopen
itemdata-depth0, 1
itemdata-selected
itemdata-valueREADME.md, lib.rs
item-indicatordata-selected

Examples

Closed branch

branch が折りたたまれ、branch_content が hidden の例です(Demo は展開済み)。

Project files

Accessibility

WAI-ARIA

AttributeDescription
role="tree" / role="treeitem" / role="group"tree/branch・item/branch_content に固定出力する(tree_view.rs:125-259,269-303)。
aria-expandedbranch のみ(open/closed を反映、tree_view.rs:173-176)。
aria-selected / aria-level / aria-posinset / aria-setsizebranch/item 双方に出力する(tree_view.rs:177-180,286-290)。
aria-disabled="true"disabled=true のときのみ branch/item に出力する(tree_view.rs:186-193,295-300)。