- From: Simon Pieters <simonp@opera.com>
- Date: Wed, 14 May 2008 18:09:32 +0200
- To: "public-html@w3.org" <public-html@w3.org>
The spec says about the content model of the script element:
If there is a src attribute, the element must be empty.
I'm not sure it is useful to ban contents of <script src> elements.
Philip` kindly provided some data, as always:
http://philip.html5.org/data/nonempty-scripts.html
Things authors put in <script src> deliberatly:
A: An empty comment, ";", "var dummy=0;", etc, as a way to prevent their
server side XSLT to emit "<script ... />" (though most empty comments
are likely just cargo cult). Banning this means that authors have to
change their backend in order to move to HTML5, which seems to be an
unnecessary blocker for adoption.
B: A comment containing a description of the script and/or copyright
information. Moving this comment to outside the script element seems
pointless and has less chance of surviving copy-paste, and I'd imagine
authors would get stumped when the comment says "This notice MUST stay
intact for legal use".
C: Empty function declarations with the same names as the functions
declared in the external script. Personally I find this slightly
confusing and would rather put them in a comment.
D: "document.write(Javascript file not available);". Bogus but harmless.
Authoring mistakes:
E: Forgetting the end tag of the previous script element. It might be
useful if conformance checkers checked this explicitly by looking for
"<script" that is not in an escaped text span in script src elements,
and give a message that there's probably a </script> missing.
F: Having an open script element because of a "<script ... />" tag.
Conformance checkers flag this mistake already.
G: Script that seems to be intended to be run. This doesn't seem to be
very common, but perhaps conformance checkers can check this mistake
somehow (e.g. by only allowing /*...*/ chunks and lines that start
with // or <!--, at least when it's javascript)?
H: "<noscript>...</noscript>" or other bogus markup or text.
How often the above cases occurred in the sample (I checked the first 222
occurances in the list):
Case | Occurances | Percentage
-------------------------+------------+-----------
A: Empty comment or ";" | 61 | 27%
B: Description/copyright | 137 | 62%
C: function foo() {} | 2 | 1%
D: document.write(...) | 2 | 1%
E: <script src><script> | 3 | 1%
F: <script ... /> | 2 | 1%
G: script content | 6 | 3%
H: <noscript> or other | 9 | 4%
Conclusion: I'd like conformance checkers to not complain about case A and
B. It would be useful if they complained about E, F, G and H. It would be
ok if they complained about C and D, too.
--
Simon Pieters
Opera Software
Received on Wednesday, 14 May 2008 16:11:16 UTC