5542 sujets

Sémantique web et HTML

Bonjour à tous ,

Je me posais une question tout à l'heure lors de la création d'un formulaire.
Ces derniers ont beaucoup évolués ces dernières années, et la sémantique à suivie (date, color, email, tel etc)

Mais une chose sur laquelle je bloque toujours c'est ....

<button type="submit">Envoyer</button>


ou bien

<input type="submit" value="Envoyer">


Y'a t il un règle pour ça svp ?
Bonjour,

D'après mes lectures, il n'y a pas de différence fondamentale, le résultat est la même.

La seule différence notable que l'on peut associer au bouton est que on peut lui coller du html comme contenu (comme une image), alors que le input ne recevra jamais que du texte.
Modifié par SolidSnake (22 Mar 2016 - 08:23)
C'est ça. À noter qu'un <button> dans un formulaire a un type="submit" implicite (donc pas nécessaire de le mettre, mais c'est tout de même mieux).
Si ce n'est que pour mettre une image à la place d'un texte, il existe encore et toujours <input type="image" src="..." alt="...">


Mais à mon sens le <button> a plusieurs avantages sur le <input> :

* Possibilité de mettre du HTML et non pas simplement du texte
* Possibilité de mettre une valeur envoyée différente du libellé texte; ça peut rapidement être problématique dans les applications multilingues, ou s'il y a des caractères accentués.
* Ca permet de se simplifier le travail en CSS. button { ... } est plus simple que input[type=submit], input[type=reset], input[type=button] { ... } sans parler de la multiplication des sélecteurs associés aux différents états (focus, hover, active) qui du coup se divise par trois.

Il y avait jadis des bugs avec IE et <button> quand il y en avait plusieurs dans un même formulaire, mais maintenant c'est du passé. Personnellement je pense qu'il n'y a plus vraiment de raison d'être de se cantonner à <input type="submit|reset|button">