Checkboxes

A form element that indicates selected values using a check mark. Used to capture selections from predefined values.

Used when there is a list of predefined options and the user can select any number of them.

These values should be sorted in an easily scannable order (e.g. alphabetically or by popularity).

By default, a checkbox or list of checkboxes should start unchecked.

Remember to wrap the checkbox(es) with fieldsets and legends to make them accessible.

Horizontal inline checkboxes can make it difficult to tell which label pertains to which checkbox, so use them sparingly.

Negative language in labels can be counterintuitive. For example, use “I want to receive a promotional email” instead of “I don’t want to receive promotional email.”

Selecting a checkbox should not trigger unexpected changes in context, such as causing significant changes to the page content or opening a new window.

Do's and Don'ts

Clickable Area

Let users check the checkbox by clicking on either the checkbox itself or its label.

Types

Variants

Error State

A form validation checks user input against success criteria before passing the data to the server. If there is a problem with the data then the system generates an error to help the user complete their task. An error notification is displayed at top of page, and any checkboxes that are in error are visually indicated.

Error State

Common Button Labels and Usage

Title case, 2-3 words maximum.
Do not combine actions in a label (exception: "Customize & Buy").
If standard labels don't fit the button's purpose, align label with the task the user is attempting.

Please refer to the Dell Technologies branding website, https://brand.delltechnologies.com/faq/#voice, for further information regarding call-to-action labels and usage.

Button Label:
Corresponding Action:
Add to Cart
Search
Cancel
Save
Edit
Delete
Continue
Next/Previous
Submit
Select
Sign In/Sign Out
View Details
Ok/Cancel
Learn More
Close
Takes users to Cart page, with item added
Used for search buttons
Takes users back to entry point for a task
Used to save an item
Navigates users to change an item
Deletes an item on the page, usually with a verification step
Used as progression
Used as forward and backward navigation (Next is primary, Previous is secondary)
Used to submit a task or info
Used for choosing items in a task flow
Authentication standard, for consistency do not use Log In/Log Out or Signin/Signout
Used instead of “Select” in cases of product details or within learn content
For use in modal verification steps when more specific CTAs will not fit due to space
Used to link users to more learning content or contextual help
Used within modal windows

Interaction/States

A checkbox can be:

  • checked or unchecked (tree checkboxes can be partially checked)
  • enabled or disabled
  • error
  • group with error
  • hover
  • focus
  • click
  • disabled

Checkboxes

Standard Checkboxes

<fieldset> <legend class="dds__mb-1">Sample checkbox label</legend> <div class="dds__form-check"> <label class="dds__form-check-label" for="checkboxName"> <input type="checkbox" id="checkboxName" name="checkboxName" class="dds__form-check-input"> <span>Value 1</span> </label>
<div class="dds__form-check"> <label class="dds__form-check-label" for="checkboxName"> <input type="checkbox" id="checkboxName" name="checkboxName" class="dds__form-check-input"> <span>Value 2</span> </label>
</div></div>
<div class="dds__form-check"> <label class="dds__form-check-label" for="checkboxDisabledName"> <input type="checkbox" id="checkboxDisabledName" name="checkboxDisabledName" class="dds__form-check-input" disabled=""> <span>Value 3 (disabled)</span> </label>
</div> </fieldset>

Inline Checkboxes

<fieldset> <legend class="dds__mb-1">Inline sample checkbox title</legend> <div class="dds__form-check dds__form-check-inline"> <label class="dds__form-check-label" for="inlineCheckboxName0"> <input type="checkbox" id="inlineCheckboxName0" name="inlineCheckboxName0" class="dds__form-check-input"> <span>Value 1</span> </label>
</div>
<div class="dds__form-check dds__form-check-inline"> <label class="dds__form-check-label" for="inlineCheckboxName1"> <input type="checkbox" id="inlineCheckboxName1" name="inlineCheckboxName1" class="dds__form-check-input"> <span>Value 2</span> </label>
</div>
<div class="dds__form-check dds__form-check-inline"> <label class="dds__form-check-label" for="inlineCheckboxDisabledName"> <input type="checkbox" id="inlineCheckboxDisabledName" name="inlineCheckboxDisabledName" class="dds__form-check-input" disabled=""> <span>Value 3 (disabled)</span> </label>
</div> </fieldset>

Checkboxes in Error State

<fieldset> <legend class="dds__mb-1">Select at least one.</legend> <div class="dds__alert-styling"> <div class="dds__form-check"> <label class="dds__form-check-label" for="checkboxName1"> <input type="checkbox" id="checkboxName1" name="checkboxName1" class="dds__form-check-input"> <span>Option 1</span> </label> </div> <div class="dds__form-check"> <label class="dds__form-check-label" for="checkboxName2"> <input type="checkbox" id="checkboxName2" name="checkboxName2" class="dds__form-check-input"> <span>Option 2</span> </label> </div> </div> <div class="dds__invalid-feedback"> Error message goes here. </div> </fieldset>

No items found.

No items found.

No items found.

Redlines

Checkbox redlines

The aria-checked attribute of a checkbox indicates whether the input is:

  • Checked (true)
  • Unchecked (false)
  • Belongs to a group of elements that have a mixture of checked and unchecked values (mixed). Many checkboxes do not use the mixed value, and thus are effectively boolean checkboxes.

Accessibility Goals

  • People with cognitive disabilities can better understand the form and how to complete it, as making forms accessible improves the layout structure, instructions, and feedback.
  • People using speech input can use the labels via voice commands to activate controls and move the focus to the fields that they have to complete.
  • People with limited dexterity benefit from large clickable areas that include the labels, especially for smaller controls, such as radio buttons and checkboxes.
  • People using screen readers can identify and understand form controls more easily because they are associated with labels, field sets, and other structural elements.

Design Accessibility

A minimum touch target of 34 pixels in height should be used to assist with touchscreen interaction.

Provide instructions within labels to help users understand how to complete the form and individual form controls. Providing instructions outside of labels allows more flexible positioning and design, but sometimes it can be missed. It is also not supported by some web browsers (typically older versions) and assistive technologies that don’t implement WAI-ARIA.

Validate input (checkboxes selected) by the user and provide options to undo changes and confirm data entry.

Notify users about successful task completion, any errors, and provide instructions to help them correct mistakes.

Development Accessibility

Users should be able to select a checkbox by clicking on the box directly and by clicking on its label. This is useful to some with motor disabilities.

Use the <label> element, and in specific cases other mechanisms (e.g. WAI-ARIA, title attribute etc.), to identify each form control.

Matching for="name" and id="name" values associate the label with the appropriate form control.

Because id must be unique on each page, only one label can be associated to each unique form element. This means you cannot have one label for multiple form elements. Additionally, screen readers do not support multiple labels that are associated to the same form element.

As a best practice, groups of checkboxes should make use of <fieldset> (a tag that's used to group related elements in a form) and <legend> (a tag that defines a heading for the <fieldset> element). This is especially true for forms submitting data. Nested fieldsets should generally be avoided. In screen readers, the legend text is generally read for each control in the fieldset, so the legend text should be brief and descriptive. (see Inputs for more details)

Do not use fieldset and legend for a single checkbox.

There are exceptions to the above rule. For example, Data Tables make use of checkboxes as a way to select rows of data. Checkboxes in this context would represent an entire row of data in its associated table row.

The aria-required attribute informs assistive technologies about required controls so that they are appropriately announced to the users (as opposed to validating the input). Most current web browsers automatically set its value to true when the HTML5 required attribute is present.

If the submitted data contains errors, it is convenient to set the focus to the first <input> element that contains an error.

References

  • 1.3.1 Info and Relationships: Information, structure, and relationships conveyed through presentation can be programmatically determined or are available in text. (Level A)
  • 2.4.6 Headings and Labels: Headings and labels describe topic or purpose. (Level AA)
  • 3.3.2 Labels or Instructions: Labels or instructions are provided when content requires user input. (Level A)
  • 4.1.2 Name, Role, Value: For all user interface components (including but not limited to: form elements, links and components generated by scripts), the name and role can be programmatically determined; states, properties, and values that can be set by the user can be programmatically set; and notification of changes to these items is available to user agents, including assistive technologies. (Level A)