These sound like they should be the same, but are quite different.
:enabled
only works if the element can actually be disabled.
:not(:disabled)
can match elements that are neither :enabled
nor :disabled
.
This means that some elements, like a
, will never match :enabled
but will match :not(:disabled)
.
The :enabled pseudo-class must match any button, input, select, textarea, optgroup, option, fieldset element, or form-associated custom element that is not actually disabled.
https://www.w3.org/TR/selectors/#enableddisabled https://html.spec.whatwg.org/multipage/semantics-other.html#selector-enabled