Comparison of layout engines (DOM)

From Wikipedia, the free encyclopedia

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; otherwise, a rough version number is given (e.g. < 2.0 means that the feature was supported since version 2.0 or below). DOM Level 0 and DOM Level 3 modules that are still under development are not included.

Contents

[edit] Explanation of the tables

[edit] Engine nomenclature

Rather than the names of web browsers, the names of the underlying engines are used. The browsers that use the various engines are listed below.

Layout Engine Used By
Trident Internet Explorer 4 to Internet Explorer 8
Tasman Internet Explorer 5 for Mac
Gecko All Mozilla software, including Firefox; Galeon; Flock; also Epiphany
WebKit Safari; iCab 4; Epiphany;
KHTML Konqueror
Presto Opera; Nintendo DS Browser; Internet Channel
iCab iCab 1-3
Prince XML Prince XML
Amaya Amaya

[edit] 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 when valid values are used.
No Indicates that this property is completely ignored.
Partial Indicates that the property is understood, but that not all values are supported. Supported values are implemented correctly.
Incorrect Indicates that the property is understood, but that it is not implemented correctly in all cases.
Experimental Indicates that the property is provided in experimental form under an alternative name, generally with only partial functionality.

[edit] General overview

Trident Tasman Gecko WebKit KHTML Presto iCab
DOM1 6.0 Yes 1.0 85 Yes 7.0 Yes
DOM2 Minor Minor Major Major Major Major Major
DOM3 No No Minor Minor Minor Minor Minor

[edit] Core (Fundamental)

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.

Trident Tasman Gecko WebKit[1] KHTML Presto iCab
Exception DOMException
DOM1 code  ?  ? 1.0  ?  ? 7.0  ?
Interface DOMStringList
DOM3 length No No 1.6 No  ? 9.0  ?
contains()  ?  ?
item()  ?  ?
Interface NameList
DOM3 length No No 1.6 No No No No
getName()
getNamespaceURI()
contains()
containsNS()
Interface DOMImplementationList
DOM3 length No No No No No No No
item()
Interface DOMImplementationSource
DOM3 getDOMImplementation() No No No No No No No
getDOMImplementationList()
Interface DOMImplementation
DOM1 hasFeature() ≤ 6.0  ? 1.0 Yes  ? 7.0  ?
DOM2 createDocumentType() No No 1.0 Yes  ? 8.0  ?
createDocument()  ?  ?
DOM3 getFeature() No No No No  ? ≤ 8.0  ?
Interface DocumentFragment
DOM1 (no properties) ≤ 6.0 No 1.0  ?  ? 7.0  ?
Interface Document
DOM1 doctype 6.0 Yes 1.0 Yes  ? 7.0  ?
implementation 6.0 Yes 1.0  ? 7.0  ?
documentElement 5.0 Yes 1.0  ? 7.0  ?
createElement() 4.0 Yes 1.0  ? 7.0  ?
createDocumentFragment() 6.0 No 1.0  ? 7.0  ?
createTextNode() 5.0 Yes 1.0  ? 7.0  ?
createComment() 6.0 No 1.0  ? 7.0  ?
createCDATASection() No No 1.0  ? 8.0  ?
createProcessingInstruction() No  ? 1.7  ? 8.0  ?
createAttribute() 5.0 Yes 1.0  ? 7.0  ?
createEntityReference() No  ? 1.0  ? No  ?
getElementsByTagName() 5.0 Yes 1.0  ? 7.0  ?
DOM2 importNode() No No 1.0 Yes  ? 7.0  ?
createElementNS() No No  ? 8.0  ?
createAttributeNS() No No  ? 8.0  ?
getElementsByTagNameNS() No No  ? 8.0  ?
getElementById() Incorrect Yes  ? 9.5  ?
DOM3 inputEncoding No No ≤ 1.7 No  ? No  ?
xmlEncoding No  ? No  ?
xmlStandalone No  ? No  ?
xmlVersion No  ? No  ?
domConfig No  ? No  ?
strictErrorChecking No  ? No  ?
documentURI No  ? No  ?
adoptNode() Yes  ? 9.0  ?
normalizeDocument() No  ? No  ?
renameNode() No  ? No  ?
Interface Node
DOM1 nodeName 5.0 Yes 1.0 Yes  ? 7.0  ?
nodeValue 5.0 1.0  ?  ?
nodeType 5.0 1.0  ?  ?
parentNode 5.0 1.0  ?  ?
childNodes 5.0 1.0  ?  ?
firstChild 5.0 1.0  ?  ?
lastChild 5.0 1.0  ?  ?
previousSibling 5.0 1.0  ?  ?
nextSibling 5.0 1.0  ?  ?
attributes 5.0 1.0  ?  ?
ownerDocument 5.0 1.9  ?  ?
insertBefore() 5.0 Partial  ?  ?
replaceChild() 5.0 Partial  ?  ?
removeChild() 5.0 Partial  ?  ?
appendChild() 5.0 Partial  ?  ?
hasChildNodes() No 1.0  ?  ?
cloneNode() 5.0 1.0  ?  ?
DOM2 namespaceURI 5.0 Yes 1.0 Yes  ? 7.0  ?
prefix 5.0  ? 7.0  ?
localName 5.0  ? 7.0  ?
isSupported() No  ? 7.0  ?
hasAttributes() No  ? 7.0  ?
DOM3 baseURI No No ≤ 1.7 Yes  ? No  ?
textContent No ≤ 1.7  ? 9.0  ?
compareDocumentPosition() No ≤ 1.7  ? 9.5  ?
isSameNode() Partial ≤ 1.8  ? 9.5  ?
lookupPrefix() No ≤ 1.7  ? 9.0  ?
isDefaultNamespace() No ≤ 1.7  ? 9.0  ?
lookupNamespaceURI() No ≤ 1.7  ? 9.0  ?
isEqualNode() No 1.9  ? No  ?
getFeature() No ≤ 1.7  ? 9.0  ?
setUserData() No ≤ 1.7  ? No  ?
getUserData() No ≤ 1.7  ? No  ?
Interface NodeList
DOM1 length 5.0 Yes 1.0 Yes  ? 7.0  ?
item()  ?  ?
Interface NamedNodeMap
DOM1 length 5.0 Yes 1.0 Yes  ? 7.0  ?
getNamedItem()  ?  ?
setNamedItem()  ?  ?
removeNamedItem()  ?  ?
item()  ?  ?
DOM2 getNamedItemNS() No No 1.0 Yes  ? 7.0  ?
setNamedItemNS()  ?  ?
removeNamedItemNS()  ?  ?
Interface CharacterData
DOM1 data 4.0 Yes 1.0 Yes  ? 7.0  ?
length  ?  ?
substringData()  ?  ?
appendData()  ?  ?
insertData()  ?  ?
deleteData()  ?  ?
replaceData()  ?  ?
Interface Attr
DOM1 name ≤ 6.0  ? 1.0 Yes  ? 7.0  ?
specified Incorrect Incorrect Incorrect Yes  ?
value No  ? 1.0  ?  ?
DOM2 ownerElement No  ? 1.0 Yes  ? 7.0  ?
DOM3 schemaTypeInfo No No No No  ? No  ?
isId  ?  ?
Interface Element
DOM1 tagName 4.0 Yes 1.0 Yes  ? 7.0  ?
getAttribute() Incorrect Yes  ?  ?
setAttribute() Incorrect Yes  ?  ?
removeAttribute() Incorrect Yes  ?  ?
getAttributeNode() 6.0 Yes  ?  ?
setAttributeNode() No Yes  ?  ?
removeAttributeNode() No Yes  ?  ?
getElementsByTagName() 4.0 Yes  ?  ?
normalize() No No  ?  ?
DOM2 getAttributeNS() No Yes 1.0 Yes  ? 8.0  ?
setAttributeNS() Yes  ?  ?
removeAttributeNS() Yes  ?  ?
getAttributeNodeNS() Yes  ?  ?
setAttributeNodeNS() Yes  ?  ?
getElementsByTagNameNS() No  ?  ?
hasAttribute() Yes  ?  ?
hasAttributeNS() Yes  ?  ?
DOM3 schemaTypeInfo No No No No  ? No  ?
setIdAttribute()  ?  ?
setIdAttributeNS()  ?  ?
setIdAttributeNode()  ?  ?
Interface Text
DOM1 splitText() No Yes 1.0 Yes  ? 7.0  ?
DOM3 isElementContentWhitespace No No No No  ? No  ?
wholeText 1.9.1  ? 9.5  ?
replaceWholeText() 1.9.1  ? 9.5  ?
Interface Comment
DOM1 (no properties) 6.0 No 1.0 Yes  ? 7.0  ?
Interface TypeInfo
DOM3 typeName No No No No No No No
typeNamespace
isDerivedFrom()
Interface UserDataHandler
DOM3 handle() No No No No No No No
Interface DOMError
DOM3 severity No No No No No 9.0 No
message 9.0
type 9.0
relatedException No
relatedData 9.0
location 9.0
Interface DOMErrorHandler
DOM3 handleError() No No No No No 9.0 No
Interface DOMLocator
DOM3 lineNumber No No No No No 9.0 No
columnNumber
byteOffset
utf16Offset
relatedNode
uri
Interface DOMConfiguration
DOM3 parameterNames No No No No  ? 9.0  ?
setParameter()  ?  ?
getParameter()  ?  ?
canSetParameter()  ?  ?

[edit] Trident Core (Fundamental) notes

  1. getElementById() — returns elements with name attribute set to value being found, not only id. Present in IE7. [1]
  2. getAttribute(), setAttribute(), removeAttribute() — returns, sets, and removes, respectively, the corresponding DOM property instead of the string value of the attribute. For example, element.getAttribute('onclick') returns element.onclick, which is a reference to a function and not a string. Another example: element.removeAttribute('class') does not work as expected; element.removeAttribute('className') must be called instead. getAttribute and setAttribute with 'style' as their parameter don't work, but the inline style can be retrieved by setting the non-standard iFlags parameter to 2 (i.e. by calling element.getAttribute('style',2)), or accessed using the Node.style property. [2]
  3. AttributeNode.specified — Does not set specified to true if ownerElement should be null.
  4. Node.isSameNode — isSameNode is only supported for XML documents, not HTML ones.

[edit] Tasman Core (Fundamental) notes

  1. AttributeNode.specified — Does not set specified to true if ownerElement should be null.

[edit] Gecko Core (Fundamental) notes

  1. insertBefore(), replaceChild(), removeChild(), appendChild() — Fails on Attr nodes [3]. appendChild does not work as expected for DocumentFragment nodes prior to 1.8 [4].
  2. createEntityReference() — Supported, but returns null when the method is checked [5].
  3. AttributeNode.specified — Does not set specified to true if ownerElement is null [6]. As it also does not create Attribute Nodes for default values specified in the DTD, it renders this property absolutely useless.
  4. wholeText, replaceWholeText() — See Bug 421765 on Bugzilla

[edit] Presto Core (Fundamental) notes

  1. getElementById() — Versions prior to Opera 9.50 returns elements with name attribute set to value being found, not only id [7].
  2. 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.
  3. 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.
  4. 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.

[edit] 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.

Trident Tasman Gecko WebKit[2] KHTML Presto iCab
Interface CDATASection
DOM1 (no properties) No No 1.0 Yes  ? 9.0  ?
Interface DocumentType
DOM1 name No No 1.0 Yes  ? 8.0  ?
entities No No No [8] Yes  ? 8.0  ?
notations No No No [9] Yes  ? 8.0  ?
DOM2 publicId No No 1.0 Yes  ? 8.0  ?
systemId No No 1.0 Yes  ? 8.0  ?
internalSubset No No 1.0 Yes  ? 8.0  ?
Interface Notation
DOM1 publicId No No 1.0 Yes  ? 9.0  ?
systemId No No 1.0 Yes  ? 9.0  ?
Interface Entity
DOM1 publicId No No 1.0 Yes  ? No  ?
systemId No No 1.0 Yes  ? No  ?
notationName No No 1.0 Yes  ? No  ?
DOM3 inputEncoding No No No No  ? No  ?
xmlEncoding No No No No  ? No  ?
xmlVersion No No No No  ? No  ?
Interface EntityReference
DOM1 (no properties) No No 1.0 Yes  ? No  ?
Interface ProcessingInstruction
DOM1 target No No 1.0 Yes  ? 9.0  ?
data No No 1.0 Yes  ? 9.0  ?

[edit] 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.

Trident Tasman Gecko WebKit KHTML Presto iCab
Interface HTMLCollection
DOM1 length No  ? 1.0  ?  ? 7.0  ?
item()  ? 1.0  ?  ? 7.0  ?
namedItem()  ? 1.0  ?  ? 7.0  ?
Interface HTMLOptionsCollection
DOM2 length  ?  ? 1.0  ?  ? 9.0  ?
item()  ?  ? 1.0  ?  ? 9.0  ?
namedItem()  ?  ? 1.0  ?  ? 9.0  ?
Interface HTMLDocument
DOM1 title 3.0 Yes 1.0  ?  ? 7.0  ?
referrer 3.0 Yes 1.0  ?  ? 7.0  ?
domain 4.0 Yes 1.0  ?  ? 7.0  ?
URL 4.0 Yes 1.0  ?  ? 7.0  ?
body 4.0 Yes 1.0  ?  ? 7.0  ?
images 4.0 Yes 1.0  ?  ? 7.0  ?
applets 4.0 Yes 1.0  ?  ? 7.0  ?
links 3.0 Yes 1.0  ?  ? 7.0  ?
forms 3.0 Yes 1.0  ?  ? 7.0  ?
anchors 3.0 Yes 1.0  ?  ? 7.0  ?
cookie 3.0 Yes 1.0  ?  ? 7.0  ?
open() 3.0 Yes 1.0  ?  ? 7.0  ?
close() 3.0 Yes 1.0  ?  ? 7.0  ?
write() 3.0 Yes 1.0  ?  ? 7.0  ?
writeln() 3.0 Yes 1.0  ?  ? 7.0  ?
getElementsByName() Yes  ? 1.0  ?  ? 7.0  ?
Interface HTMLElement
DOM1 id 4.0 Yes 1.0  ?  ? 7.0  ?
title 4.0 Yes 1.0  ?  ? 7.0  ?
lang 4.0 Yes 1.0  ?  ? 7.0  ?
dir 5.0 Yes 1.0  ?  ? 7.0  ?
className 4.0 Yes 1.0  ?  ? 7.0  ?
Interface HTMLHtmlElement
DOM1 version 6.0  ? 1.0  ?  ? 9.0  ?
Interface HTMLHeadElement
DOM1 profile Incorrect  ? 1.0  ?  ? 8.0  ?
Interface HTMLLinkElement
DOM1 disabled 4.0 Yes 1.0  ?  ? 7.0  ?
charset 4.0 Yes 1.0  ?  ? 7.0  ?
href Incorrect Yes 1.0  ?  ? 7.0  ?
hreflang 4.0 Yes 1.0  ?  ? 7.0  ?
media 4.0 Yes 1.0  ?  ? 7.0  ?
rel 4.0 Yes 1.0  ?  ? 7.0  ?
rev 4.0 Yes 1.0  ?  ? 7.0  ?
target 4.0 Yes 1.0  ?  ? 7.0  ?
type 4.0 Yes 1.0  ?  ? 7.0  ?
Interface HTMLTitleElement
DOM1 text 4.0 Yes 1.0  ?  ? 7.0  ?
Interface HTMLMetaElement
DOM1 content 4.0 Yes 1.0  ?  ? 7.0  ?
httpEquiv 4.0 Yes 1.0  ?  ? 7.0  ?
name 4.0 Yes 1.0  ?  ? 7.0  ?
scheme 6.0  ? 1.0  ?  ? 9.0  ?
Interface HTMLBaseElement
DOM1 href Incorrect Yes 1.0  ?  ? 9.0  ?
target 4.0 Yes 1.0  ?  ? 9.0  ?
Interface HTMLStyleElement
DOM2 disabled  ?  ? 1.0  ?  ? 7.0  ?
media 4.0 Yes 1.0  ?  ? 7.0  ?
type 4.0 Yes 1.0  ?  ? 7.0  ?
Interface HTMLBodyElement
DOM1 aLink 4.0 Yes 1.0  ?  ? 7.0  ?
background Incorrect Yes 1.0  ?  ? 7.0  ?
bgColor 4.0 Yes 1.0  ?  ? 7.0  ?
link 4.0 Yes 1.0  ?  ? 7.0  ?
text 4.0 Yes 1.0  ?  ? 7.0  ?
vLink 4.0 Yes 1.0  ?  ? 7.0  ?
Interface HTMLFormElement
DOM1 elements 3.0 Yes 1.0  ?  ? 7.0  ?
length 3.0 Yes 1.0  ?  ? 7.0  ?
name 3.0 Yes 1.0  ?  ? 7.0  ?
acceptEncoding  ?  ? 1.0  ?  ? 7.0  ?
action Incorrect Yes ≤ 1.9  ?  ? 7.0  ?
enctype 4.0 Yes 1.0  ?  ? 7.0  ?
method 3.0 Yes 1.0  ?  ? 7.0  ?
target 3.0 Yes 1.0  ?  ? 7.0  ?
submit() 3.0 Yes 1.0  ?  ? 7.0  ?
reset() 4.0 Yes 1.0  ?  ? 7.0  ?
Interface HTMLSelectElement
DOM1 type 4.0 Yes 1.0  ?  ? 7.0  ?
selectedIndex 3.0 Yes 1.0  ?  ? 7.0  ?
value 4.0 Yes 1.0  ?  ? 7.0  ?
length 3.0 Yes 1.0  ?  ? 7.0  ?
form  ?  ? 1.0  ?  ? 7.0  ?
options 3.0 Yes 1.0  ?  ? 7.0  ?
disabled 5.0 Yes 1.0  ?  ? 7.0  ?
multiple 5.0 Yes 1.0  ?  ? 7.0  ?
name 3.0 Yes 1.0  ?  ? 7.0  ?
size 4.0 Yes 1.0  ?  ? 7.0  ?
tabIndex  ?  ? 1.0  ?  ? 7.0  ?
add()  ?  ? 1.0  ?  ? 7.0  ?
remove()  ?  ? 1.0  ?  ? 7.0  ?
blur() 3.0 Yes 1.0  ?  ? 7.0  ?
focus() 3.0 Yes 1.0  ?  ? 7.0  ?
Interface HTMLOptGroupElement
DOM1 disabled  ?  ? 1.0  ?  ? 9.0  ?
label No Yes 1.0  ?  ? 9.0  ?
Interface HTMLOptionElement
DOM1 form 4.0 Yes 1.0  ?  ? 7.0  ?
defaultSelected 4.0 Yes 1.0  ?  ? 7.0  ?
text 4.0 Yes 1.0  ?  ? 7.0  ?
index  ?  ? 1.0  ?  ? 7.0  ?
disabled  ?  ? 1.0  ?  ? 7.0  ?
label 6.0 Yes 1.0  ?  ? 9.0  ?
selected 4.0 Yes 1.0  ?  ? 7.0  ?
value 4.0 Yes 1.0  ?  ? 7.0  ?
Interface HTMLInputElement
DOM1 defaultValue 3.0 Yes 1.0  ?  ? 7.0  ?
defaultChecked 3.0 Yes 1.0  ?  ? 7.0  ?
form 3.0 Yes 1.0  ?  ? 7.0  ?
accept  ?  ? 1.0  ?  ? 7.0  ?
accesskey  ?  ? 1.0  ?  ? 7.0  ?
align  ?  ? 1.0  ?  ? 7.0  ?
alt  ?  ? 1.0  ?  ? 7.0  ?
checked 3.0 Yes 1.0  ?  ? 7.0  ?
disabled 5.0 Yes 1.0  ?  ? 7.0  ?
maxLength 4.0 Yes 1.0  ?  ? 9.0  ?
name 3.0 Yes 1.0  ?  ? 7.0  ?
readOnly 4.0 Yes 1.0  ?  ? 7.0  ?
size 4.0 Yes 1.0  ?  ? 7.0  ?
src 4.0 Yes ≤ 1.9  ?  ? 7.0  ?
tabIndex  ?  ? 1.0  ?  ? 7.0  ?
type 4.0 Yes 1.0  ?  ? 7.0  ?
useMap  ?  ? 1.0  ?  ? 7.0  ?
value 3.0 Yes 1.0  ?  ? 7.0  ?
blur() 3.0 Yes 1.0  ?  ? 7.0  ?
focus() 3.0 Yes 1.0  ?  ? 7.0  ?
select() 3.0 Yes 1.0  ?  ? 7.0  ?
click() 3.0 Yes 1.0  ?  ? 7.0  ?
Interface HTMLTextAreaElement
DOM1 defaultValue 3.0 Yes 1.0  ?  ? 7.0  ?
form 3.0 Yes 1.0  ?  ? 7.0  ?
accesskey  ?  ? 1.0  ?  ? 7.0  ?
cols 4.0 Yes 1.0  ?  ? 7.0  ?
disabled 5.0 Yes 1.0  ?  ? 7.0  ?
name 3.0 Yes 1.0  ?  ? 7.0  ?
readOnly 4.0 Yes 1.0  ?  ? 7.0  ?
rows 4.0 Yes 1.0  ?  ? 7.0  ?
tabIndex  ?  ? 1.0  ?  ? 7.0  ?
type 4.0 Yes 1.0  ?  ? 7.0  ?
value 3.0 Yes 1.0  ?  ? 7.0  ?
blur() 3.0 Yes 1.0  ?  ? 7.0  ?
focus() 3.0 Yes 1.0  ?  ? 7.0  ?
select() 3.0 Yes 1.0  ?  ? 7.0  ?
Interface HTMLButtonElement
DOM1 form 3.0 Yes 1.0  ?  ? 7.0  ?
accesskey  ?  ? 1.0  ?  ? 7.0  ?
disabled 5.0 Yes 1.0  ?  ? 7.0  ?
name 3.0 Yes 1.0  ?  ? 7.0  ?
tabIndex  ?  ? 1.0  ?  ? 7.0  ?
type 3.0 Yes 1.0  ?  ? 7.0  ?
value 3.0 Yes 1.0  ?  ? 7.0  ?
Interface HTMLLabelElement
DOM1 form 6.0 Yes 1.0  ?  ? 7.0  ?
accesskey 5.0 Yes 1.0  ?  ? 7.0  ?
htmlFor 4.0 Yes 1.0  ?  ? 7.0  ?
Interface HTMLFieldSetElement
DOM1 form 5.0 Yes 1.0  ?  ? 7.0  ?
Interface HTMLLegendElement
DOM1 form 5.0 Yes 1.0  ?  ? 7.0  ?
accesskey  ?  ? 1.0  ?  ? 7.0  ?
align 5.0 Yes 1.0  ?  ? 7.0  ?
Interface HTMLUListElement
DOM1 compact 4.0 Yes 1.0  ?  ? 7.0  ?
type 4.0 Yes 1.0  ?  ? 7.0  ?
Interface HTMLOListElement
DOM1 compact 4.0 Yes 1.0  ?  ? 7.0  ?
start 4.0 Yes 1.0  ?  ? 7.0  ?
type 4.0 Yes 1.0  ?  ? 7.0  ?
Interface HTMLDListElement
DOM1 compact 4.0 Yes 1.0  ?  ? 7.0  ?
Interface HTMLLIElement
DOM1 type 4.0 Yes 1.0  ?  ? 7.0  ?
value 4.0 Yes 1.0  ?  ? 7.0  ?
Interface HTMLDivElement
DOM1 align  ?  ? 1.0  ?  ? 7.0  ?
Interface HTMLParagraphElement
DOM1 align  ?  ? 1.0  ?  ? 7.0  ?
Interface HTMLHeadingElement
DOM1 align 4.0 Yes 1.0  ?  ? 7.0  ?
Interface HTMLQuoteElement
DOM1 cite Incorrect Yes 1.0  ?  ? 7.0  ?
Interface HTMLPreElement
DOM1 width  ?  ? 1.0  ?  ? 7.0  ?
Interface HTMLBRElement
DOM1 clear 4.0 Yes 1.0  ?  ? 7.0  ?
Interface HTMLHRElement
DOM1 align 4.0 Yes 1.0  ?  ? 7.0  ?
noShade 4.0 Yes 1.0  ?  ? 7.0  ?
size 4.0 Yes 1.0  ?  ? 7.0  ?
width 4.0 Yes 1.0  ?  ? 7.0  ?
Interface HTMLModElement
DOM1 cite Incorrect  ? ≤ 1.9  ?  ? 7.0  ?
dateTime  ?  ? 1.0  ?  ? 7.0  ?
Interface HTMLAnchorElement
DOM1 accesskey  ?  ? 1.0  ?  ? 7.0  ?
charset 6.0 Yes 1.0  ?  ? 7.0  ?
coords 6.0 Yes 1.0  ?  ? 7.0  ?
href 3.0 Yes 1.0  ?  ? 7.0  ?
hreflang 6.0 Yes 1.0  ?  ? 7.0  ?
name 4.0 Yes 1.0  ?  ? 7.0  ?
rel 4.0 Yes 1.0  ?  ? 7.0  ?
rev 4.0 Yes 1.0  ?  ? 7.0  ?
shape 6.0 Yes 1.0  ?  ? 7.0  ?
tabIndex  ?  ? 1.0  ?  ? 7.0  ?
target 3.0 Yes 1.0  ?  ? 7.0  ?
type 6.0 Yes 1.0  ?  ? 7.0  ?
blur()  ?  ? 1.0  ?  ? 7.0  ?
focus()  ?  ? 1.0  ?  ? 7.0  ?
Interface HTMLImageElement
DOM1 name 4.0 Yes 1.0  ?  ? 7.0  ?
align 4.0 Yes 1.0  ?  ? 7.0  ?
alt 4.0 Yes 1.0  ?  ? 7.0  ?
border 4.0 Yes 1.0  ?  ? 7.0  ?
height 4.0 Yes 1.0  ?  ? 7.0  ?
hspace 4.0 Yes 1.0  ?  ? 7.0  ?
isMap 4.0 Yes 1.0  ?  ? 7.0  ?
longDesc Incorrect  ? 1.0  ?  ? 9.0  ?
src 4.0 Yes 1.0  ?  ? 7.0  ?
useMap 4.0 Yes 1.0  ?  ? 7.0  ?
vspace 4.0 Yes 1.0  ?  ? 7.0  ?
width 4.0 Yes 1.0  ?  ? 7.0  ?
Interface HTMLObjectElement
DOM1 form  ?  ? 1.0  ?  ? 7.0  ?
code 4.0 Yes 1.0  ?  ? 7.0  ?
align 4.0 Yes 1.0  ?  ? 7.0  ?
archive  ?  ? 1.0  ?  ? 7.0  ?
border  ?  ? 1.0  ?  ? 7.0  ?
codeBase Incorrect Yes 1.0  ?  ? 7.0  ?
codeType 4.0 Yes 1.0  ?  ? 7.0  ?
data Incorrect Yes 1.0  ?  ? 7.0  ?
declare  ?  ? 1.0  ?  ? 9.0  ?
height 4.0 Yes 1.0  ?  ? 7.0  ?
hspace 4.0 Yes 1.0  ?  ? 7.0  ?
name 4.0 Yes 1.0  ?  ? 7.0  ?
standby  ?  ? 1.0  ?  ? 7.0  ?
tabIndex  ?  ? 1.0  ?  ? 7.0  ?
type 4.0 Yes 1.0  ?  ? 7.0  ?
useMap  ?  ? 1.0  ?  ? 7.0  ?
vspace 4.0 Yes 1.0  ?  ? 7.0  ?
width 4.0 Yes 1.0  ?  ? 7.0  ?
DOM2 contentDocument No Yes 1.0  ?  ? 9.0  ?
Interface HTMLParamElement
DOM1 name  ?  ? 1.0  ?  ? 7.0  ?
type  ?  ? 1.0  ?  ? 7.0  ?
value  ?  ? 1.0  ?  ? 7.0  ?
valueType No  ? 1.0  ?  ? 7.0  ?
Interface HTMLMapElement
DOM1 areas 4.0 Yes 1.0  ?  ? 7.0  ?
name 4.0 Yes 1.0  ?  ? 7.0  ?
Interface HTMLAreaElement
DOM1 accesskey  ?  ? 1.0  ?  ? 7.0  ?
alt 4.0 Yes 1.0  ?  ? 7.0  ?
coords 4.0 Yes 1.0  ?  ? 7.0  ?
hrefs  ?  ? 1.0  ?  ? 7.0  ?
noHrefs  ?  ? 1.0  ?  ? 7.0  ?
shape 4.0 Yes 1.0  ?  ? 7.0  ?
tabIndex  ?  ? 1.0  ?  ? 7.0  ?
target 4.0 Yes 1.0  ?  ? 7.0  ?
Interface HTMLScriptElement
DOM1 text 4.0 0 1.0  ?  ? 7.0  ?
htmlFor (reserved for future use) 4.0 Yes 1.0  ?  ? No  ?
event (reserved for future use) 4.0 Yes 1.0  ?  ? 9.0  ?
charset  ?  ? 1.0  ?  ? 7.0  ?
defer 4.0 Yes 1.0  ?  ? 7.0  ?
src Incorrect Yes 1.0  ?  ? 7.0  ?
type 4.0 Yes 1.0  ?  ? 7.0  ?
target  ?  ? 1.0  ?  ? 7.0  ?
Interface HTMLTableElement
DOM1 caption 4.0 Yes 1.0  ?  ? 7.0  ?
tHead 4.0 Yes 1.0  ?  ? 7.0  ?
tFoot 4.0 Yes 1.0  ?  ? 7.0  ?
rows 4.0 Yes 1.0  ?  ? 7.0  ?
tBodies 4.0 Yes 1.0  ?  ? 7.0  ?
align 4.0 Yes 1.0  ?  ? 7.0  ?
bgColor 4.0 Yes 1.0  ?  ? 7.0  ?
border 4.0 Yes 1.0  ?  ? 7.0  ?
cellPadding 4.0 Yes 1.0 No  ? 7.0  ?
cellSpacing 4.0 Yes 1.0  ?  ? 7.0  ?
frame 4.0 Yes 1.0  ?  ? 7.0  ?
rules 4.0 No 1.0  ?  ? 7.0  ?
summary 6.0 No 1.0  ?  ? 7.0  ?
width 4.0 Yes 1.0  ?  ? 7.0  ?
createTHead() 4.0 Yes 1.0  ?  ? 7.0  ?
deleteTHead() 4.0 Yes 1.0  ?  ? 7.0  ?
createTFoot() 4.0 Yes 1.0  ?  ? 7.0  ?
deleteTFoot() 4.0 Yes 1.0  ?  ? 7.0  ?
createCaption() 4.0 Yes 1.0  ?  ? 7.0  ?
deleteCaption() 4.0 Yes 1.0  ?  ? 7.0  ?
insertRow() 4.0 Yes 1.0  ?  ? 7.0  ?
deleteRow() 4.0 Yes 1.0  ?  ? 7.0  ?
Interface HTMLTableCaptionElement
DOM1 align 5.0 Yes 1.0  ?  ? 7.0  ?
Interface HTMLTableColElement
DOM1 align 4.0 Yes 1.0  ?  ? 7.0  ?
ch 6.0 No 1.0  ?  ? 9.0  ?
chOff 6.0 No 1.0  ?  ? 9.0  ?
span 5.0 Yes 1.0  ?  ? 7.0  ?
vAlign 4.0 Yes 1.0  ?  ? 7.0  ?
width 5.0 0 1.0  ?  ? 7.0  ?
Interface HTMLTableSectionElement
DOM1 align 4.0 Yes 1.0  ?  ? 7.0  ?
ch 6.0 No 1.0  ?  ? 9.0  ?
chOff 6.0 No 1.0  ?  ? 9.0  ?
vAlign 4.0 Yes 1.0  ?  ? 7.0  ?
rows 4.0 Yes 1.0  ?  ? 7.0  ?
insertRow() 4.0 Yes 1.0  ?  ? 7.0  ?
deleteRow() 4.0 Yes 1.0  ?  ? 7.0  ?
Interface HTMLTableRowElement
DOM1 rowIndex 4.0 Yes 1.0  ?  ? 7.0  ?
sectionRowIndex 4.0 Yes 1.0  ?  ? 7.0  ?
cells 4.0 Yes 1.0  ?  ? 7.0  ?
align 4.0 Yes 1.0  ?  ? 7.0  ?
bgColor 4.0 Yes 1.0  ?  ? 7.0  ?
ch 6.0 No 1.0  ?  ? 9.0  ?
chOff 6.0 No 1.0  ?  ? 9.0  ?
vAlign 4.0 Yes 1.0  ?  ? 7.0  ?
insertCell() 4.0 Yes 1.0  ?  ? 7.0  ?
deleteCell() 4.0 Yes 1.0  ?  ? 7.0  ?
Interface HTMLTableCellElement
DOM1 cellIndex 4.0 Yes 1.0 Incorrect  ? 7.0  ?
abbr 6.0 Yes 1.0  ?  ? 9.0  ?
align 4.0 Yes 1.0  ?  ? 7.0  ?
axis 6.0 Yes 1.0  ?  ? 7.0  ?
bgColor 4.0 Yes 1.0  ?  ? 7.0  ?
ch 6.0 No 1.0  ?  ? 9.0  ?
chOff 6.0 No 1.0  ?  ? 9.0  ?
colSpan 4.0 Yes 1.0  ?  ? 7.0  ?
headers 6.0 Yes 1.0  ?  ? 7.0  ?
height 4.0 Yes 1.0  ?  ? 7.0  ?
noWrap 4.0 Yes 1.0  ?  ? 7.0  ?
rowSpan 4.0 Yes 1.0  ?  ? 7.0  ?
scope  ?  ? 1.0  ?  ? 7.0  ?
vAlign 4.0 Yes 1.0  ?  ? 7.0  ?
width 4.0 Yes 1.0  ?  ? 7.0  ?
Interface HTMLFrameSetElement
DOM1 cols 4.0 Yes 1.0  ?  ? 7.0  ?
rows 4.0 Yes 1.0  ?  ? 7.0  ?
Interface HTMLFrameElement
DOM1 frameBorder 4.0 Yes 1.0  ?  ? 7.0  ?
longDesc Incorrect Yes 1.0  ?  ? 7.0  ?
marginHeight 6.0 Yes 1.0  ?  ? 7.0  ?
marginWidth 6.0 Yes 1.0  ?  ? 7.0  ?
name 4.0 Yes 1.0  ?  ? 7.0  ?
noResize 4.0 Yes 1.0  ?  ? 7.0  ?
scrolling 4.0 Yes 1.0  ?  ? 7.0  ?
src Incorrect Yes 1.0  ?  ? 7.0  ?
DOM2 contentDocument No Yes 1.0  ?  ? 7.0  ?
Interface HTMLIFrameSetElement
DOM1 align 4.0 Yes 1.0  ?  ? 7.0  ?
frameBorder  ?  ? 1.0  ?  ? 7.0  ?
height 4.0 Yes 1.0  ?  ? 7.0  ?
longDesc Incorrect Yes 1.0  ?  ? 7.0  ?
marginHeight 4.0 Yes 1.0  ?  ? 7.0  ?
marginWidth 4.0 Yes 1.0  ?  ? 7.0  ?
name 4.0 Yes 1.0  ?  ? 7.0  ?
scrolling 4.0 Yes 1.0  ?  ? 7.0  ?
src Incorrect Yes 1.0  ?  ? 7.0  ?
width 4.0 Yes 1.0  ?  ? 7.0  ?
DOM2 contentDocument No Yes 1.0  ?  ? 7.0  ?

[edit] Trident HTML notes

  1. profile, href, background, action, cite, longDesc, codebase, data, src — Relative URL was not resolved to full URL.

[edit] WebKit HTML notes

  1. cellIndex — Always return zero [10].

[edit] Presto HTML notes

  1. text — Opera 8 and lower returned data at src, when it should return inline data instead.

[edit] 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.

Trident Tasman Gecko WebKit KHTML Presto iCab
Interface StyleSheet
DOM2 type ≤ 6.0  ? 1.0 Yes  ? 9.0  ?
disabled ≤ 6.0  ? 1.0  ? 9.0  ?
ownerNode No  ? 1.0  ? 9.0  ?
parentStyleSheet ≤ 6.0  ? 1.0  ? 9.0  ?
href Incorrect  ? 1.0  ? 9.0  ?
title ≥ 6.0  ? 1.0  ? 9.0  ?
media Incorrect  ? 1.0  ? 9.0  ?
Interface StyleSheetList
DOM2 length ≤ 6.0  ? 1.0 Yes  ? 9.0  ?
item() ≤ 6.0  ? 1.0  ? 9.0  ?
Interface MediaList
DOM2 mediaText No  ? 1.0 Yes  ? 9.0  ?
length No  ? 1.0  ? 9.0  ?
item() No  ? 1.0  ? 9.0  ?
deleteMedium() No  ? 1.0  ? 9.0  ?
appendMedium() No  ? 1.0  ? 9.0  ?
Interface LinkStyle
DOM2 sheet No  ? 1.0 No  ? 9.0  ?
Interface DocumentStyle
DOM2 styleSheets No  ? 1.0 No  ? 9.0  ?

[edit] Trident Style (Style Sheets) notes

  1. href — Relative URL is not resolved to full URL.
  2. media — Returns string instead of MediaList.

[edit] 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.

Trident Tasman Gecko WebKit KHTML Presto iCab
Interface CSSStyleSheet
DOM2 ownerRule No  ? 1.0  ?  ? 9.0  ?
cssRules No Yes 1.0 ≤ 1.3  ? 9.0  ?
insertRule() No No 1.0 No  ? 9.0  ?
deleteRule() No No 1.0 No  ? 9.0  ?
Interface StyleSheetList
DOM2 length ≤ 6.0  ? 1.0  ?  ? 9.0  ?
item() ≤ 6.0  ? 1.0  ?  ? 9.0  ?
Interface CSSRuleList
DOM2 length No  ? 1.0  ?  ? 9.0  ?
item() No  ? 1.0  ?  ? 9.0  ?
Interface CSSRule
DOM2 type No  ? 1.0  ?  ? 9.0  ?
cssText No Yes 1.0  ?  ? 9.0  ?
parentStyleSheet No Yes 1.0 ≤ 1.3  ? 9.0  ?
parentRule No  ? 1.0  ?  ? 9.0  ?
Interface CSSStyleRule
DOM2 selectorText ≤ 6.0 Yes 1.0 ≤ 1.3  ? 9.0  ?
style No  ? 1.0  ?  ? 9.0  ?
Interface CSSMediaRule
DOM2 media No  ? 1.0  ?  ? 9.0  ?
cssRules No  ? 1.0  ?  ? 9.0  ?
insertRule() No  ? 1.0  ?  ? 9.0  ?
deleteRule() No  ? 1.0  ?  ? 9.0  ?
Interface CSSFontFaceRule
DOM2 style No  ? No [11]  ?  ? 9.0  ?
Interface CSSPageRule
DOM2 selectorText No  ? No [12]  ?  ? 9.0  ?
style No  ? No  ?  ? 9.0  ?
Interface CSSImportRule
DOM2 href No Yes 1.0 ≤ 1.3  ? 9.0  ?
media No  ? 1.0  ?  ? 9.0  ?
styleSheet No  ? 1.0  ?  ? 9.0  ?
Interface CSSCharsetRule
DOM2 encoding No  ? 1.0  ?  ? 9.0  ?
Interface CSSUnknownRule
DOM2 (no properties) No  ? No [13]  ?  ? 9.0  ?
Interface CSSStyleDeclaration
DOM2 cssText No  ? 1.0  ?  ? 9.0  ?
length No  ? 1.0  ?  ? 9.0  ?
parentRule No  ? 1.0  ?  ? 9.0  ?
getPropertyValue() No Yes 1.0 ≤ 1.3  ? 8.0  ?
getPropertyCSSValue() No  ? No [14]  ?  ? 9.0  ?
removeProperty() No No 1.0 ≤ 1.3  ? 8.0  ?
getPropertyPriority() No Incorrect 1.0  ?  ? 9.0  ?
setProperty() No Yes 1.0 ≤ 1.3  ? 8.0  ?
item() No  ? 1.0  ?  ? 9.0  ?
Interface CSSValue
DOM2 cssText No  ? No [15]  ?  ? No  ?
cssValueType No  ? No  ?  ? No  ?
Interface CSSPrimitiveValue
DOM2 primitiveType No  ? No [16]  ?  ? No  ?
setFloatValue() No  ? No  ?  ? No  ?
getFloatValue() No  ? No  ?  ? No  ?
setStringValue() No  ? No  ?  ? No  ?
getStringValue() No  ? No  ?  ? No  ?
getCounterValue() No  ? No  ?  ? No  ?
getRectValue() No  ? No  ?  ? No  ?
getRGBColorValue() No  ? No  ?  ? No  ?
Interface CSSValueList
DOM2 length No  ? No  ?  ? No  ?
item() No  ? No  ?  ? No  ?
Interface RGBColor
DOM2 red No  ? No  ?  ? No  ?
green No  ? No  ?  ? No  ?
blue No  ? No  ?  ? No  ?
Interface Rect
DOM2 top No  ? No  ?  ? No  ?
right No  ? No  ?  ? No  ?
bottom No  ? No  ?  ? No  ?
left No  ? No  ?  ? No  ?
Interface Counter
DOM2 identifier No  ? No  ?  ? No  ?
listStyle No  ? No  ?  ? No  ?
separator No  ? No  ?  ? No  ?
Interface ViewCSS
DOM2 getComputedStyle() No No 1.0 No  ? 8.0  ?
Interface DocumentCSS
DOM2 getOverrideStyle() No  ? No [17]  ?  ? No  ?
Interface DOMImplementationCSS
DOM2 createCSSStyleSheet() No  ? No [18]  ?  ? No  ?
Interface ElementCSSInlineStyle
DOM2 style ≤ 6.0 Yes 1.0 ≤ 1.3 Yes 7.0  ?

[edit] Tasman Style (CSS Fundamental) notes

  1. getPropertyPriority() — Returns !important instead of important.

[edit] Style (CSS Extended)

The interfaces found within this section are not mandatory.

Trident Tasman Gecko WebKit KHTML Presto iCab
Interface CSS2Properties
DOM2 Support this interface 4.0 Yes 1.0  ?  ? 7.0  ?
Properties Please refer to comparison of layout engines (CSS) for the comparison of CSS properties.

[edit] Events

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.

Trident Tasman Gecko WebKit KHTML Presto iCab
Interface EventTarget
DOM2 addEventListener() No No 1.0 Yes  ? 7.0  ?
removeEventListener() No No 1.0  ?  ? 7.0  ?
dispatchEvent() No No 1.0  ?  ? 7.0  ?
Interface EventListener
DOM2 handleEvent()  ?  ?  ?  ?  ? 7.0  ?
Interface Event
DOM2 type 4.0 Yes 1.0  ?  ? 7.0  ?
target No Yes 1.3 Incorrect  ? 7.0  ?
currentTarget No No 1.0  ?  ? 7.0  ?
eventPhase No No 1.0  ?  ? 7.0  ?
bubbles No No 1.0  ?  ? 7.0  ?
cancelable No No 1.0  ?  ? 7.0  ?
timeStamp No No Incorrect  ?  ? 7.0  ?
stopPropagation() No No 1.0  ?  ? 7.0  ?
preventDefault() No No 1.0  ?  ? 7.0  ?
initEvent() No No 1.0  ?  ? 7.0  ?
Exception EventException
DOM2 code No No 1.0  ?  ? 7.0  ?
Interface DocumentEvent
DOM2 createEvent() No No 1.0  ?  ? 7.0  ?
Interface UIEvent
DOM2 view No No No [19]  ?  ? 7.0  ?
detail No No No  ?  ? 7.0  ?
initUIEvent() No No No  ?  ? 7.0  ?
Events for interface UIEvent
DOM2 DOMFocusIn No No No  ?  ? 8.0  ?
DOMFocusOut No No No  ?  ? 8.0  ?
DOMActivate No No No  ?  ? 8.0  ?
Interface MouseEvent
DOM2 screenX 4.0 Yes 1.0 Yes  ? 7.0  ?
screenY 4.0 Yes 1.0 Yes  ? 7.0  ?
clientX 4.0 Yes 1.0 Incorrect  ? 7.0  ?
clientY 4.0 Yes 1.0 Incorrect  ? 7.0  ?
ctrlKey 4.0 Yes 1.0 Yes  ? 7.0  ?
shiftKey 4.0 Yes 1.0 Yes  ? 7.0  ?
altKey 4.0 Yes 1.0 Yes  ? 7.0  ?
metaKey No No 1.0 Yes  ? 7.0  ?
button Incorrect Incorrect 1.0 Incorrect  ? 8.0  ?
relatedTarget No No 1.0 Yes  ? 7.0  ?
initMouseEvent()  ?  ? 1.0  ?  ? 7.0  ?
Events for interface MouseEvent
DOM2 click 4.0 Yes 1.0  ?  ? 7.0  ?
mousedown 4.0 Yes 1.0  ?  ? 7.0  ?
mouseup 4.0 Yes 1.0  ?  ? 7.0  ?
mouseover 4.0 Yes 1.0  ?  ? 7.0  ?
mousemove 4.0 Yes 1.0  ?  ? 7.0  ?
mouseout 4.0 Yes 1.0  ?  ? 7.0  ?
Interface MutationEvent
DOM2 relatedNode No No 1.0  ?  ? 8.0  ?
prevValue No No 1.0  ?  ? 8.0  ?
newValue No No 1.0  ?  ? 8.0  ?
attrName No No 1.0  ?  ? 8.0  ?
attrChange No No 1.0  ?  ? 8.0  ?
initMutationEvent No No 1.0  ?  ? 8.0  ?
Events for interface MutationEvent
DOM2 DOMSubtreeModified No No No [20]  ?  ? 7.6  ?
DOMNodeInserted No No 1.0  ?  ? 7.6  ?
DOMNodeRemoved No No 1.0  ?  ? 7.6  ?
DOMNodeRemovedFromDocument No No No [21]  ?  ? 7.6  ?
DOMNodeInsertedIntoDocument No No No [22]  ?  ? 7.6  ?
DOMAttrModified No No 1.0  ?  ? 7.6  ?
DOMCharacterDataModified No No 1.0  ?  ? 7.6  ?
Events for HTML
DOM2 load 4.0 Yes 1.0  ?  ? 9.0  ?
unload 4.0 Yes 1.0  ?  ? 9.0  ?
abort 4.0 Yes 1.0  ?  ? No  ?
error 4.0 Yes 1.0  ?  ? 9.0  ?
select 4.0 Yes 1.0  ?  ? 9.0  ?
change 4.0 Yes 1.0  ?  ? 9.0  ?
submit 4.0 Yes 1.0  ?  ? 9.0  ?
reset 4.0 Yes 1.0  ?  ? 9.0  ?
focus 4.0 Yes 1.0  ?  ? 9.0  ?
blur 4.0 Yes 1.0  ?  ? 9.0  ?
resize 4.0 Yes 1.0  ?  ? 9.0  ?
scroll 4.0 Yes 1.0  ?  ? 9.0  ?

[edit] Trident Events notes

  1. button — Does not use W3C values.

[edit] Tasman Events notes

  1. button — Does not use W3C values.

[edit] Gecko Events notes

  1. target — Return text node, if any, of the target element node prior to 1.3.
  2. timeStamp — Returns a string, but should return a Date [23].

[edit] WebKit Events notes

  1. target — Return text node, if any, of the target element node (fixed in v73, but reverted in v85).
  2. clientX, clientY — Treated as pageX and pageY.
  3. button — Does not use W3C values.

[edit] Presto Events notes

  1. button — Does not use W3C values prior to 8.0.

[edit] 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.

Trident Tasman Gecko WebKit KHTML Presto iCab
Interface AbstractView
DOM2 document ≤ 6.0  ? 1.0  ?  ? 8.0  ?
Interface DocumentView
DOM2 defaultView No  ? 1.0  ?  ? 8.0  ?

[edit] Trident notes

  1. defaultView — Trident does not support the defaultView property for documents, but it supports another property with the same meaning which is parentWindow.

[edit] Traversal

The interfaces found within this section are not mandatory. Its interfaces provide easy-to-use, robust, selective traversal of a document's contents.

Trident Tasman Gecko WebKit KHTML Presto iCab
Interface NodeIterator
DOM2 root No  ? No  ?  ? 8.0  ?
whatToShow No  ? No  ?  ? 8.0  ?
filter No  ? No  ?  ? 8.0  ?
expandEntityReferences No  ? No  ?  ? 8.0  ?
nextNode() No  ? No  ?  ? 9.0  ?
previousNode() No  ? No  ?  ? 9.0  ?
detach() No  ? No  ?  ? 8.0  ?
Interface NodeFilter
DOM2 acceptNode() No  ? No  ?  ? 8.0  ?
Interface TreeWalker
DOM2 root No  ? 1.0  ?  ? 8.0  ?
whatToShow No  ? 1.0  ?  ? 8.0  ?
filter No  ? 1.0  ?  ? 8.0  ?
expandEntityReferences No  ? 1.0  ?  ? 8.0  ?
currentNode No  ? 1.0  ?  ? 8.0  ?
parentNode() No  ? 1.0  ?  ? 8.0  ?
firstChild() No  ? 1.0  ?  ? 8.0  ?
lastChild() No  ? 1.0  ?  ? 8.0  ?
previousSibling() No  ? 1.0  ?  ? 8.0  ?
nextSibling() No  ? 1.0  ?  ? 8.0  ?
previousNode() No  ? 1.0  ?  ? 8.0  ?
nextNode() No  ? 1.0  ?  ? 8.0  ?
Interface DocumentTraversal
DOM2 createNodeIterator() No  ? No  ?  ? 8.0  ?
createTreeWalker() No  ? No  ?  ? 8.0  ?

[edit] Range

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.

Trident Tasman Gecko WebKit KHTML Presto iCab
Interface Range
DOM2 startContainer No  ? 1.0 Yes  ? 8.0  ?
startOffset  ?  ?  ?
endContainer  ?  ?  ?
endOffset  ?  ?  ?
collapsed  ?  ?  ?
commonAncestorContainer  ?  ?  ?
setStart()  ?  ?  ?
setEnd()  ?  ?  ?
setStartBefore()  ?  ?  ?
setStartAfter()  ?  ?  ?
setEndBefore()  ?  ?  ?
setEndAfter()  ?  ?  ?
collapse()  ?  ?  ?
selectNode()  ?  ?  ?
selectNodeContents()  ?  ?  ?
compareBoundaryPoints()  ?  ?  ?
deleteContents()  ?  ?  ?
extractContents()  ?  ?  ?
cloneContents()  ?  ?  ?
insertNode()  ?  ?  ?
surroundContents()  ?  ?  ?
cloneRange()  ?  ?  ?
toString()  ?  ?  ?
detach()  ?  ?  ?
Interface DocumentRange
DOM2 createRange() No  ? 1.0 No  ? 8.0  ?
Exception RangeException
DOM2 code No  ? 1.0 Yes  ? 8.0  ?

[edit] Load and Save

The interfaces within this section are considered fundamental, and must be fully implemented by all conforming implementations of the DOM Load and Save module.

Trident Tasman Gecko WebKit KHTML Presto iCab
Exception LSException
DOM3 code No No No [24] No No 8.0 No
Interface DOMImplementationLS
DOM3 createLSParser() No No No No No 8.0 No
createLSSerializer() No No No No No 8.0 No
createLSInput() No No No No No 8.0 No
createLSOutput() No No No No No 8.0 No
Interface LSParser
DOM3 domConfig No No No No No 8.0 No
filter No No No No No 8.0 No
async No No No No No 8.0 No
busy No No No No No 8.0 No
parse() No No No No No 8.0 No
parseURI() No No No No No 8.0 No
parseWithContext() No No No No No 8.0 No
abort() No No No No No 8.0 No
Interface LSInput
DOM3 characterStream No No No No No 8.0 No
byteStream No No No No No 8.0 No
stringData No No No No No 8.0 No
systemId No No No No No 8.0 No
publicId No No No No No 8.0 No
baseURI No No No No No 8.0 No
encoding No No No No No 8.0 No
certifiedText No No No No No 8.0 No
Interface LSResourceResolver
DOM3 resolveResource() No No No No No No No
Interface LSParserFilter
DOM3 whatToShow No No No No No No No
startElement() No No No No No 9.0 No
acceptNode() No No No No No 9.0 No
Interface LSProgressEvent
DOM3 input No No No No No No No
position No No No No No No No
totalSize No No No No No No No
Interface LSLoadEvent
DOM3 newDocument No No No No No 9.0 No
input No No No No No No No
Interface LSSerializer
DOM3 domConfig No No No No No 8.0 No
newLine No No No No No 8.0 No
filter No No No No No 8.0 No
write() No No No No No 8.0 No
writeToURI() No No No No No 8.0 No
writeToString() No No No No No 8.0 No
Interface LSOutput
DOM3 characterStream No No No No No 8.0 No
byteStream No No No No No 8.0 No
systemId No No No No No 8.0 No
encoding No No No No No 8.0 No
Interface LSSerializerFilter
DOM3 whatToShow No No No No No No No

[edit] Validation

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."

Trident Tasman Gecko WebKit KHTML Presto iCab
Exception ExceptionVAL
DOM3 code No No No No No No No
Interface DocumentEditVAL
DOM3 continuousValidityChecking No No No No No No No
domConfig No No No No No No No
getDefinedElements() No No No No No No No
validateDocument() No No No No No No No
Interface NodeEditVAL
DOM3 defaultValue No No No No No No No
enumeratedValues No No No No No No No
canInsertBefore() No No No No No No No
canRemoveChild() No No No No No No No
canReplaceChild() No No No No No No No
canAppendChild() No No No No No No No
nodeValidity() No No No No No No No
Interface ElementEditVAL
DOM3 allowedChildren No No No No No No No
allowedFirstChildren No No No No No No No
allowedParents No No No No No No No
allowedNextSiblings No No No No No No No
allowedPreviousSiblings No No No No No No No
allowedAttributes No No No No No No No
requiredAttributes No No No No No No No
contentType No No No No No No No
canSetTextContent No No No No No No No
canSetAttribute No No No No No No No
canSetAttributeNode No No No No No No No
canSetAttributeNS No No No No No No No
canRemoveAttribute No No No No No No No
canRemoveAttributeNS No No No No No No No
canRemoveAttributeNode No No No No No No No
isElementDefined No No No No No No No
isElementDefinedNS No No No No No No No
Interface CharacterDataEditVAL
DOM3 isWhitespaceOnly() No No No No No No No
canSetData() No No No No No No No
canAppendData() No No No No No No No
canReplaceData() No No No No No No No
canInsertData() No No No No No No No
canDeleteData() No No No No No No No

[edit] References

[edit] External links