{
 "caniuse": [
  "css-optional-pseudo",
  "css-in-out-of-range"
 ],
 "compat_features": [
  "css.selectors.in-range",
  "css.selectors.invalid",
  "css.selectors.invalid.form",
  "css.selectors.optional",
  "css.selectors.out-of-range",
  "css.selectors.required",
  "css.selectors.valid",
  "css.selectors.valid.form"
 ],
 "description": "The form validity CSS pseudo-classes match <form> elements based on the constraints of a form field, such as validity (:valid, :invalid, :in-range, :out-of-range) and necessity (:optional or :required).",
 "description_html": "The form validity CSS pseudo-classes match <code>&#x3C;form></code> elements based on the constraints of a form field, such as validity (<code>:valid</code>, <code>:invalid</code>, <code>:in-range</code>, <code>:out-of-range</code>) and necessity (<code>:optional</code> or <code>:required</code>).",
 "group": [
  "selectors"
 ],
 "kind": "feature",
 "name": "Form validity pseudo-classes",
 "spec": [
  "https://drafts.csswg.org/selectors-4/#ui-validity"
 ],
 "status": {
  "baseline": "high",
  "baseline_high_date": "2018-01-29",
  "baseline_low_date": "2015-07-29",
  "by_compat_key": {
   "css.selectors.in-range": {
    "baseline": "high",
    "baseline_high_date": "2018-05-12",
    "baseline_low_date": "2015-11-12",
    "support": {
     "chrome": "10",
     "chrome_android": "18",
     "edge": "13",
     "firefox": "29",
     "firefox_android": "16",
     "safari": "5.1",
     "safari_ios": "5"
    }
   },
   "css.selectors.invalid": {
    "baseline": "high",
    "baseline_high_date": "2018-01-29",
    "baseline_low_date": "2015-07-29",
    "support": {
     "chrome": "10",
     "chrome_android": "18",
     "edge": "12",
     "firefox": "4",
     "firefox_android": "4",
     "safari": "5",
     "safari_ios": "5"
    }
   },
   "css.selectors.invalid.form": {
    "baseline": "high",
    "baseline_high_date": "2022-07-15",
    "baseline_low_date": "2020-01-15",
    "support": {
     "chrome": "40",
     "chrome_android": "40",
     "edge": "79",
     "firefox": "13",
     "firefox_android": "14",
     "safari": "9",
     "safari_ios": "9"
    }
   },
   "css.selectors.optional": {
    "baseline": "high",
    "baseline_high_date": "2018-01-29",
    "baseline_low_date": "2015-07-29",
    "support": {
     "chrome": "10",
     "chrome_android": "18",
     "edge": "12",
     "firefox": "4",
     "firefox_android": "4",
     "safari": "5",
     "safari_ios": "5"
    }
   },
   "css.selectors.out-of-range": {
    "baseline": "high",
    "baseline_high_date": "2018-05-12",
    "baseline_low_date": "2015-11-12",
    "support": {
     "chrome": "10",
     "chrome_android": "18",
     "edge": "13",
     "firefox": "29",
     "firefox_android": "16",
     "safari": "5.1",
     "safari_ios": "5"
    }
   },
   "css.selectors.required": {
    "baseline": "high",
    "baseline_high_date": "2018-01-29",
    "baseline_low_date": "2015-07-29",
    "support": {
     "chrome": "10",
     "chrome_android": "18",
     "edge": "12",
     "firefox": "4",
     "firefox_android": "4",
     "safari": "5",
     "safari_ios": "5"
    }
   },
   "css.selectors.valid": {
    "baseline": "high",
    "baseline_high_date": "2018-01-29",
    "baseline_low_date": "2015-07-29",
    "support": {
     "chrome": "10",
     "chrome_android": "18",
     "edge": "12",
     "firefox": "4",
     "firefox_android": "4",
     "safari": "5",
     "safari_ios": "5"
    }
   },
   "css.selectors.valid.form": {
    "baseline": "high",
    "baseline_high_date": "2022-07-15",
    "baseline_low_date": "2020-01-15",
    "support": {
     "chrome": "40",
     "chrome_android": "40",
     "edge": "79",
     "firefox": "13",
     "firefox_android": "14",
     "safari": "9",
     "safari_ios": "9"
    }
   }
  },
  "support": {
   "chrome": "10",
   "chrome_android": "18",
   "edge": "12",
   "firefox": "4",
   "firefox_android": "4",
   "safari": "5",
   "safari_ios": "5"
  }
 },
 "id": "form-validity-pseudos",
 "groups": [
  "selectors"
 ],
 "specs": [
  {
   "url": "https://drafts.csswg.org/selectors-4/#ui-validity",
   "seriesComposition": "full",
   "shortname": "selectors-4",
   "series": {
    "shortname": "selectors",
    "currentSpecification": "selectors-4",
    "title": "Selectors",
    "shortTitle": "Selectors",
    "releaseUrl": "https://www.w3.org/TR/selectors/",
    "nightlyUrl": "https://drafts.csswg.org/selectors/"
   },
   "seriesVersion": "4",
   "seriesPrevious": "selectors-3",
   "seriesNext": "selectors-5",
   "organization": "W3C",
   "groups": [
    {
     "name": "Cascading Style Sheets (CSS) Working Group",
     "url": "https://www.w3.org/groups/wg/css/"
    }
   ],
   "release": {
    "url": "https://www.w3.org/TR/selectors-4/",
    "status": "Working Draft",
    "filename": "Overview.html"
   },
   "nightly": {
    "url": "https://drafts.csswg.org/selectors-4/",
    "status": "Editor's Draft",
    "alternateUrls": [
     "https://w3c.github.io/csswg-drafts/selectors-4/",
     "https://w3c.github.io/csswg-drafts/selectors/"
    ],
    "repository": "https://github.com/w3c/csswg-drafts",
    "sourcePath": "selectors-4/Overview.bs",
    "filename": "index.html"
   },
   "title": "Selectors Level 4",
   "source": "w3c",
   "shortTitle": "Selectors 4",
   "categories": [
    "browser"
   ],
   "standing": "good",
   "tests": {
    "repository": "https://github.com/web-platform-tests/wpt",
    "testPaths": [
     "css/selectors"
    ]
   },
   "fragment": "ui-validity"
  }
 ],
 "mdnUrls": [
  {
   "slug": "Web/CSS/Reference/Selectors/:valid",
   "title": ":valid",
   "anchor": null,
   "url": "https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:valid"
  },
  {
   "slug": "Web/CSS/Reference/Selectors/:invalid",
   "title": ":invalid",
   "anchor": null,
   "url": "https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:invalid"
  },
  {
   "slug": "Web/CSS/Reference/Selectors/:in-range",
   "title": ":in-range",
   "anchor": null,
   "url": "https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:in-range"
  },
  {
   "slug": "Web/CSS/Reference/Selectors/:out-of-range",
   "title": ":out-of-range",
   "anchor": null,
   "url": "https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:out-of-range"
  },
  {
   "slug": "Web/CSS/Reference/Selectors/:optional",
   "title": ":optional",
   "anchor": null,
   "url": "https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:optional"
  },
  {
   "slug": "Web/CSS/Reference/Selectors/:required",
   "title": ":required",
   "anchor": null,
   "url": "https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:required"
  }
 ],
 "standardPositions": [],
 "hasNegativeStandardPosition": false,
 "stateOfSurveys": [],
 "chromeUseCounters": {},
 "interop": [],
 "wpt": {
  "url": "https://wpt.fyi/results?q=feature:form-validity-pseudos"
 },
 "developerSignals": null,
 "bugs": {},
 "baselineLowDateAsObject": "2015-07-29T00:00:00.000Z",
 "baselineHighDateAsObject": "2018-01-29T00:00:00.000Z"
}