tl;dr
Algunos programas ampliamente utilizados, que generan html, solo generarán etiquetas de párrafo de apertura y no de cierre, suponiendo que el navegador cerrará párrafos correctamente.
A primera vista, me parece que la suposición de que los navegadores cerrarán correctamente los párrafos no es correcta. ¿Es mi interpretación correcta? De manera más general, ¿qué compensaciones están involucradas en este tipo de decisión?
Al buscar en el código fuente de moinmoin, la siguiente línea de código me llamó la atención:
# We only open those tags and let the browser auto-close them:
_auto_closing_tags = set(['p'])
( fuente )
Después de leer el resto de la implementación, me convencí a mí mismo de que sí, de hecho, cuando moinmoin genera código html para una de sus páginas, generará correctamente las etiquetas de párrafo abierto, cuando sea apropiado, mientras que al mismo tiempo evitando cualquiera de las etiquetas de cierre de párrafo (a pesar de ser capaz de hacerlo trivialmente).
Para mi caso de uso específico, bastante inusual, este comportamiento no es correcto. Estoy tentado a enviar un informe de error y / o cambiar el comportamiento. Sin embargo, parece que esta decisión de diseño fue tomada cuidadosamente. No estoy lo suficientemente versado en las complejidades del estándar html, o las diversas implementaciones del navegador, para poder decir si este es el comportamiento correcto en general, y tengo la sensación de que mi instinto de corregir / cambiar este comportamiento podría ser mal orientado.
¿Este código hace una suposición válida sobre las implementaciones del navegador? ¿El HTML generado es válido? En términos más generales, ¿qué compensaciones podría faltar aquí?