Атрибут type элементов SCRIPT и STYLE в HTML?

Я слышал (от Крокфорда), какие атрибуты типа на LINK и SCRIPT являются излишними, когда эти элементы используются для загрузки внешних ресурсов. (Поскольку ответ HTTP определяет тип содержимого ресурса.)

<link rel="Stylesheet" href="foo.css">

<script src="foo.js"></script>

Но как насчет случая, когда не-HTML-код помещается внутри элементов STYLE и SCRIPT?

<style>
    /* inline CSS rules */
</style>

<script>
    // inline JavaScript code
</script>

Устанавливает ли атрибут типа в тех случаях, когда это рекомендуется? Существуют ли какие-либо проблемы, когда мы решили опустить атрибут type?

Ответ 1

Для HTML 4 ответ прост: атрибут type требуется как для <script>, так и <style>.

Авторы должны указать значение для этого атрибута; для этого атрибута нет значения по умолчанию.

Насколько я знаю, по умолчанию резервная копия во всех браузерах в ее отсутствие равна text/javascript и text/css, соответственно. Это широко распространенная (хотя и недействительная) практика, чтобы не использовать атрибут type. Я бы все же указал его, чтобы избежать проблем с браузером.

HTML 5 принимает реальность и объявляет эти значения официальными значениями по умолчанию для <style> и <script>. Я уверен, что это также позволяет оставить их для встроенного контента, который будет автоматически проанализирован с использованием правильного типа контента.