tl; dr
Alcuni programmi ampiamente utilizzati, che generano HTML, genereranno solo tag di paragrafo di apertura e non di chiusura, supponendo che il browser chiuda correttamente i paragrafi.
A prima vista, mi sembra che il presupposto che i browser chiudano correttamente i paragrafi non sia corretto. La mia interpretazione è corretta? Più in generale, quali compromessi sono coinvolti in questo tipo di decisione?
Navigando attraverso il codice sorgente di moinmoin, la seguente riga di codice ha attirato la mia attenzione:
# We only open those tags and let the browser auto-close them:
_auto_closing_tags = set(['p'])
( fonte )
Dopo aver letto il resto dell'implementazione, mi sono convinto che sì, infatti, quando moinmoin genera codice html per una delle sue pagine, genererà correttamente tag di apertura di paragrafo, se del caso, evitando allo stesso tempo intenzionalmente qualsiasi il paragrafo chiude i tag (nonostante sia in grado di farlo in modo banale).
Per il mio caso d'uso specifico, piuttosto insolito, questo comportamento non è corretto. Sono tentato di inviare una segnalazione di bug e / o modificare il comportamento. Tuttavia, sembra che questa decisione di progettazione sia stata presa in modo ponderato. Non sono abbastanza esperto delle complessità dello standard html, o delle varie implementazioni del browser, per essere in grado di dire se questo è un comportamento corretto in generale, e ho la sensazione che il mio istinto di correggere / cambiare questo comportamento potrebbe essere sbagliata.
Questo codice fa un presupposto valido sulle implementazioni del browser? L'html generato è valido? Più in generale, quali compromessi potrei mancare qui?