63 votes

Les éléments de formulaire en dehors d'une balise FORM sont-ils sémantiques html5 ?

Si j'ai une balise SELECT qui filtrera un tableau sur la base d'un choix de l'utilisateur, la balise SELECT doit-elle se trouver dans une balise FORM (pour être valide en HTML5), si la fonctionnalité résultante ne fonctionnera pas si JS est désactivé (par exemple, nous afficherons le tableau entier ou un lien "plus" au lieu de faire un filtre côté serveur sur la sélection de l'action du formulaire/option de soumission) ?

Ou bien tous les éléments de formulaire doivent-ils se trouver dans une balise de formulaire, quelle que soit leur utilisation (et donc une valeur d'attribut "action" nulle) ?

Je sais que le HTML5 permet presque tout, mais je n'ai pas trouvé de réponse définitive sur le W3, alors j'ai pensé que je devais vous demander votre avis. J'espère que cela a du sens. Merci.

0 votes

Quelle est la place de la sémantique dans tout cela ? fr.wikipedia.org/wiki/Sémantique Vous vouliez dire "valide" ou "bien formé" [html5], peut-être ?

82voto

robertc Points 35382

Tous les contrôles de formulaire peuvent être utilisés partout où la formulation du contenu est attendu, ce qui signifie qu'ils peuvent apparaître à peu près n'importe où dans le corps du document. Si vous n'avez pas besoin de les soumettre à un serveur, il n'est pas nécessaire de les associer à un formulaire, mais j'ai remarqué que dans certains navigateurs, vous ne pouvez pas profiter de la fonction fonctionnalités de validation des formulaires sauf si les éléments peuvent potentiellement être soumis.

L'une des nouveautés de HTML5 est que les contrôles de formulaires n'ont plus besoin d'être l'enfant direct d'une balise form afin d'être soumis avec ce formulaire, l'élément form attribut vous permet de spécifier le id du formulaire avec lequel l'élément doit être soumis.

3 votes

Bien que robertc ait fourni les liens qui font autorité (et la meilleure réponse), voici la spécification HTML5 dans l'"Edition pour les auteurs Web" (un peu plus lisible) : dev.w3.org/html5/spec-author-view/

18voto

Dotmister Points 1111

Il semblerait qu'en HTML5 les éléments de formulaire peuvent être en dehors d'un <form> et être toujours valide ;

<!DOCTYPE html>
<html>
<head>
<title>Just making this valid</title>
</head>
<body>

<select>
    <option value="1">One</option>
    <option value="2">Two</option>
    <option value="3">Three</option>
</select>

</body>

</html>

Le code ci-dessus est validé avec succès (sans les erreurs évidentes de codage des caractères). Je n'ai pas lu l'intégralité de la spécification HTML5, mais le validateur est généralement correct sur ce genre de questions.

4voto

Abram Points 1

La spécification HTML5 autorise spécifiquement <input> (et d'autres éléments associés au formulaire) de ne pas avoir d'élément <form> :

Un élément associé à un formulaire peut avoir une relation avec un élément de type <form> de l'élément, que l'on appelle le propriétaire du formulaire . Si un élément associé à une forme n'est pas associé à une <form> son propriétaire est dit nul.

N'hésitez donc pas à les utiliser où bon vous semble !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X