It is an attribute in either case. And it sets a value (the same value, true
) on a DOM property of the element node in either case.
For most purposes, it does not matter which syntax you use. However, there are some points to note:
- If you use HTML5 in XML serialization (“XHTML5”), you must use
checked="checked"
. - In styling, the syntaxes are not quite equivalent when using attribute selectors (the shorter form does not match
[checked=checked]
), but this does not matter in practice:[checked]
matches checked checkboxes in either case. - The clumsy syntax
checked="checked"
is a holdover from SGML and included for compatibility only, so it may make your code look old-fashioned (which rarely matters).