Script tag <script> causes style color to change to surrounding font color

RESOLVED FIXED

Status

()

Core
HTML: Parser
--
major
RESOLVED FIXED
9 years ago
8 years ago

People

(Reporter: John Middlemas, Unassigned)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: [fixed by the HTML5 parser])

(Reporter)

Description

9 years ago
User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8

The presence or absence of a script tag should never influence a color on the page yet does.

<HTML>

<BODY>

<FONT COLOR="green">

<p style="color:red">Should always be red</p>

<script></script>

</FONT>

</BODY>

</HTML>

If the <script> tag in the above is commented out then the text color changes to red. If the script tag is present then the text color is that of the surrounding <font> tag namely green. Tested on Firefox 3.0.8 in normal and in safe mode. Also tested on SeaMonkey 1.1.11 and it does the same.

Reproducible: Always

Steps to Reproduce:
1. Comment out the script tag
2. Put back the script tag

Actual Results:  
No script tag  - text color red
With script tag - text color green

Expected Results:  
No script tag  - text color red
With script tag - text color red

Script tag shouldn't make a difference.

Comment 1

8 years ago
Build Identifier: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.3a5pre) Gecko/20100420 Minefield/3.7a5pre

I tried several variants of the test case, and was able to re-produce the bug in Minefield 3.7a5. The problem seems to be the <font> tag:  the following code reproduces the bug:

<!DOCTYPE html>
<html>
<style>
.test {color: green;}
</style>
<body>
<font class="test">
<p style="color: red;">Should always be red</p>
<script></script>
</font>
</body>
</html>


but changing the <font> tag to, say, <div> causes the text "Should always be red" to render in red as expected:

<!DOCTYPE html>
<html>
<style>
.test {color: green;}
</style>
<body>
<div class="test">
<p style="color: red;">Should always be red</p>
<script></div>
</font>
</body>
</html>

Comment 2

8 years ago
Could you check how the latest nightly build works with the HTML5 parser turned on (http://hsivonen.iki.fi/test-html5-parsing/) and preferably also whether it matches the specified algorithm: http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html :)
Component: General → HTML: Parser
Product: Firefox → Core
QA Contact: general → parser

Comment 3

8 years ago
(In reply to comment #2)
> Could you check how the latest nightly build works with the HTML5 parser turned
> on (http://hsivonen.iki.fi/test-html5-parsing/)

New Build Identifier: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.3a5pre) Gecko/20100426 Minefield/3.7a5pre

With the HTML5 parser enabled, the text "Should always be red" is rendered in red with the test case:
<!DOCTYPE html>
<html>
<style>
.test {color: green;}
</style>
<body>
<font class="test">
<p style="color: red;">Should always be red</p>
<script></script>
</font>
</body>
</html>


The text even renders in red with the original test case:
<HTML>
<BODY>
<FONT COLOR="green">
<p style="color:red">Should always be red</p>
<script></script>
</FONT>
</BODY>
</HTML>

Comment 4

8 years ago
Thanks for testing! As you probably deduced from the set dependency, this means that this will be fixed by switching to the HTML5 parser.
Marking FIXED per comment 4.
Status: UNCONFIRMED → RESOLVED
Last Resolved: 8 years ago
Resolution: --- → FIXED
Whiteboard: [fixed by the HTML5 parser]
You need to log in before you can comment on or make changes to this bug.