Version: (using KDE KDE 3.1.4)
Installed from: Debian testing/unstable Packages
Consider the following short example html-code:
<p>There should not be a
in this paragraph!</p>
Further, if you put an align="center" in the opening <p>-tag, you will note, that obviously the whole paragraph gets closed at the <noscript>-tag (the first half of the paragraph will be centered, the second half on a separate line will be left-aligned).
Renders as expected (no line/paragraph break) in Mozilla 1.4.
*** This bug has been marked as a duplicate of 47241 ***
Sorry, I don't think this is a duplicate of 47241. It may be related internally, I don't know about that, but it does seem to me to be an entirely different matter.
This bug has nothing to do with withespace-handling. The essence of this bug is, that an opening "<noscript>"-tag should not be considered as closing a <p>-tag that it's located inside.
<p align="right">This is right-aligned <noscript>and</noscript> this should be right-aligned, too, since it should be the same paragraph.</p>
This is a different situation from 47241. It's simply, that the <noscript>-tag should not close the paragraph, same as a <script>-tag does not close the containing <p> either. The rendering _inside_ the <noscript/>-section is not the problem here (I admit, the bug is somewhat mistitled).
Still present in 3.2.2
Created attachment 8335 [details]
but you're aware it's illegal HTML, aren't you?
Hmm, accordind to selfhtml you can not use <noscipt> in <p> but in these blockelements:
applet | blockquote | body | button | center | dd | del | div | fieldset | form | iframe | ins | li | map | noframes | noscript | object | td | th
So the example seems to be wrong html. But what about real world sites? :-}
real world sites don't care about legal HTML.
Opera has same behavior as Firefox
SVN commit 549401 by carewolf:
Allow noscript in P like Firefox and Opera
M +2 -2 dtd.cpp
--- branches/KDE/3.5/kdelibs/khtml/html/dtd.cpp #549400:549401
@@ -599,8 +599,8 @@
// _1 *
return check_array(childID, tag_list_1) || check_array(childID, tag_list_6);
- // P: ( _0 | TABLE ) *
- return check_array(childID, tag_list_0) || (!strict && childID == ID_TABLE);
+ // P: ( _0 | TABLE | NOSCRIPT) *
+ return check_array(childID, tag_list_0) || (!strict && (childID == ID_TABLE || childID == ID_NOSCRIPT));