Skip to content
fandhe-frontend
GitHub

Toolbar

ボタン・リンク・ToggleGroup を横方向(または縦方向)にグループ化する操作バーです。fandhe-frontend-headless-uitoolbar mod が構造・アクセシビリティ(WAI-ARIA・キーボード操作)・表示状態(data-*)のみを提供する unstyled 部品であり、Themes 版と異なりスタイル(CSS)は一切持ちません。roving tabindex により disabled 項目もフォーカス順序から除外しない WAI-ARIA APG 準拠の設計です。

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

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

Demo

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

Help

Features

  • ボタン・リンク・セパレータ・ToggleGroup を横方向(または縦方向)にグループ化する操作バー。Root / Button / Link / Separator / ToggleGroup / ToggleItem の 6 anatomy パーツを持つ(toolbar.rs モジュール doc)。
  • roving tabindex(focused/item_count/loop_focus/orientation の複合状態機械 Toolbar)。フォーカス対象の項目のみ tabindex="0"、それ以外は tabindex="-1" になる。
  • disabled 項目もフォーカス順序から除外しない(WAI-ARIA APG の toolbar パターン推奨に従う意図的な設計。aria-disabled/data-disabled で操作不能のみを表す)。
  • link パーツは既存の link::root へ完全委譲し、external 時の target="_blank"/rel="noopener noreferrer" の不可分付与ロジックを再導出しない。
  • separator は toolbar 自身の向きと直交する aria-orientation を出力する(横向き toolbar のセパレータは縦線になる)。

Anatomy

root
  button
  link
  separator
  toggle-group
    toggle-item

API Reference

Arguments

NameTypeDefaultDescription
root(orientation)OrientationOrientation::Horizontalrole="toolbar" に付与する向き。aria-orientation/data-orientation の両方へ反映される。
root(label)&strroot に付与する aria-label(空文字列のときは省略)。
button(focused)booltrue のとき tabindex="0"、false のとき tabindex="-1"(roving tabindex)。button/link/toggle_item 共通の引数。
toggle_item(pressed)boolaria-pressed/data-state(pressed_data_state 経由)へ反映される押下状態。

Data Attributes

PartAttributeObserved Values
rootdata-orientationhorizontal
toggle-itemdata-pressed
toggle-itemdata-stateon
toggle-itemdata-valuealign-left

Examples

Vertical orientation の構成

縦方向の Toolbar で Separator の aria-orientation が水平(直交)に切り替わる例です。

Accessibility

Keyboard Interactions

KeyDescription
Tab / Shift+Tabネイティブ button/a 要素の暗黙フォーカス移動(roving tabindex により tabindex="0" の項目のみが Tab 順序に含まれる)。
(矢印キー等)項目間移動のキーイベント配線は headless-ui の対象外。ToolbarAction(Next/Prev/First/Last/Focus)として状態遷移 API を提供し、実 DOM のキー配線は wasm ランタイム層の責務とする(toolbar.rs モジュール doc「呼び出し文脈」節)。

WAI-ARIA

AttributeDescription
role="toolbar" / aria-orientationroot に固定付与。orientation 引数の値を反映する。
role="separator" / aria-orientationseparator に固定付与。toolbar 自身の向きと直交する値になる。
role="group"toggle-group に固定付与(aria-orientation は role="group" に許可されないため付与しない)。
aria-pressedtoggle-item に付与。押下状態(true/false)を表す。