HTML <fieldset> Tag

The HTML <fieldset> tag represents a group of form elements in an HTML document.

The <fieldset> tag can be used with the <legend> tag to make a form more readable and/or easier to comprehend.


The <fieldset> tag is written as <fieldset></fieldset> with the grouped form controls inserted between the start and end tags.

You can use the disabled attribute to disable all child form controls within the <fieldset> element. You can also use the form attribute to associate the element with a <form> element on the same document.

Like this:


Basic tag usage

Here we create two groups of form elements - one for name details, the other for gender.

Add a Legend

You can use the <legend> element to provide a legend for the <fieldset> elements. This makes it easier for users to understand what each <fieldset> element represents.

The disabled Attribute

You can disable all elements within a <fieldset> element by using the disabled attribute. This prevents users from being able to interact with the form controls.

The disabled attribute is a boolean attribute (its value is either true or false). The mere presence of this attribute sets its value to true. Therefore, you don't need to add a value (simply writing disabled is all that is required to disable the element).

Here, we disable the first <fieldset> element ("Name Details").

Add Styles

You can add styles to the <fieldset> element, just as you can with any other element.


Attributes can be added to an HTML element to provide more information about how the element should appear or behave.

There are 3 kinds of attributes that you can add to your HTML tags: Element-specific, global, and event handler content attributes.

The <fieldset> element accepts the following attributes.

Element-Specific Attributes

This table shows the attributes that are specific to the <fieldset> tag/element.

disabledDisables all form control descendants of the <fieldset> element.

This is a boolean attribute. If the attribute is present, its value must either be the empty string or a value that is an ASCII case-insensitive match for the attribute's canonical name, with no leading or trailing whitespace (i.e. either disabled or disabled="disabled").

Possible values:

  • [Empty string]
  • disabled
formSpecifies a form to associate this <fieldset> element with. The value must be a ID of a form element.
nameSpecifies the name of the <fieldset>.

Global Attributes

The following attributes are standard across all HTML5 elements. Therefore, you can use these attributes with the <fieldset> tag , as well as with all other HTML tags.

For a full explanation of these attributes, see HTML 5 global attributes.

Event Handler Content Attributes

Event handler content attributes enable you to invoke a script from within your HTML. The script is invoked when a certain "event" occurs. Each event handler content attribute deals with a different event.

Below are the standard HTML5 event handler content attributes.

Again, you can use any of these with the <fieldset> element, as well as any other HTML5 element.

For a full explanation of these attributes, see HTML 5 event handler content attributes.

Differences Between HTML 4 & HTML 5

HTML5 has added 3 new attributes for the <fieldset> element. These are:

Also, the align attribute is obsolete in HTML5 (it was already deprecated in HTML 4).

To see more detail on the two versions see HTML5 <fieldset> Tag and HTML4 <fieldset> Tag. Also check out the links to the official specifications below.


Here's a template for the <fieldset> tag with all available attributes for the tag (based on HTML5). These are grouped into attribute types, each type separated by a space. In many cases, you will probably only need one or two (if any) attributes. Simply remove the attributes you don't need.

For more information on attributes for this tag, see HTML5 <fieldset> Tag and HTML4 <fieldset> Tag.

Tag Details

For more details about the <fieldset> tag, see HTML5 <fieldset> Tag and HTML4 <fieldset> Tag.


Here are the official specifications for the <fieldset> element.

What's the Difference?

W3C creates "snapshot" specifications that don't change once defined. So the HTML5 specification won't change once it becomes an official recommendation. WHATWG on the other hand, develops a "living standard" that is updated on a regular basis. In general, you will probably find that the HTML living standard will be more closely aligned to the current W3C draft than to the HTML5 specification.