Попробуйте следующее в консоли браузера:
a = document.createElement('div')
a.innerHTML = '<p><footer></footer>'
a // <div><p></p><footer></footer></div>
a.innerHTML = '<div><footer></footer>'
a // <div><div><footer></footer></div></div>
Исправлено как <p></p><footer></footer>
для сломанных <p>
, а <div><footer></footer></div>
для сломанных <div>
.
Есть ли какой-нибудь стандарт? Или это решено браузером?