L'exigence est seulement par normes . Il est parfaitement possible de faire ce que vous voulez sur une page sans respecter les normes. Il se peut que les choses ne s'affichent pas ou ne fonctionnent pas correctement si vous faites cela, mais il est probable qu'elles le feront. L'objectif est de les respecter, et l'idée est que si vous les suivez, votre page toujours travail ; vous n'avez pas à vous soucier de quoi que ce soit.
Oui, le formulaire est requis pour avoir un attribut d'action en HTML4. S'il n'est pas défini, le navigateur utilisera probablement la même méthode que celle consistant à lui fournir une chaîne vide. Vous devriez vraiment définir action=""
qui est un HTML4 parfaitement valide, qui respecte les normes et qui permet d'obtenir exactement le même résultat.
En HTML5, vous pouvez en fait spécifier une action sur le bouton d'envoi lui-même. S'il n'y en a pas, il utilise l'action du formulaire et si celle-ci n'est pas définie, il prend par défaut la chaîne vide (notez que vous ne pouvez pas explicitement définir l'action sur une chaîne vide en HTML5).