ТЛ; др
Некоторые широко используемые программы, которые генерируют html, будут генерировать только открывающие теги абзацев, а не закрывающие, при условии, что браузер правильно закроет абзацы.
На первый взгляд, мне кажется, что предположение о том, что браузеры будут правильно закрывать абзацы, неверно. Правильна ли моя интерпретация? В целом, какие компромиссы связаны с таким решением?
Просматривая исходный код moinmoin, мне попалась следующая строка кода:
# We only open those tags and let the browser auto-close them:
_auto_closing_tags = set(['p'])
( источник )
Прочитав остальную часть реализации, я убедил себя, что да, действительно, когда moinmoin генерирует html-код для одной из своих страниц, он будет правильно генерировать открытые теги абзаца, где это уместно, и в то же время целенаправленно избегать любого из теги закрытия абзаца (несмотря на то, что это можно сделать тривиально).
Для моего конкретного, довольно необычного варианта использования это поведение не является правильным. Я испытываю желание отправить сообщение об ошибке и / или изменить поведение. Тем не менее, похоже, что это дизайнерское решение было продуманно принято. Я недостаточно хорошо разбираюсь в тонкостях стандарта html или различных реализаций браузера, чтобы понять, является ли это правильным поведением в целом, и у меня есть ощущение, что мой инстинкт исправления / изменения этого поведения может быть ошибочный.
Этот код делает правильное предположение о реализации браузера? Является ли созданный HTML действительным? В целом, какие компромиссы я мог бы упустить здесь?