Ответ 1
Технически, это указано в DOM Level 1:
HTML DOM возвращает
tagName
элемента HTML в канонической форме в верхнем регистре, независимо от случая в исходном HTML-документе.
Согласование имен тегов верхнего регистра, вероятно, связано с наследием, когда HTML был ранее разработан на основе SGML, а типы элементов были объявлены в верхнем регистре. См. этот раздел спецификации HTML 4.01, обсуждающий SGML, HTML и его синтаксис, а также, например, HTML 4.01 Строгое определение типа doctype. Любые реализации DOM, поддерживающие HTML, последуют примеру.
Обратите внимание, что имена тегов в нижнем регистре явно требуются только в XHTML (но не в XML), и авторам обычно рекомендуется писать строчные теги для удобного переноса между HTML/XHTML, а также улучшать читаемость. Однако эта рекомендация не встречается в спецификации; все это говорит о том, что имена тегов не зависят от регистра только в HTML, а не XHTML и XML.