In html5 to set a checkbox as checked, should i simply use checked ( as a property) or checked=“checked” ( as an attribute)?
Currently in our plugin we were setting the checkboxes as checked by setting
<input type="checkbox" checked="checked" />
This was to preserve xhtml compatibility. I'm more used to setting checked as a property
<input type="checkbox" checked />
What is the correct way to proceed in html5?Should we still care about xhtml compatibility?
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).