tl; dr
Niektóre powszechnie używane programy, które generują HTML, generują tylko otwierające znaczniki akapitów, a nie zamykające, zakładając, że przeglądarka prawidłowo zamyka akapity.
Na pierwszy rzut oka wydaje mi się, że założenie, że przeglądarki będą poprawnie zamykać akapity, jest nieprawidłowe. Czy moja interpretacja jest poprawna? Mówiąc bardziej ogólnie, jakie kompromisy wiążą się z tego rodzaju decyzją?
Przeglądając kod źródłowy moinmoin, mój wiersz przykuł moją uwagę:
# We only open those tags and let the browser auto-close them:
_auto_closing_tags = set(['p'])
( źródło )
Po przeczytaniu całej reszty implementacji przekonałem się, że tak, rzeczywiście, kiedy moinmoin generuje kod HTML dla jednej ze swoich stron, w razie potrzeby poprawnie wygeneruje otwarte akapity, a jednocześnie celowo uniknie akapity zamykają tagi (pomimo tego, że mogą to zrobić w trywialny sposób).
W moim konkretnym, raczej nietypowym przypadku użycia, takie zachowanie jest nieprawidłowe. Kusi mnie, aby przesłać raport o błędzie i / lub zmienić zachowanie. Wygląda jednak na to, że ta decyzja projektowa została starannie przemyślana. Nie jestem wystarczająco dobrze zaznajomiony z zawiłościami standardu HTML lub różnych implementacji przeglądarki, aby móc stwierdzić, czy ogólnie jest to prawidłowe zachowanie, i mam wrażenie, że mój instynkt do poprawienia / zmiany tego zachowania może być wprowadzony w błąd.
Czy ten kod stanowi prawidłowe założenie dotyczące implementacji przeglądarki? Czy wygenerowany HTML jest prawidłowy? Mówiąc bardziej ogólnie, jakich kompromisów mogę tutaj pominąć?