Netscape Navigator 6.0 to Fail Standards Compliance

by David Flanagan

Netscape is rushing to release version 6.0 of its Navigator browser despite the fact that there are serious problems with its compliance to open standards. I'm writing to express my dismay at the number of standards-compliance bugs that remain in the Navigator 6.0 code base, and at the end of this article I'm requesting that like-minded developers register their comments and sign their names in protest.

Editor's Note: Due to the overwhelming response to this article, we want to alert you to subsequent articles on this same topic.

8 November 2000: David summarizes over 1,000 reader responses (as of November 8) and clarifies his main points in Netscape Navigator 6.0 to Fail Standards Compliance: An Update.

16 November 2000: And now that Netscape 6.0 has been released, read David's latest article, Netscape 6.0 Released. David says it's now time to move into a standards-based era, and he includes a summary and an official response from Eric Krock, Netscape's Group Product Manager for Tools and Components.

Navigator 6 will be Netscape's first commercial release of a browser based on open-source code from the Mozilla project. The Mozilla project, hosted at, includes an online bug database, accessible at A search of this database reveals numerous outstanding bugs that affect compliance with HTML, DOM, CSS, and ECMAScript (JavaScript) standards.

Reading the discussions of individual bugs provides an interesting glimpse into the workings of the Mozilla open-source process, and into the interactions between Mozilla and Netscape. In a number of cases, Mozilla engineers have fixed standards-compliance bugs and have had their patches to the source code reviewed twice by senior engineers. Even when the patches are extraordinarily simple ones, and the Mozilla engineers are convinced that they pose no risk of introducing other bugs, their requests to include the fixes into the Netscape 6 release are denied by the Netscape Product Development Team (PDT) out of fear, apparently, that accepting these patches would cause the release schedule to slip.

Indeed, the discussion of bug #53849 includes a definition of a "must-fix problem" as one that is "defined by marketing and legal requirements." Under this criteria, even the trivial correction of a misspelling in an error message (see bug #57869), cannot be made.

A sampling of bugs that affect Navigator's standards compliance include:

  • #40828: The padding of cells in HTML tables is lost when the table is hidden and reshown using the CSS and DOM standards. A fix is available for this bug, but has been refused by the PDT. The discussion of this bug includes an impassioned plea from a developer for the fix to be included in Navigator 6.0.

  • #57634: HTML <DL> elements may not be nested within <DD> elements. Although this practice is common, and a fix for the bug is available, Netscape will not fix this bug for Navigator 6. Instead, they will simply document it in the release notes.

  • #49120: JavaScript cannot be used to set the properties of HTML hyperlinks until the user has already interacted with the link. This is a bug in DOM Level 0 compliance. It is also incompatible with previous releases of Navigator, which do allow link properties to be manipulated programmatically. There is a proposed fix for this bug.

  • #58753: The Document.referrer property (specified by DOM Level 0) is not correctly implemented.

  • #9850 The DOM method createEntityReference() does not function.

  • #48031: The DOM methods removeChild() and replaceChild() can crash the browser. There is a patch available for this bug, but it will not be applied for Navigator 6.0.

  • #58007: The JavaScript Date.toDateString() and Date.toTimeString() are specified by the ECMAScript standards, but are not implemented. This has been fixed in the Mozilla sources, but the fix will not be adopted for Netscape 6.

  • #56320: The JavaScript Error() constructor method does not work as specified by the ECMAScript standard when called as a function. The fix for this bug has been refused by the PDT.

  • #57048 The JavaScript Object.propertyIsEnumerable() method does not work as specified by the ECMAScript standard.

These standards-compliance bugs are of particular concern to Web developers because Netscape 6 is not just a Web browser; it is a development platform. Developers who have eagerly looked forward to "sixth-generation" browsers that are finally standards compliant may be disappointed by Netscape's offering. Although these compliance bugs will presumably be fixed in later releases, the 6.0 release defines a baseline, and many developers may shy away from using any of the advanced features enabled by the HTML, DOM, CSS, and ECMAScript standards in any 6.x browser because of the noncompliance of the 6.0 release.

I'm making the following requests of the Netscape PDT:

  1. That you rename the upcoming release of Navigator 6.0 as a beta and reopen the tree and allow your engineers to apply the patches they've already created.

  2. That you refocus your attention and efforts on standards compliance.

  3. That you postpone a final release of the Navigator 6.0 platform until it more robustly supports open standards.
Thanks to everyone who registered their thoughts on David Flanagan's petition. We are no longer accepting new comments, but you can read the 1,300 comments we collected.

David Flanagan is the author of several best-selling O'Reilly books, including JavaScript: The Definitive Guide, Java in a Nutshell, and Java Examples in a Nutshell.