The HTML <fieldset> element is used to group several controls as well as labels (<label>) within a web form.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
As the example above shows, the <fieldset> element provides a grouping for a part of an HTML form, with a nested <legend> element providing a caption for the <fieldset>. It takes few attributes, the most notable of which are form, which can contain the id of a <form> on the same page, allowing you to make the <fieldset> part of that <form> even if it is not nested inside it, and disabled, which allows you to disable the <fieldset> and all its contents in one go.
Attributes
This element includes the global attributes.
disabled- If this Boolean attribute is set, all form controls that are descendants of the
<fieldset>, are disabled, meaning they are not editable and won't be submitted along with the<form>. They won't receive any browsing events, like mouse clicks or focus-related events. By default browsers display such controls grayed out. Note that form elements inside the<legend>element won't be disabled. form- This attribute takes the value of the
idattribute of a<form>element you want the<fieldset>to be part of, even if it is not inside the form. name- The name associated with the group.
Note: The caption for the fieldset is given by the first
<legend>element nested inside it.
Styling with CSS
There are several special styling considerations for <fieldset>.
Its display value is block by default, and it establishes a block formatting context. If the <fieldset> is styled with an inline-level display value, it will behave as inline-block, otherwise it will behave as block. By default there is a 2px groove border surrounding the contents, and a small amount of default padding. The element has min-inline-size: min-content by default.
If a <legend> is present, it is placed over the block-start border. The <legend> shrink-wraps, and also establishes a formatting context. The display value is blockified. (For example, display: inline behaves as block.)
There will be an anonymous box holding the contents of the <fieldset>, which inherits certain properties from the <fieldset>. If the <fieldset> is styled with display: grid or display: inline-grid, then the anonymous box will be a grid formatting context. If the <fieldset> is styled with display: flex or display: inline-flex, then the anonymous box will be a flex formatting context. Otherwise, it establishes a block formatting context.
You can feel free to style the <fieldset> and <legend> in any way you want to suit your page design.
Examples
Simple fieldset
This example shows a really simple <fieldset> example, with a <legend>, and a single control inside it.
<form action="#">
<fieldset>
<legend>Simple fieldset</legend>
<input type="radio" id="radio">
<label for="radio">Spirit of radio</label>
</fieldset>
</form>
Disabled fieldset
This example shows a disabled <fieldset> with two controls inside it. Note how both the controls are disabled due to being inside a disabled <fieldset>.
<form action="#">
<fieldset disabled>
<legend>Disabled fieldset</legend>
<div>
<label for="name">Name: </label>
<input type="text" id="name" value="Chris">
</div>
<div>
<label for="pwd">Archetype: </label>
<input type="password" id="pwd" value="Wookie">
</div>
</fieldset>
</form>
Technical summary
| Content categories | Flow content, sectioning root, listed, form-associated element, palpable content. |
|---|---|
| Permitted content | An optional <legend> element, followed by flow content. |
| Tag omission | None, both the starting and ending tag are mandatory. |
| Permitted parents | Any element that accepts flow content. |
| Implicit ARIA role | group |
| Permitted ARIA roles | radiogroup, presentation, none |
| DOM interface | HTMLFieldSetElement |
Specifications
| Specification | Status | Comment |
|---|---|---|
| HTML Living Standard The definition of '<fieldset>' in that specification. |
Living Standard | Definition of the fieldset element |
| HTML5 The definition of '<fieldset>' in that specification. |
Recommendation | |
| HTML 4.01 Specification The definition of '<fieldset>' in that specification. |
Recommendation | Initial definition |
Browser compatibility
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
fieldset | Chrome
Full support
Yes
| Edge
Full support
12
| Firefox Full support Yes | IE Full support Yes | Opera
Full support
Yes
| Safari Full support Yes | WebView Android
Full support
Yes
| Chrome Android
Full support
Yes
| Firefox Android Full support Yes | Opera Android
Full support
Yes
| Safari iOS Full support Yes | Samsung Internet Android
Full support
Yes
|
disabled | Chrome Full support Yes | Edge
Partial support
12
| Firefox Full support Yes | IE
Full support
Yes
| Opera Full support 12 | Safari Full support 6 | WebView Android Full support 4.4 | Chrome Android Full support Yes | Firefox Android Full support Yes | Opera Android ? | Safari iOS Full support 6 | Samsung Internet Android Full support Yes |
form | Chrome Full support Yes | Edge Full support 12 | Firefox Full support Yes | IE Full support Yes | Opera Full support Yes | Safari Full support Yes | WebView Android Full support Yes | Chrome Android Full support Yes | Firefox Android Full support Yes | Opera Android Full support Yes | Safari iOS Full support Yes | Samsung Internet Android Full support Yes |
name | Chrome Full support Yes | Edge Full support 12 | Firefox Full support Yes | IE Full support Yes | Opera Full support Yes | Safari Full support Yes | WebView Android Full support Yes | Chrome Android Full support Yes | Firefox Android Full support Yes | Opera Android Full support Yes | Safari iOS Full support Yes | Samsung Internet Android Full support Yes |
Legend
- Full support
- Full support
- Partial support
- Partial support
- Compatibility unknown
- Compatibility unknown
- See implementation notes.
- See implementation notes.
