Il me semble que la plupart des attributs (peut-être tous) des versions précédentes de HTML (avant HTML5) devaient avoir des valeurs, comme readonly="readonly"
.
Est-ce vrai pour HTML5 et l'attribut autofocus
?
En HTML, vous utilisez des attributs booléens avec ou sans valeurs comme vous le souhaitez. Un booléen, pour le W3C, comme l'autofocus peut être écrit comme ça autofocus
ou autofocus="autofocus"
ou aussi autofocus=""
.
Si vous ne voulez pas la mise au point automatique, ne l'écrivez pas.
Je pense que vous êtes confus parce que XHTML nécessite des valeurs pour tous les attributs: attributes="values"
.
Voici quelques informations sur l'utilisation des attributs booléens en HTML: http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#boolean-attribute
Citant la spécification HTML5 et développant un peu sur Pekka:
http://www.w3.org/TR/html5/forms.html#autofocusing-a-form-control:-the-autofocus-attribute :
L'attribut autofocus est un attribut booléen.
http://www.w3.org/TR/html5/infrastructure.html#boolean-attributes :
La présence d'un attribut booléen sur un élément représente la vraie valeur et l'absence de l'attribut représente la fausse valeur.
Si l'attribut est présent, sa valeur doit être soit la chaîne vide, soit une valeur correspondant à ASCII non sensible à la casse pour le nom canonique de l'attribut, sans espace blanc de début ou de fin.
Conclusion :
Les éléments suivants sont valides, équivalents et vrais :
<input type="text" autofocus />
<input type="text" autofocus="" />
<input type="text" autofocus="autofocus" />
<input type="text" autofocus="AuToFoCuS" />
Les éléments suivants sont invalides :
<input type="text" autofocus="0" />
<input type="text" autofocus="1" />
<input type="text" autofocus="false" />
<input type="text" autofocus="true" />
L'absence de l'attribut est la seule syntaxe valide pour false :
<input type="text"/>
Recommandation
Si vous souhaitez écrire du XHTML valide, utilisez autofocus="autofocus"
, puisque <input autofocus>
n'est pas valide et les autres alternatives sont moins lisibles. Sinon, utilisez simplement <input autofocus>
car il est plus court.
Non , il suffit de spécifier l'attribut lui-même. C'était de cette façon aussi dans HTML 4 .
Un certain nombre d'attributs sont des attributs booléens . La présence d'un attribut booléen sur un élément représente la vraie valeur et l'absence de l'attribut représente la fausse valeur.
Si l'attribut est présent, sa valeur doit être soit la chaîne vide, soit une valeur correspondant à ASCII non sensible à la casse pour le nom canonique de l'attribut, sans espace blanc de début ou de fin.
Exemple:
<label><input type=checkbox checked name=cheese disabled> Cheese</label>