As mentioned earlier, there is an ongoing project for replacing Gecko’s old HTML parser with an HTML5 parser. Significant improvements have landed lately, so if you’ve previously tried the HTML5 parser and turned it off due to crashiness or Web compatibility issues, now is a good time to turn it back on.
<!--
…-->
escapes in <script>
are parsed in a new magic way that is believed to be Web-compatible but does not require backtracking/reparsing. This is the most significant change. If you are a Web author and are wondering how to make the escapes robust on pages you write, the easiest approach is never to use the <!--
…-->
escapes in <script>
and to escape script end tags within string literals as "<\/script>"
.<title>
, <textarea>
, <style>
and <xmp>
no longer allow the end tag to be masked with <!--
.<table><form>
now works in a Web-compatible way.<ul>
and <ol>
lists now work in a Web-compatible way.<frameset>
parsing after junk markup works in a Web-compatible way.The changes to the parser core have also been deployed to Validator.nu.
First, this isn’t release-quality software. Testing the HTML5 parser carries all the same risks as testing a nightly build in general, and then some. It may crash, it may corrupt your Firefox profile, etc. If you aren’t comfortable with taking the risks associated with running nighly builds, you shouldn’t participate.
If you are still comfortable with testing, download a trunk
nightly
build, run it with a profile you are only using with trunk builds, navigate to about:config
and flip the
preference named html5.enable
to true
. This
makes Gecko use the HTML5 parser when loading pages into the content
area and when setting innerHTML
. The HTML5 parser is not
used for HTML embedded in feeds, Netscape bookmark import, View
Source, etc., yet. Note that turning the pref on in a profile that you will also be using with Firefox 3.6 is most likely a bad idea, since on the 3.6 branch the pref enables obsolete code.
The html5.enable
preference doesn’t require a
restart to take effect. It takes effect the next time you load a
page.
The main thing is getting the HTML5 parser exposed to a wide range of real Web content that people browse. This may turn up crashes or compatibility problems.
So the way to help is to use nightly builds with the HTML5 parser for browsing as usual. If you see no difference, things are going well! If you see a page misbehaving—or, worse, crashing—with the HTML5 parser turned on but not with it turned off, please report the problem.
Please file bugs in the “Core” product under “HTML: Parser” component with “[HTML5] ” at the start of the summary.
First and foremost, please refer to the list of known bugs.