Hallo,
Das type-Attribut ist eigentlich völlig überflüssig. Ohne Angabe wird nämlich immer javascript verwendet. Wenn du einen Browser kennst, bei dem das anders ist, würde mich interessieren, welcher das sein soll.
»JavaScript« ist nunmal im Wandel, und auch wenn z.B. HTML 5 den Fallback auf text/javascript kodifiziert und das type-Attribute optional macht, ist es in Zeiten von ECMAScript Edition 2, E4X und JavaScript 1.7 gar nicht so klar, was die nächsten Jahre bringen werden. Sicher werden die Browser nicht den Fallback grundlegend ändern, aber das type-Attribut wird wieder an Bedeutung gewinnen.
Browser wie IE kennen mehrere Scriptsprachen; IE wählt zwar offenbar standardmäßig JScript, aber spezifiziert ist das anscheinend nirgendwo, stattdessen spricht Microsoft von einer rein heuristischen Wahl und empfiehlt, die Scriptsprache immer anzugeben.
Klar, in der HTML 4.01 Strict-DTD ist das type-Attribut als "required" definiert, warum auch immer. Die Browser lesen aber meines Wissens ohnehin keine DTDs.
Wieso sollten sie auch DTDs lesen. Sie implementieren die HTML-Spezifikation. Die DTD drückt die Regeln der Grammatik maschinenlesbar aus. Solange man nicht die konkrete Syntax eines Dokuments gegen die allgemeinen Regeln prüfen will, besteht da natürlich kein Zusammenhhang.
Das heißt aber nicht, dass die Browser nicht die Grammatik implementiert haben. Sie haben dies und sind darüber hinaus noch ziemlich fehlertolerant.
Derlei Regelungen gibt es viele in der Spezifikation. Das hat seinen Grund und es hat im Allgemeinen auch seinen Grund, sie zu befolgen - auch wenn die drei Browser, für die man gerade entwickelt, in den Versionen, für die man gerade entwickelt, einen Wasserkopf an Fehlertoleranz haben und von ganz bestimmten Default-Werten ausgehen, wo die derzeit gültige HTML-Spezifikation vorschreibt, dass keine Default-Werte angenommen werden sollen...
Browser kennen nur eine begrenzte Menge erlaubter DOCTYPE-Deklarationen, und je nach DOCTYPE wird das Verhalten des Browsers ein bisschen anders. Aber mit dem, was in der DTD steht, hat wenig zu tun.
Ja, klar, aber wie kommst du vom type-Attribut auf den Doctype Switch?
Mathias