Skip to main content

Fieldset

Use a fieldset to group related form inputs.

When to use a fieldset

Use a fieldset when you need to show a relationship between multiple form inputs. For example, you may need to group a set of text inputs into a single fieldset when asking for an address.

Open in new window
Copy
<fieldset class="nhsuk-fieldset">
  <legend class="nhsuk-fieldset__legend nhsuk-fieldset__legend--l">
    <h1 class="nhsuk-fieldset__heading">
      What is your address?
    </h1>
  </legend>

  <div class="nhsuk-form-group">
    <label class="nhsuk-label" for="address-line-1">
      Building and street <span class="nhsuk-u-visually-hidden">line 1 of 2</span>
    </label>
    <input class="nhsuk-input" id="address-line-1" name="address-line-1" type="text">
  </div>

  <div class="nhsuk-form-group">
    <label class="nhsuk-label" for="address-line-2">
      <span class="nhsuk-u-visually-hidden">Building and street line 2 of 2</span>
    </label>
    <input class="nhsuk-input" id="address-line-2" name="address-line-2" type="text">
  </div>

  <div class="nhsuk-form-group">
    <label class="nhsuk-label" for="address-town">
      Town or city
    </label>
    <input class="nhsuk-input nhsuk-u-width-two-thirds" id="address-town" name="address-town" type="text">
  </div>

  <div class="nhsuk-form-group">
    <label class="nhsuk-label" for="address-county">
      County
    </label>
    <input class="nhsuk-input nhsuk-u-width-two-thirds" id="address-county" name="address-county" type="text">
  </div>

  <div class="nhsuk-form-group">
    <label class="nhsuk-label" for="address-postcode">
      Postcode
    </label>
    <input class="nhsuk-input nhsuk-input--width-10" id="address-postcode" name="address-postcode" type="text">
  </div>

</fieldset>
Copy
{% from 'fieldset/macro.njk' import fieldset %}
{% from "input/macro.njk" import input %}

{% call fieldset({
  legend: {
    "text": "What is your address?",
    "classes": "nhsuk-fieldset__legend--l",
    "isPageHeading": true
  }
}) %}

  {{ input({
    label: {
      "html": 'Building and street <span class="nhsuk-u-visually-hidden">line 1 of 2</span>'
    },
    "id": "address-line-1",
    "name": "address-line-1"
  }) }}

  {{ input({
    label: {
      "html": '<span class="nhsuk-u-visually-hidden">Building and street line 2 of 2</span>'
    },
    "id": "address-line-2",
    "name": "address-line-2"
  }) }}

  {{ input({
    label: {
      "text": "Town or city"
    },
    "classes": "nhsuk-u-width-two-thirds",
    "id": "address-town",
    "name": "address-town"
  }) }}

  {{ input({
    label: {
      "text": "County"
    },
    "classes": "nhsuk-u-width-two-thirds",
    "id": "address-county",
    "name": "address-county"
  }) }}

  {{ input({
    label: {
      "text": "Postcode"
    },
    "classes": "nhsuk-input--width-10",
    "id": "address-postcode",
    "name": "address-postcode"
  }) }}

{% endcall %}

How to use a fieldset

The 1st element in a fieldset must be a legend which describes the group of inputs. This could be a question, such as "What is your address?" or a statement like "Personal details".

If you are asking just 1 question per page as we recommend, you can set the contents of the <legend> as the page heading. You can see an example below. This is good practice as it means that users of screen readers will only hear the contents once.

Read more about why and how to set legends as headings on the GOV.UK Design System.

Open in new window
Copy
<fieldset class="nhsuk-fieldset">
  <legend class="nhsuk-fieldset__legend nhsuk-fieldset__legend--xl">
    <h1 class="nhsuk-fieldset__heading">
      What is your address?
    </h1>
  </legend>
</fieldset>
Copy
{% from 'fieldset/macro.njk' import fieldset %}

{{ fieldset({
  "legend": {
    "text": "What is your address?",
    "classes": "nhsuk-fieldset__legend--xl",
    "isPageHeading": true
  }
}) }}

Accessibility

On question pages containing a group of inputs, include the question as the legend as that helps screenreader users understand that the inputs are all related to that question.

Put any important general help text that cannot be written as hint text in the legend, but try to keep it as concise as possible.

Research

If you’ve used this component, get in touch to share your user research findings.

Discuss

Discuss fieldsets on GitHub

Get in touch

If you have a question:

Updated: November 2019