HTML / Element / Initial coverage

<fieldset>要素

状態: 初期Coverage 対象: HTML Living Standard 確認日: 2026-09-13

Technical Summary

fieldset要素は、フォームコントロールまたはその他の内容をひとつのグループとして表します。グループのcaptionは、最初のlegend要素の子で表現できます。

この要素の重要な境界は、グループ化の意味だけではありません。formとの関連付け、disabledの子孫への適用範囲、HTMLFieldSetElement API、legendからのaccessible nameを分けて確認します。

Definition / Categories

HTML Standardにおけるfieldset要素の基本構造
項目仕様上の概要
CategoriesFlow content、listed form-associated element、palpable content
Content model任意のlegend要素1つ、その後にflow content
Content attributesGlobal attributes、disabledformname
Tag omission開始タグ・終了タグとも省略不可
DOM interfaceHTMLFieldSetElement

fieldsetは送信データそのものを表すコントロールではなく、関連するフォームコントロールを構造化するform-associated elementです。グループの子孫にある各コントロールの送信条件は、各要素の仕様に従います。

Legend and content model

<fieldset>
  <legend>連絡方法</legend>
  <label><input type="radio" name="contact" value="email"> メール</label>
  <label><input type="radio" name="contact" value="phone"> 電話</label>
</fieldset>

HTML Standardのcontent modelは、任意のlegendに続くflow contentです。最初のlegend要素の子がグループのcaptionになります。個々のcontrolの名前は、別途labelなどで与えます。

Form association

fieldsetはlisted form-associated elementです。祖先のformに属するほか、form属性で同じdocument内のform ownerを明示できます。

<form id="profile-form"></form>

<fieldset form="profile-form" name="contact-group">
  <legend>連絡方法</legend>
  <input name="email" type="email">
</fieldset>

namefieldsetform.elementsから参照するときの名前として関係します。fieldset自身が、子孫の各コントロールのように値をentry listへ追加するという意味ではありません。

Disabled propagation

<fieldset disabled>
  <legend>現在は利用できません</legend>
  <input name="enabled-by-fieldset">
</fieldset>

disabled属性が指定されたfieldsetは、最初のlegend要素の子孫を除き、子孫のフォームコントロールをdisabledとして扱います。disabled fieldsetの内部にさらにfield setがある場合も、この例外範囲を含めて祖先との関係を確認する必要があります。

位置fieldset disabled時の境界
最初のlegendの外側にあるフォームコントロールdisabled fieldsetの影響を受ける
最初のlegendの子孫にあるフォームコントロールこのfieldsetのdisabled伝播の例外
fieldset自身disabled IDL属性、form owner、validation関連APIを個別に確認する

DOM Interface

HTMLFieldSetElementは、グループの状態・form owner・内部のフォームコントロール集合をDOMから確認するためのAPIを公開します。

const group = document.querySelector('fieldset');

group.disabled;
group.form;
group.name;
group.elements;
group.willValidate;
group.validity;
group.checkValidity();
group.reportValidity();
API確認する対象
disabledfieldset自身のdisabled属性をbooleanとして読む・設定する
formfieldsetのform owner。存在しない場合はnull
namefieldsetのname属性の反映値
elementsfieldset内のフォームコントロール集合
validity / checkValidity()fieldsetのvalidation関連インターフェース。子孫controlの検証結果とは区別する

Accessibility mapping

HTML-AAMでは、fieldsetgroupのrole mappingに従い、最初のrendered legend要素との関係からグループ名を得ます。legendがアクセシビリティツリーから隠されている場合、そのlegendは親fieldsetのaccessible nameを提供しません。

したがって、視覚的な枠線をCSSで再現するだけでは、fieldsetの意味を置き換えられません。グループ名として読ませたい文字列は、構造上のlegendとして保持し、個別のcontrolには個別の名前を与えます。

Fact / Evidence(主張 / 根拠)

仕様上の主張と実装観測を分離し、適用条件と確認状態を記録します。

主要Factと根拠位置
種別Fact / 主張条件・範囲状態根拠
SPECfieldsetは関連するフォームコントロールをグループ化し、最初のlegendをcaptionとして扱います。fieldsetの意味とcontent model。確認済みHTML Standard: the fieldset element
SPECcontent modelは任意のlegendに続くflow contentで、disabledformnameが関係します。HTML構文、属性、form owner。確認済みHTML Standard: categories and attributes
SPECfieldset[disabled]は、最初のlegendの子孫を除くフォームコントロールへdisabledの条件を適用します。disabled fieldset、最初のlegend、入れ子のfieldset。確認済みHTML Standard: disabled attribute
SPECHTMLFieldSetElementdisabledformnameelementsなどのAPIを公開します。DOM interfaceとform-associated elementのAPI。確認済みHTML Standard: HTMLFieldSetElement
AAMfieldsetはgroup mappingに従い、最初のrendered legendとの関係からaccessible nameを得ます。HTML-AAMのfieldset role mapping。legendがAX treeから隠れる場合は名前の関係が成立しない。仕様確認済みHTML-AAM: fieldset

Evidence

  1. HTML Standard: The fieldset element — 意味、category、content model、属性、form owner、DOM interface
  2. HTML Standard: Enabling and disabling form controls — fieldset disabledの適用条件
  3. HTML Accessibility API Mappings: fieldset — group roleとlegendによるaccessible name
  4. Web Platform Tests: disabled element event propagation — disabled fieldsetを含むイベント伝播のテスト対応

Implementation Evidence

仕様上の主張とは別に、ブラウザー実装・WPT・アクセシビリティ観測を記録します。未実施の項目は確認済みとは扱いません。

実測fixture / 環境: <form id="evidence-form">内に、通常のfieldset、最初のlegend内のcontrol、legend外のinput、disabled fieldset、入れ子のfieldset、form属性とnameを指定したfieldsetを配置しました。Chrome 152.0.0.0(HeadlessChrome / Windows NT 10.0)で2026-09-13にDOM・フォーム関連APIを実測しています。

fieldset要素の実装Evidence登録表
種別再現確認の範囲記録する条件状態
IMPL最初のlegend、disabled fieldset、入れ子のfieldset、form owner、elements API実測結果(Chrome 152.0.0.0 / Windows NT 10.0 / 2026-09-13): disabled fieldsetでは、最初のlegend内controlは:disabledにならず、legend外と入れ子のcontrolは:disabledfieldset.formは外部form ownerも解決し、elementsにはlegend内controlを含めず、通常・入れ子のcontrolを返した。複数ブラウザー比較は未実施確認済み
WPTdisabled fieldset、disabled control、イベント伝播、form associationに関係するテストevent-propagate-disabled.tentative.htmlを実行。2026-09-15 / Chrome 152.0.0.0 / Windows NT 10.0 / wpt.liveで256件中192件がpass、64件はtestdriver-vendor.jsのaction_sequence()未実装で完了せず部分実行(192/256 pass)
AAMfieldsetのgroup mapping、legend由来のaccessible name、子孫controlの名前とdisabled stateブラウザーのAccessibility treeと、可能な範囲で支援技術・platform APIの観測を分けて記録する未実施

WPTの対応付けにはWPTリポジトリ、アクセシビリティの基準にはHTML-AAMを参照します。

Coverage / Open Issues

  • 確認済みfieldsetの意味、category、content model、legend、disabled、form、nameの仕様上の入口
  • 確認済みHTMLFieldSetElementの主要APIと、HTML-AAMのgroup / legend mapping
  • 未完了複数ブラウザーにおけるdisabled propagation、nested fieldset、fieldset.elementsの実装比較
  • 未完了WPTの実行結果、各platformのAccessibility API、支援技術ごとのlegend読み上げ、互換性、歴史的変更

このページは初期Coverageです。fieldset要素の全仕様、すべてのブラウザーでの挙動、すべての支援技術での読み上げ結果の検証完了を主張するものではありません。

Related surface

初心者向けのグループ化とlegendの使い方はYugienのfieldset要素ページを参照してください。送信とform ownerはform要素、個々のcontrolとの関連付けはlabel要素、disabledなcontrolの状態はinput要素でも確認できます。