More than two years ago, I reported an issue to the XHTML working group: the specifications for all versions of HTML and XHTML (up to the XHTML2 draft that was current at that time) forbid the usage of the <noscript> element in <head>. As a result, it is difficult for a page author to have a fallback solution in case scripting is disabled and the header of the page contains a script generating a link to a style sheet or generating the title of the page. Well, in reality it is possible because all browsers support the usage of <noscript> in <head>, but this is not allowed according to the HTML and XHTML specifications.
The main issue is that due to the way the DTDs for the various versions of HTML and XHTML were defined, the <noscript> element could only contain elements allowed inside <body>, but not the elements allowed inside <head> (such as <link>, <title>, <meta> and <script>). So <noscript> was simply not allowed in <head>.
I was pleasantly surprised when I received an e-mail message yesterday telling me that this issue had been addressed some time ago in the XHTML2 draft but they forgot to notify me earlier. The way this issue was solved (together with other related issues) is interesting: they introduced a new Handler module to XHTML2, defining a <handler> element that basically replaces the old <script> and <noscript>.
This is nice. But I’m wondering how long it will take for XHTML2 to become an official standard, and how long it will take before XHTML2 is implemented in the browsers and used by web designers…