Unclosed <p> immediately preceding a form messes up form styling on Internet Explorer 7 and Internet Explorer 8

This is a paragraph without the optional end tag </p>. This is permitted by HTML rules but confuses IE's HTML rendering engine when parsing markup code and building DOM tree. The formatting of the form shows an unexpected empty yellow stripe before the form.

Actual results: there is an unexpected empty yellow stripe before the form.

Expected results: there should be no empty yellow stripe before the form.

This is a paragraph with the optional end tag </p>, followed by a form identical with the preceding one.

"Closing P tags are optional in HTML 4.01. However, when closing P tags are omitted, Internet Explorer 7 does not properly close paragraphs when TABLE elements are encountered. (...)
To be compliant with HTML 4.01, the P tag must close before any non-inline element."
coming from HTML Improvements and Acid2 (PDF)
The P Element
downloadable at http://code.msdn.microsoft.com/ie8whitepapers/Release/ProjectReleases.aspx?ReleaseId=572

This bug has been originally presented, discussed and explained in forum discussion comp.infosystems.www.authoring.stylesheets thread's "Lack of end tag messes up form styling - a known bug?"

Credit must go to Jukka Korpela for discovering, figuring out and reporting this bug thanks to his Unclosed <P> before a form webpage testcase.

Firefox, Opera 9.27, Opera 9.50, Safari 3.1, Konqueror 3.5.8, Amaya 11 build 20081216, Seamonkey 1.x, Seamonkey 2.x, NS 7.2 all pass this test.

This bug has been reported at connect's IE beta feedback as bug 338580. This bug has been closed by the IE team and will not be fixed for the release of IE 8 final.

HTML 4.01 Strict compliant Valid CSS!