tl; dr
Certains programmes largement utilisés, qui génèrent du HTML, ne génèrent que des balises de paragraphe d'ouverture et non de fermeture, en supposant que le navigateur ferme correctement les paragraphes.
À première vue, il me semble que l'hypothèse selon laquelle les navigateurs fermeront correctement les paragraphes n'est pas correcte. Mon interprétation est-elle correcte? Plus généralement, quels compromis impliquent ce type de décision?
En parcourant le code source de moinmoin, la ligne de code suivante a attiré mon attention:
# We only open those tags and let the browser auto-close them:
_auto_closing_tags = set(['p'])
( source )
Après avoir lu le reste de l'implémentation, je me suis convaincu que oui, en effet, lorsque moinmoin génère du code html pour l'une de ses pages, il générera correctement les balises d'ouverture de paragraphe, le cas échéant, tout en évitant délibérément les balises de fermeture de paragraphe (bien que cela soit trivialement possible).
Pour mon cas d'utilisation spécifique, plutôt inhabituel, ce comportement n'est pas correct. Je suis tenté de soumettre un rapport de bogue et / ou de changer le comportement. Cependant, il semble que cette décision de conception ait été réfléchie. Je ne connais pas assez bien les subtilités du standard html, ou les différentes implémentations de navigateur, pour pouvoir dire si c'est un comportement correct en général, et j'ai le sentiment que mon instinct pour corriger / changer ce comportement pourrait être mal orienté.
Ce code fait-il une hypothèse valide sur les implémentations du navigateur? Le code HTML généré est-il valide? Plus généralement, quels compromis pourrais-je manquer ici?