Würde der Inhalt von noscript-Blöcken wie gewohnt geparst worden (und z.B. einfach die display-Eigenschaft auf
none
gesetzt), hätten wir zwei Element gleicher ID.
Stimmt, das leuchtet ein. Danke für die Erklärung. Allerdings halte ich das für einen sehr abseitigen Fall und kann nicht so recht nachvollziehen, wieso man deshalb einen radikalen Bruch macht, indem man plötzlich sagt: noscript darf bei XHTML nicht funktionieren! Nun, das tut es schon in allen XHTML-fähigen Browsern. Weil es nicht möglich ist, dass sich HTML und XHTML in dem Punkt gleich verhalten können, verbietet man noscript in XHTML einfach komplett. Sorry, das ist auch eine dumme Idee. Ich finde die aktuell schon umgesetzte Regelung besser. Klar, da muss man in manchen Fällen aufpassen und darauf achten, dass die Elemente in noscript ganz normaler Teil des DOM-Baums sind - und z.B. händisch selbst alle Kindelemente von noscript killen, wenn man vorhat, ein Element mit einer ID zu erzeugen, die bereits von einem Element im noscript-Element verwendet wird.
Ich kann mir nicht vorstellen, dass die Browser ihr bisheriges Verhalten plötzlich ändern und noscript-Elemente in XHTML plötzlich ignorieren, d.h. deren Inhalt auch bei aktiviertem Scripting anzeigen. Das wäre das genaue Gegenteil von Kompatibilität mit dem existierenden Web. Don't break the Web, hatte sich die WHATWG mal auf die Fahnen geschrieben. *Das* würde garantiert einige Sites kaputtmachen.
Mathias