tl; dr
Einige weit verbreitete Programme, die HTML generieren, generieren nur öffnende Absatzmarken und keine schließenden, vorausgesetzt, der Browser schließt Absätze ordnungsgemäß.
Auf den ersten Blick scheint mir die Annahme, dass Browser Absätze ordnungsgemäß schließen, nicht korrekt zu sein. Ist meine Interpretation korrekt? Welche Kompromisse sind generell mit dieser Art von Entscheidung verbunden?
Beim Durchsuchen des moinmoin-Quellcodes ist mir folgende Codezeile aufgefallen:
# We only open those tags and let the browser auto-close them:
_auto_closing_tags = set(['p'])
( Quelle )
Nachdem ich den Rest der Implementierung durchgelesen habe, habe ich mich davon überzeugt, dass moinmoin, wenn es HTML-Code für eine seiner Seiten generiert, gegebenenfalls Absatz-Open-Tags korrekt generiert, während gleichzeitig gezielt Folgendes vermieden wird Tags schließen den Absatz (obwohl dies trivial möglich ist).
Für meinen speziellen, eher ungewöhnlichen Anwendungsfall ist dieses Verhalten nicht korrekt. Ich bin versucht, einen Fehlerbericht einzureichen und / oder das Verhalten zu ändern. Es sieht jedoch so aus, als ob diese Designentscheidung sorgfältig getroffen wurde. Ich bin nicht gut genug mit den Feinheiten des HTML-Standards oder den verschiedenen Browser-Implementierungen vertraut, um feststellen zu können, ob dies im Allgemeinen das richtige Verhalten ist, und ich habe das Gefühl, dass mein Instinkt, dieses Verhalten zu korrigieren / zu ändern, dies sein könnte fehlgeleitet.
Entspricht dieser Code einer gültigen Annahme für Browserimplementierungen? Ist der generierte HTML-Code gültig? Welche Kompromisse könnte ich hier allgemein vermissen?