Skip to content
fandhe-frontend
GitHub

Fieldset

複数の Field をグループ化するネイティブ <fieldset>/<legend> コンテナです。<fieldset disabled> の HTML 標準挙動(内側の全コントロールが自動的に無効化される)を前提に、グループ全体の disabled/invalid を各 Field へ整合させます。

fandhe-frontend-headless-uifieldset mod が提供する構造・アクセシビリティ(WAI-ARIA・キーボード操作)・表示状態(data-*)のみを持つ unstyled 部品です。対応する /themes/ ページは現時点で存在しません(本部品は headless-ui 側でのみ提供されます)。

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

Demo

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

Shipping addressUsed for delivery only.

Features

  • root(<fieldset>)/legend(<legend>)/helper_text/error_text の 4 パーツで複数の crate::field をグループ化する(fieldset.rs:1-9)。
  • root の disabled はネイティブ <fieldset disabled> として出力し、HTML 仕様により内側の全コントロールが自動的に無効化される(fieldset.rs:8-9, 148-167)。
  • aria-describedby は invalid のとき error id、has_helper_text のとき helper id を空白区切りで合成する(field.rs と同型の合成則、fieldset.rs:123-146)。
  • invalid はグループ全体のみに反映され、個別 Field の aria-invalid へは伝播しない(誤ったコントロール単位のエラー通知を避けるための意図的な判断、fieldset.rs:69-72)。

Anatomy

root
  legend
  helper-text
  error-text

API Reference

Arguments

NameTypeDefaultDescription
props.id&strベース id。legend/helper_text/error_text の派生 id 生成に使う(fieldset.rs:60-62)。
props.disabledboolfalsetrue のとき root(<fieldset>)へネイティブ disabled + data-disabled を付与する(fieldset.rs:63-66)。
props.invalidboolfalsetrue のとき root へ data-invalid を付与し、error_text を表示状態にする(fieldset.rs:67-72)。
props.has_helper_textboolfalsearia-describedby の合成に helper id を含めるかどうか(fieldset.rs:73-74, 123-146)。
merge_field_props(field)FieldProps -> FieldPropsFieldset の disabled を内包する FieldProps へ OR 伝播する(invalid は伝播しない、fieldset.rs:106-121)。

Examples

Invalid group

invalid な Fieldset と error_text の組み立て例です。

invalid な Fieldset(aria-describedby が error_text のみを指す例)の組み立て例です。

Payment methodSelect a payment method.

Accessibility

WAI-ARIA

AttributeDescription
aria-describedbyroot パーツへ、invalid のとき error id・has_helper_text のとき helper id を合成して付与する(fieldset.rs:123-146)。
aria-live="polite"error_text パーツへ固定付与する(fieldset.rs:195-198)。