This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
The validity read-only property of the HTMLFieldSetElement interface returns a ValidityState object that represents the validity states this element is in. Although <fieldset> elements are never candidates for constraint validation, the validity state may still be invalid if a custom validity message has been set.
Note: The :valid and :invalid CSS pseudo-classes are applied to <fieldset> elements based on the validity of its descendant form controls, not the fieldset itself.
A ValidityState object.
The following example demonstrates that a <fieldset> is in an invalid state when a customError is set; in this state, checkValidity() returns true while the validityState's validity property is false.
const fieldSet = document.getElementById("myFieldSet");
fieldSet.setCustomValidity("This fieldset is invalid.");
const validityState = fieldSet.validity;
console.log(validityState.valid); // false
console.log(validityState.customError); // true
console.log(fieldSet.checkValidity()); // true
Note: The :valid and :invalid CSS pseudo-classes are applied to <fieldset> elements based on the validity of its descendant form controls, not the fieldset itself.
| Specification |
|---|
| HTML> # the-constraint-validation-api:dom-cva-validity> |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
validity |
4 | 12 | 4 | ≤12.1 | 5 | 18 | 4 | ≤12.1 | 4 | 1.0 | 4.4 | 4 |
HTMLFieldSetElement.checkValidity()<fieldset><form>
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/HTMLFieldSetElement/validity