Comparison of layout engines (Document Object Model)
The following tables compare DOM compatibility and support for a number of layout engines. Please see the individual products' articles for further information. This article is not all-inclusive or necessarily up-to-date. Unless otherwise specified in footnotes, comparisons are based on the stable versions without any add-ons, extensions or external programs.
For features that are fully supported (based on DOM Level 2 or DOM Level 3 modules that are under W3C Recommendation), an exact version number is given if it is certain that the feature was added in such version. DOM Level 0 and DOM Level 3 modules that are still under development are not included.
†In Konqueror, the user can switch layout engine.
Values
Values indicate the level of support in the most recent version of the layout engine, or (if a version number is given) in the specified version. Version numbers without any other value indicate the version at which the layout engine first fully supported the feature.
Value
Meaning
Yes
Indicates that the layout engine fully supports this property/element when valid values are used.
No
Indicates that the property/element is completely ignored.
Partial
Indicates that the property/element is understood, but that not all values are supported. Supported values are implemented correctly.
Incorrect
Indicates that the property/element is understood, but that it is not implemented correctly in all cases.
Experimental
Indicates that the property/element is understood, but supported under an alternate name. May be incomplete or buggy.
Dropped
Indicates that the property/element is no longer supported.
The interfaces within this section are considered fundamental, and must be fully implemented by all conforming implementations of the DOM, including all HTML DOM implementations.
doctype — Prior to version 9.0, returns true when checked but always contains null.
getElementById() — Prior to version 8.0 returned elements with name attribute set to value being found, not only id.[t 4]
getAttribute(), setAttribute(), removeAttribute() — prior to version 8.0 returned, set, or removed, respectively, the corresponding DOM property instead of the string value of the attribute.
AttributeNode.specified — Does not set specified to true if ownerElement is null.
Node.isSameNode — Prior to version 9.0, only supported for XML documents.
Tasman Core (Fundamental) notes
AttributeNode.specified — Does not set specified to true if ownerElement is null.
Gecko Core (Fundamental) notes
insertBefore(), replaceChild(), removeChild(), appendChild() — Fails on Attr nodes.[g 1]appendChild does not work as expected for DocumentFragment nodes prior to 1.8.
AttributeNode.specified — Prior to 1.9.1 does not set specified to true if ownerElement is null. Does not create Attribute Nodes for default values specified in the DTD.
Presto Core (Fundamental) notes
getElementById() — Versions prior to Opera 9.50 returns elements with name attribute set to value being found, not only id.[p 1]
URI attribute value — In versions prior to Opera 9, all URI attribute values are resolved to full URI. Hence the value from getAttribute() and getAttributeNode() could be wrong if relative URIs are used.
Attributes that are not supported in the layout engine are still parsed and available through DOM. E.g. char and charoff are available under .ch and .chOff.
In Opera 8.54 methods DOMImplementation.createDocument and DOMDocument.createElementNS both fail to accept any non-empty namespace URI. They work in Opera 9 Beta 2 and they may also have worked before (somebody with Opera 8, please check.) The symptom is that the namespaceURI property is null/empty and serialization gives wrong result.
WebKit Core (Fundamental) notes
AttributeNode.specified — Does not create Attribute Nodes for default values specified in the DTD.
KHTML Core (Fundamental) notes
AttributeNode.specified — Does not create Attribute Nodes for default values specified in the DTD.
Core (Extended)
The interfaces defined here form part of the DOM Core specification, but objects that expose these interfaces will never be encountered in a DOM implementation that deals only with HTML.
The interfaces found within this section are not mandatory. This section extends the DOM Core API to describe objects and methods specific to HTML documents, and XHTML documents. In general, the functionality needed to manipulate hierarchical document structures, elements, and attributes will be found in the core section; functionality that depends on the specific elements defined in HTML will be found in this section. Elements deprecated since HTML 4.01 are not listed. Some elements and attributes listed here are deprecated in XHTML 1.1. For example, presentation attributes, image maps, frames and targets.
text — Opera 8 and lower returned data at src, when it should return inline data instead.
Style (Style Sheets)
The interfaces found within this section are not mandatory. The interfaces in this section are base interfaces used to represent any type of style sheet.
href — Prior to version 8.0 relative URLs were not resolved to full URLs.[t 5]
media — Returns string instead of MediaList.
Style (CSS Fundamental)
The interfaces within this section are considered fundamental CSS interfaces, and must be supported by all conforming implementations of the CSS module. These interfaces represent CSS style sheets specifically.
The interfaces found within this section are not mandatory. The first goal is the design of a generic event system which allows registration of event handlers, describes event flow through a tree structure, and provides basic contextual information for each event. The second goal of the event model is to provide a common subset of the current event systems used in DOM Level 0 browsers. See also DOM Events for details.
target — Return text node, if any, of the target element node prior to 1.3.
timeStamp — Is relative to the system start instead of to 1 January 1970.[g 12]
WebKit Events notes
target — Return text node, if any, of the target element node (fixed in v73, but reverted in v85).
clientX, clientY — Treated as pageX and pageY.
button — Does not use W3C values.
KHTML Events notes
DOMSubtreeModified — Not triggered when an element is removed from the subtree.
Presto Events notes
button — Does not use W3C values prior to 8.0.
Views
The interfaces found within this section are not mandatory. A document may have one or more "views" associated with it, e.g., a computed view on a document after applying a CSS stylesheet, or multiple presentations (e.g. HTML frame) of the same document in a client. That is, a view is some alternate representation of, or a presentation of, and associated with, a source document.
defaultView — Trident does not support the defaultView property for documents, but it supports another property with the same meaning which is parentWindow.
Traversal
The interfaces found within this section are not mandatory. Its interfaces provide easy-to-use, robust, selective traversal of a document's contents.
The interfaces found within this section are not mandatory. It includes methods for creating and moving a Range and methods for manipulating content with Ranges.
The interfaces within this section are considered fundamental, and must be fully implemented by all conforming implementations of the DOM Load and Save module.
The interfaces found within this section are not mandatory. This module provides interfaces to guide construction and editing of XML documents. Examples of such guided editing are queries like those that combine questions like "what does the schema allow me to insert/delete here" and "if I insert/delete here, will the document still be valid."
Tags: Comparison of layout engines (Document Object Model), Information Science, 464, Comparison of layout engines (Document Object Model) The following tables compare DOM compatibility and support for a number of layout engines, Please see the individual products' articles for further information, This article is not all inclusive or necessarily up to date, Unless otherwise specified in footnotes comparisons are based on the stable versions without any add ons extensions or exte, Comparison of layout engines (Document Object Model), English, Instruction Examples, Tutorials, Reference, Books, Guide pasar, pts-ptn.net