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 cierre los párrafos correctamente.
A primera vista, me parece que la suposición de que los navegadores cerrarán los párrafos correctamente no es correcta. ¿Es correcta mi interpretación? En términos más generales, ¿qué compensaciones están involucradas en este tipo de decisión?
Al examinar el código fuente de moinmoin, me llamó la atención la siguiente línea de código:
# 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 he convencido de que sí, de hecho, cuando moinmoin genera código html para una de sus páginas, generará correctamente etiquetas abiertas de párrafo, cuando corresponda, mientras que al mismo tiempo evita deliberadamente las etiquetas de cierre de párrafo (a pesar de poder 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 se tomó 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 para corregir / cambiar este comportamiento podría ser equivocado.
¿Este código hace una suposición válida sobre las implementaciones del navegador? ¿Es válido el html generado? En términos más generales, ¿qué compensaciones podría estar perdiendo aquí?