This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.
This pseudo-class is applied according to the following rules:
- If the control does not have focus, and the value is valid, apply this pseudo-class.
- If the control has focus, and the value was valid (including empty) when it gained focus, apply this pseudo-class.
- If the control has focus, and the value was invalid when it gained focus, re-validate on every keystroke.
- If the element is required, the preceding rules apply only if the user has changed the value or attempted to submit the form.
The result is that if the control was valid when the user started interacting with it, the validity styling is changed only when the user shifts focus to another control. However, if the user is trying to correct a previously-flagged value, the control shows immediately when the value becomes valid. Required items are flagged as invalid only if the user changes them or attempts to submit an unchanged invalid value.
Not part of any specification.
We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!
|Feature||Chrome||Firefox (Gecko)||Internet Explorer||Opera||Safari|
|Basic support||No support||4.0 (2)||No support||No support||No support|
|Feature||Android||Chrome for Android||Firefox Mobile (Gecko)||IE Mobile||Opera Mobile||Safari Mobile|
|Basic support||No support||No support||?||No support||No support||No support|