summaryrefslogtreecommitdiffstats
path: root/dom/tests/mochitest/dom-level2-html/files
diff options
context:
space:
mode:
Diffstat (limited to 'dom/tests/mochitest/dom-level2-html/files')
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/anchor.html12
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/anchor.xhtml14
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/anchor.xml14
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/anchor2.html13
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/anchor2.xhtml14
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/anchor2.xml14
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/applet.html12
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/applet.xhtml15
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/applet.xml15
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/applet2.class14
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/applet2.html12
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/applet2.xhtml15
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/applet2.xml15
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/applets/org/w3c/domts/DOMTSApplet.classbin0 -> 1584 bytes
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/area.html14
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/area.xhtml17
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/area.xml17
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/area2.html15
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/area2.xhtml16
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/area2.xml16
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/base.html11
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/base.xhtml13
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/base.xml13
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/base2.html15
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/base2.xhtml16
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/base2.xml16
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/body.html10
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/body.xhtml13
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/body.xml13
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/br.html12
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/br.xhtml14
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/br.xml14
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/button.html21
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/button.xhtml24
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/button.xml24
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/collection.html79
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/collection.xhtml82
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/collection.xml82
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/directory.html14
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/directory.xhtml16
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/directory.xml16
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/div.html10
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/div.xhtml12
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/div.xml12
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/dl.html15
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/dl.xhtml17
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/dl.xml17
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/document-with-applet.html36
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/document.html34
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/document.xhtml39
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/document.xml39
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/element.html81
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/element.xhtml83
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/element.xml83
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/fieldset.html23
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/fieldset.xhtml25
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/fieldset.xml25
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/font.html10
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/font.xhtml12
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/font.xml12
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/form.html17
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/form.xhtml18
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/form.xml18
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/form2.html17
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/form2.xhtml18
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/form2.xml18
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/form3.html17
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/form3.xhtml18
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/form3.xml18
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/frame.html14
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/frame.xhtml15
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/frame.xml15
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/frame2.html16
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/frame2.xhtml17
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/frame2.xml16
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/frameset.html14
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/frameset.xhtml15
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/frameset.xml15
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/heading.html16
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/heading.xhtml18
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/heading.xml18
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/hr.html11
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/hr.xhtml13
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/hr.xml13
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/html.html12
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/html.xhtml14
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/html.xml14
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/iframe.html10
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/iframe.xhtml12
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/iframe.xml12
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/iframe2.html13
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/iframe2.xhtml15
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/iframe2.xml15
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/img.html13
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/img.xhtml15
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/img.xml15
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/index.html216
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/input.html60
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/input.xhtml62
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/input.xml62
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/isindex.html14
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/isindex.xhtml15
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/isindex.xml15
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/label.html21
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/label.xhtml22
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/label.xml22
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/legend.html22
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/legend.xhtml23
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/legend.xml23
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/li.html23
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/li.xhtml25
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/li.xml25
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/link.html15
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/link.xhtml17
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/link.xml17
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/link2.html15
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/link2.xhtml17
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/link2.xml17
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/map.html16
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/map.xhtml18
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/map.xml18
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/menu.html15
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/menu.xhtml17
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/menu.xml17
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/meta.html13
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/meta.xhtml16
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/meta.xml16
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/mod.html15
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/mod.xhtml17
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/mod.xml17
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/object.html18
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/object.xhtml20
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/object.xml20
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/object2.html17
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/object2.xhtml20
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/object2.xml20
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/olist.html32
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/olist.xhtml34
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/olist.xml34
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/optgroup.html25
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/optgroup.xhtml27
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/optgroup.xml27
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/option.html36
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/option.xhtml33
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/option.xml33
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/optionscollection.html36
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/optionscollection.xhtml33
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/optionscollection.xml33
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/paragraph.html13
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/paragraph.xhtml15
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/paragraph.xml15
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/param.html14
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/param.xhtml17
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/param.xml17
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/pre.html17
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/pre.xhtml19
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/pre.xml19
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/quote.html16
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/quote.xhtml18
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/quote.xml18
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/right.pngbin0 -> 137 bytes
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/script.html11
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/script.xhtml13
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/script.xml13
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/select.html44
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/select.xhtml41
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/select.xml41
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/style.html12
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/style.xhtml14
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/style.xml14
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/table.html78
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/table.xhtml81
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/table.xml81
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/table1.html12
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/table1.xhtml15
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/table1.xml15
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/tablecaption.html25
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/tablecaption.xhtml21
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/tablecaption.xml21
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/tablecell.html23
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/tablecell.xhtml26
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/tablecell.xml26
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/tablecol.html35
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/tablecol.xhtml29
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/tablecol.xml29
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/tablerow.html59
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/tablerow.xhtml62
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/tablerow.xml62
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/tablesection.html62
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/tablesection.xhtml65
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/tablesection.xml65
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/textarea.html26
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/textarea.xhtml27
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/textarea.xml27
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/title.html13
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/title.xhtml15
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/title.xml15
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/ulist.html36
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/ulist.xhtml38
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/ulist.xml38
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/w3c_main.pngbin0 -> 5904 bytes
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/xhtml-lat1.ent196
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/xhtml-special.ent80
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/xhtml-symbol.ent237
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/xhtml1-frameset.dtd1235
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/xhtml1-strict.dtd978
-rw-r--r--dom/tests/mochitest/dom-level2-html/files/xhtml1-transitional.dtd1201
207 files changed, 8818 insertions, 0 deletions
diff --git a/dom/tests/mochitest/dom-level2-html/files/anchor.html b/dom/tests/mochitest/dom-level2-html/files/anchor.html
new file mode 100644
index 000000000..952e8d928
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/anchor.html
@@ -0,0 +1,12 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - Anchor</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<P>
+<A ID="Anchor" DIR="LTR" HREF="./pix/submit.gif" ACCESSKEY="g" TYPE="image/gif" COORDS="0,0,100,100" SHAPE="rect" REL="GLOSSARY" REV="STYLESHEET" HREFLANG="en" CHARSET="US-ASCII" TABINDEX="22" NAME="Anchor">View Submit Button</A>
+</P>
+</BODY>
+</HTML>
diff --git a/dom/tests/mochitest/dom-level2-html/files/anchor.xhtml b/dom/tests/mochitest/dom-level2-html/files/anchor.xhtml
new file mode 100644
index 000000000..1be575533
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/anchor.xhtml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - Anchor</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>
+<a id="Anchor" dir="ltr" href="./pix/submit.gif" accesskey="g" type="image/gif" coords="0,0,100,100" shape="rect" rel="GLOSSARY" rev="STYLESHEET" hreflang="en" charset="US-ASCII" tabindex="22" name="Anchor">View Submit Button</a>
+</p>
+</body>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/anchor.xml b/dom/tests/mochitest/dom-level2-html/files/anchor.xml
new file mode 100644
index 000000000..1be575533
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/anchor.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - Anchor</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>
+<a id="Anchor" dir="ltr" href="./pix/submit.gif" accesskey="g" type="image/gif" coords="0,0,100,100" shape="rect" rel="GLOSSARY" rev="STYLESHEET" hreflang="en" charset="US-ASCII" tabindex="22" name="Anchor">View Submit Button</a>
+</p>
+</body>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/anchor2.html b/dom/tests/mochitest/dom-level2-html/files/anchor2.html
new file mode 100644
index 000000000..1b04fb9ff
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/anchor2.html
@@ -0,0 +1,13 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - Anchor</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<P>
+<A HREF="./pix/submit.gif" TARGET="dynamic">View Submit Button</A>
+</P>
+</BODY>
+</HTML>
diff --git a/dom/tests/mochitest/dom-level2-html/files/anchor2.xhtml b/dom/tests/mochitest/dom-level2-html/files/anchor2.xhtml
new file mode 100644
index 000000000..096eb6014
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/anchor2.xhtml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - Anchor</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>
+<a href="./pix/submit.gif" target="dynamic">View Submit Button</a>
+</p>
+</body>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/anchor2.xml b/dom/tests/mochitest/dom-level2-html/files/anchor2.xml
new file mode 100644
index 000000000..096eb6014
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/anchor2.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - Anchor</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>
+<a href="./pix/submit.gif" target="dynamic">View Submit Button</a>
+</p>
+</body>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/applet.html b/dom/tests/mochitest/dom-level2-html/files/applet.html
new file mode 100644
index 000000000..d721cf1d9
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/applet.html
@@ -0,0 +1,12 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - Applet</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<P>
+<APPLET ALIGN="bottom" ALT="Applet Number 1" ARCHIVE="" CODE="org/w3c/domts/DOMTSApplet.class" CODEBASE="applets" HEIGHT="306" HSPACE="0" NAME="applet1" VSPACE="0" WIDTH="301"></APPLET>
+</P>
+</BODY>
+</HTML>
diff --git a/dom/tests/mochitest/dom-level2-html/files/applet.xhtml b/dom/tests/mochitest/dom-level2-html/files/applet.xhtml
new file mode 100644
index 000000000..cf2070cf2
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/applet.xhtml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - Applet</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>
+<applet align="bottom" alt="Applet Number 1" archive="" code="org/w3c/domts/DOMTSApplet.class" codebase="applets" height="306" hspace="0" name="applet1" vspace="0" width="301"></applet>
+</p>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/applet.xml b/dom/tests/mochitest/dom-level2-html/files/applet.xml
new file mode 100644
index 000000000..cf2070cf2
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/applet.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - Applet</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>
+<applet align="bottom" alt="Applet Number 1" archive="" code="org/w3c/domts/DOMTSApplet.class" codebase="applets" height="306" hspace="0" name="applet1" vspace="0" width="301"></applet>
+</p>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/applet2.class b/dom/tests/mochitest/dom-level2-html/files/applet2.class
new file mode 100644
index 000000000..3faee91d3
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/applet2.class
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<html><head>
+<title>300 Multiple Choices</title>
+</head><body>
+<h1>Multiple Choices</h1>
+The document name you requested (<code>/2004/04/ecmascript/level2/html/files/applet2.class</code>) could not be found on this server.
+However, we found documents with names similar to the one you requested.<p>Available documents:
+<ul>
+<li><a href="/2004/04/ecmascript/level2/html/files/applet2.xml">/2004/04/ecmascript/level2/html/files/applet2.xml</a> (common basename)
+<li><a href="/2004/04/ecmascript/level2/html/files/applet2.html">/2004/04/ecmascript/level2/html/files/applet2.html</a> (common basename)
+<li><a href="/2004/04/ecmascript/level2/html/files/applet2.xhtml">/2004/04/ecmascript/level2/html/files/applet2.xhtml</a> (common basename)
+</ul>
+Please consider informing the owner of the <a href="http://www.w3.org/2004/04/ecmascript/level2/html/files/document.html">referring page</a> about the broken link.
+</body></html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/applet2.html b/dom/tests/mochitest/dom-level2-html/files/applet2.html
new file mode 100644
index 000000000..0379ed126
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/applet2.html
@@ -0,0 +1,12 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - Applet</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<P>
+<APPLET ALIGN="bottom" ALT="Applet Number 1" ARCHIVE="" OBJECT="DOMTSApplet.dat" CODEBASE="applets" HEIGHT="306" HSPACE="0" NAME="applet1" VSPACE="0" WIDTH="301"></APPLET>
+</P>
+</BODY>
+</HTML>
diff --git a/dom/tests/mochitest/dom-level2-html/files/applet2.xhtml b/dom/tests/mochitest/dom-level2-html/files/applet2.xhtml
new file mode 100644
index 000000000..43b27daef
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/applet2.xhtml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - Applet</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>
+<applet align="bottom" alt="Applet Number 1" archive="" object="DOMTSApplet.dat" codebase="applets" height="306" hspace="0" name="applet1" vspace="0" width="301"></applet>
+</p>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/applet2.xml b/dom/tests/mochitest/dom-level2-html/files/applet2.xml
new file mode 100644
index 000000000..43b27daef
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/applet2.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - Applet</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>
+<applet align="bottom" alt="Applet Number 1" archive="" object="DOMTSApplet.dat" codebase="applets" height="306" hspace="0" name="applet1" vspace="0" width="301"></applet>
+</p>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/applets/org/w3c/domts/DOMTSApplet.class b/dom/tests/mochitest/dom-level2-html/files/applets/org/w3c/domts/DOMTSApplet.class
new file mode 100644
index 000000000..17933091f
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/applets/org/w3c/domts/DOMTSApplet.class
Binary files differ
diff --git a/dom/tests/mochitest/dom-level2-html/files/area.html b/dom/tests/mochitest/dom-level2-html/files/area.html
new file mode 100644
index 000000000..dddff6849
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/area.html
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - Area</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<P>
+<MAP NAME="mapid" ID="mapid">
+<AREA TABINDEX="10" ACCESSKEY="a" SHAPE="rect" ALT="Domain" COORDS="0,2,45,45" HREF="./files/dletter.html" TITLE="Domain">
+</MAP>
+</P>
+</BODY>
+</HTML>
diff --git a/dom/tests/mochitest/dom-level2-html/files/area.xhtml b/dom/tests/mochitest/dom-level2-html/files/area.xhtml
new file mode 100644
index 000000000..1e497f36c
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/area.xhtml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - Area</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>
+<map name="mapid" id="mapid">
+<area tabindex="10" accesskey="a" shape="rect" alt="Domain" coords="0,2,45,45" href="./files/dletter.html" title="Domain"/>
+</map>
+</p>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/area.xml b/dom/tests/mochitest/dom-level2-html/files/area.xml
new file mode 100644
index 000000000..1e497f36c
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/area.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - Area</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>
+<map name="mapid" id="mapid">
+<area tabindex="10" accesskey="a" shape="rect" alt="Domain" coords="0,2,45,45" href="./files/dletter.html" title="Domain"/>
+</map>
+</p>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/area2.html b/dom/tests/mochitest/dom-level2-html/files/area2.html
new file mode 100644
index 000000000..f1ae08161
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/area2.html
@@ -0,0 +1,15 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - Area</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<P>
+<MAP NAME="mapid" ID="mapid">
+<AREA HREF="./files/dletter.html" ALT="Domain" TARGET="dynamic">
+</MAP>
+</P>
+</BODY>
+</HTML>
diff --git a/dom/tests/mochitest/dom-level2-html/files/area2.xhtml b/dom/tests/mochitest/dom-level2-html/files/area2.xhtml
new file mode 100644
index 000000000..5476bee9e
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/area2.xhtml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - Area</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>
+<map name="mapid" id="mapid">
+<area href="./files/dletter.html" alt="Domain" target="dynamic"/>
+</map>
+</p>
+</body>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/area2.xml b/dom/tests/mochitest/dom-level2-html/files/area2.xml
new file mode 100644
index 000000000..5476bee9e
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/area2.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - Area</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>
+<map name="mapid" id="mapid">
+<area href="./files/dletter.html" alt="Domain" target="dynamic"/>
+</map>
+</p>
+</body>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/base.html b/dom/tests/mochitest/dom-level2-html/files/base.html
new file mode 100644
index 000000000..53d151d8b
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/base.html
@@ -0,0 +1,11 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<BASE HREF="about:blank">
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - Base</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<P>Some Text</P>
+</BODY>
+</HTML>
diff --git a/dom/tests/mochitest/dom-level2-html/files/base.xhtml b/dom/tests/mochitest/dom-level2-html/files/base.xhtml
new file mode 100644
index 000000000..bc41a1d02
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/base.xhtml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<base href="about:blank"/>
+<title>NIST DOM HTML Test - Base</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>Some Text</p>
+</body>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/base.xml b/dom/tests/mochitest/dom-level2-html/files/base.xml
new file mode 100644
index 000000000..bc41a1d02
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/base.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<base href="about:blank"/>
+<title>NIST DOM HTML Test - Base</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>Some Text</p>
+</body>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/base2.html b/dom/tests/mochitest/dom-level2-html/files/base2.html
new file mode 100644
index 000000000..514d534fc
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/base2.html
@@ -0,0 +1,15 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
+"http://www.w3.org/TR/html4/frameset.dtd">
+<HTML>
+<HEAD>
+<BASE HREF="about:blank" TARGET="Frame1">
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - Base2</TITLE>
+</HEAD>
+<FRAMESET COLS="20, 80" onload="parent.loadComplete()">
+<FRAMESET ROWS="100, 200">
+<FRAME MARGINHEIGHT="10" MARGINWIDTH="5" NORESIZE="NORESIZE" NAME="Frame1" FRAMEBORDER="1" SCROLLING="yes" SRC="right.png">
+</FRAMESET>
+<FRAME SRC="w3c_main.png">
+</FRAMESET>
+</HTML>
diff --git a/dom/tests/mochitest/dom-level2-html/files/base2.xhtml b/dom/tests/mochitest/dom-level2-html/files/base2.xhtml
new file mode 100644
index 000000000..3d15b902f
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/base2.xhtml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
+ "xhtml1-frameset.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<base href="about:blank" target="Frame1"/>
+<title>NIST DOM HTML Test - Base2</title>
+</head>
+<frameset cols="20, 80" onload="parent.loadComplete()">
+<frameset rows="100, 200">
+<frame marginheight="10" marginwidth="5" noresize="noresize" name="Frame1" frameborder="1" scrolling="yes" src="right.png" />
+</frameset>
+<frame src="w3c_main.png" />
+</frameset>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/base2.xml b/dom/tests/mochitest/dom-level2-html/files/base2.xml
new file mode 100644
index 000000000..3d15b902f
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/base2.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
+ "xhtml1-frameset.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<base href="about:blank" target="Frame1"/>
+<title>NIST DOM HTML Test - Base2</title>
+</head>
+<frameset cols="20, 80" onload="parent.loadComplete()">
+<frameset rows="100, 200">
+<frame marginheight="10" marginwidth="5" noresize="noresize" name="Frame1" frameborder="1" scrolling="yes" src="right.png" />
+</frameset>
+<frame src="w3c_main.png" />
+</frameset>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/body.html b/dom/tests/mochitest/dom-level2-html/files/body.html
new file mode 100644
index 000000000..6468cd018
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/body.html
@@ -0,0 +1,10 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - Body</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()" ALINK="#0000ff" BACKGROUND="./pix/back1.gif" BGCOLOR="#ffff00" LINK="#ff0000" TEXT="#000000" VLINK="#00ffff">
+<P>Hello, World</P>
+</BODY>
+</HTML>
diff --git a/dom/tests/mochitest/dom-level2-html/files/body.xhtml b/dom/tests/mochitest/dom-level2-html/files/body.xhtml
new file mode 100644
index 000000000..fa6d1b795
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/body.xhtml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<base href="http://xw2k.sdct.itl.nist.gov/brady/dom/"/>
+<title>NIST DOM HTML Test - Body</title>
+</head>
+<body onload="parent.loadComplete()" alink="#0000ff" background="./pix/back1.gif" bgcolor="#ffff00" link="#ff0000" text="#000000" vlink="#00ffff">
+<p>Hello, World.</p>
+</body>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/body.xml b/dom/tests/mochitest/dom-level2-html/files/body.xml
new file mode 100644
index 000000000..fa6d1b795
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/body.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<base href="http://xw2k.sdct.itl.nist.gov/brady/dom/"/>
+<title>NIST DOM HTML Test - Body</title>
+</head>
+<body onload="parent.loadComplete()" alink="#0000ff" background="./pix/back1.gif" bgcolor="#ffff00" link="#ff0000" text="#000000" vlink="#00ffff">
+<p>Hello, World.</p>
+</body>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/br.html b/dom/tests/mochitest/dom-level2-html/files/br.html
new file mode 100644
index 000000000..0a3a3d4e2
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/br.html
@@ -0,0 +1,12 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - BR</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<P>
+<BR CLEAR="none">
+</P>
+</BODY>
+</HTML>
diff --git a/dom/tests/mochitest/dom-level2-html/files/br.xhtml b/dom/tests/mochitest/dom-level2-html/files/br.xhtml
new file mode 100644
index 000000000..99c9c1ef8
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/br.xhtml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - BR</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>
+<br clear="none"/>
+</p>
+</body>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/br.xml b/dom/tests/mochitest/dom-level2-html/files/br.xml
new file mode 100644
index 000000000..99c9c1ef8
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/br.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - BR</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>
+<br clear="none"/>
+</p>
+</body>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/button.html b/dom/tests/mochitest/dom-level2-html/files/button.html
new file mode 100644
index 000000000..c891ba4a5
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/button.html
@@ -0,0 +1,21 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - Button</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<FORM ID="form2" ACTION="..." METHOD="POST">
+<P>
+ <BUTTON ACCESSKEY="f" NAME="disabledButton" TABINDEX="20" TYPE="reset" VALUE="Reset Disabled Button" DISABLED="disabled">Reset</BUTTON>
+</P>
+</FORM>
+<TABLE SUMMARY="Extra Button Table">
+<TR>
+<TD>
+<BUTTON>Extra Button</BUTTON>
+</TD>
+</TR>
+</TABLE>
+</BODY>
+</HTML>
diff --git a/dom/tests/mochitest/dom-level2-html/files/button.xhtml b/dom/tests/mochitest/dom-level2-html/files/button.xhtml
new file mode 100644
index 000000000..313698824
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/button.xhtml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - Button</title>
+</head>
+<body onload="parent.loadComplete()">
+<form id="form2" action="..." method="post">
+<p>
+ <button accesskey="f" name="disabledButton" tabindex="20" type="reset" value="Reset Disabled Button" disabled="disabled">Reset</button>
+</p>
+</form>
+<table summary="Extra Button Table">
+<tr>
+<td>
+<button>Extra Button</button>
+</td>
+</tr>
+</table>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/button.xml b/dom/tests/mochitest/dom-level2-html/files/button.xml
new file mode 100644
index 000000000..313698824
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/button.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - Button</title>
+</head>
+<body onload="parent.loadComplete()">
+<form id="form2" action="..." method="post">
+<p>
+ <button accesskey="f" name="disabledButton" tabindex="20" type="reset" value="Reset Disabled Button" disabled="disabled">Reset</button>
+</p>
+</form>
+<table summary="Extra Button Table">
+<tr>
+<td>
+<button>Extra Button</button>
+</td>
+</tr>
+</table>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/collection.html b/dom/tests/mochitest/dom-level2-html/files/collection.html
new file mode 100644
index 000000000..885202df4
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/collection.html
@@ -0,0 +1,79 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - SELECT</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<TABLE ID="table-1" BORDER="4" FRAME="border" CELLPADDING="2" CELLSPACING="2" SUMMARY="HTML Control Table" RULES="all">
+<CAPTION>Table Caption</CAPTION>
+<THEAD ALIGN="center" VALIGN="middle">
+<TR ALIGN="center" VALIGN="middle" CHAR="*" CHAROFF="1">
+<TH ID="header-1">Employee Id</TH>
+<TH ID="header-2" ABBR="maiden" AXIS="center" ALIGN="center" COLSPAN="1" ROWSPAN="1" SCOPE="col" HEADERS="header-1" VALIGN="middle">Employee Name</TH>
+<TH>Position</TH>
+<TH>Salary</TH>
+<TH>Gender</TH>
+<TH>Address</TH>
+</TR>
+</THEAD>
+<TFOOT ALIGN="center" VALIGN="middle">
+<TR>
+<TH>next page ...</TH>
+<TH>next page ...</TH>
+<TH>next page ...</TH>
+<TH>next page ...</TH>
+<TH>next page ...</TH>
+<TH>next page ...</TH>
+</TR>
+</TFOOT>
+<TBODY ALIGN="center" VALIGN="middle">
+<TR>
+<TD AXIS="center" ID="Table-3" ABBR="maiden2" COLSPAN="1" ROWSPAN="1" SCOPE="col" HEADERS="header-2" VALIGN="middle">EMP0001</TD>
+<TD HEADERS="header-2">Margaret Martin</TD>
+<TD>Accountant</TD>
+<TD>56,000</TD>
+<TD>Female</TD>
+<TD>1230 North Ave. Dallas, Texas 98551</TD>
+</TR>
+<TR>
+<TD>EMP0002</TD>
+<TD>Martha Raynolds</TD>
+<TD>Secretary</TD>
+<TD>35,000</TD>
+<TD>Female</TD>
+<TD>1900 Dallas Road Dallas, Texas 98554</TD>
+</TR>
+</TBODY>
+</TABLE>
+<FORM ID="form1" ACTION="./files/getData.pl" METHOD="post">
+<P>
+<SELECT ID="selectId" DIR="ltr" TABINDEX="7" NAME="select1" MULTIPLE="multiple" SIZE="1">
+<OPTION SELECTED="selected" value="EMP1">EMP10001</OPTION>
+<OPTION>EMP10002</OPTION>
+<OPTION>EMP10003</OPTION>
+<OPTION>EMP10004</OPTION>
+<OPTION>EMP10005</OPTION>
+</SELECT>
+</P>
+</FORM>
+<P>
+<SELECT NAME="select2">
+<OPTION>EMP20001</OPTION>
+<OPTION>EMP20002</OPTION>
+<OPTION>EMP20003</OPTION>
+<OPTION>EMP20004</OPTION>
+<OPTION>EMP20005</OPTION>
+</SELECT>
+</P>
+<P>
+<SELECT NAME="select3" DISABLED="disabled" TABINDEX="1">
+<OPTION>EMP30001</OPTION>
+<OPTION>EMP30002</OPTION>
+<OPTION>EMP30003</OPTION>
+<OPTION>EMP30004</OPTION>
+<OPTION>EMP30005</OPTION>
+</SELECT>
+</P>
+</BODY>
+</HTML>
diff --git a/dom/tests/mochitest/dom-level2-html/files/collection.xhtml b/dom/tests/mochitest/dom-level2-html/files/collection.xhtml
new file mode 100644
index 000000000..9da52c1ec
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/collection.xhtml
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - BR</title>
+</head>
+<body onload="parent.loadComplete()">
+<table id="table-1" border="4" frame="border" cellpadding="2" cellspacing="2" summary="HTML Control Table" rules="all">
+<caption>Table Caption</caption>
+<thead align="center" valign="middle">
+<tr align="center" valign="middle" char="*" charoff="1">
+<th id="header-1">Employee Id</th>
+<th id="header-2" abbr="maiden" axis="center" align="center" colspan="1" rowspan="1" scope="col" headers="header-1" valign="middle">Employee Name</th>
+<th>Position</th>
+<th>Salary</th>
+<th>Gender</th>
+<th>Address</th>
+</tr>
+</thead>
+<tfoot align="center" valign="middle">
+<tr>
+<th>next page ...</th>
+<th>next page ...</th>
+<th>next page ...</th>
+<th>next page ...</th>
+<th>next page ...</th>
+<th>next page ...</th>
+</tr>
+</tfoot>
+<tbody align="center" valign="middle">
+<tr>
+<td axis="center" id="Table-3" abbr="maiden2" colspan="1" rowspan="1" scope="col" headers="header-2" valign="middle">EMP0001</td>
+<td headers="header-2">Margaret Martin</td>
+<td>Accountant</td>
+<td>56,000</td>
+<td>Female</td>
+<td>1230 North Ave. Dallas, Texas 98551</td>
+</tr>
+<tr>
+<td>EMP0002</td>
+<td>Martha Raynolds</td>
+<td>Secretary</td>
+<td>35,000</td>
+<td>Female</td>
+<td>1900 Dallas Road Dallas, Texas 98554</td>
+</tr>
+</tbody>
+</table>
+<form id="form1" action="./files/getData.pl" method="post">
+<p>
+<select id="selectId" dir="ltr" tabindex="7" name="select1" multiple="multiple" size="1">
+<option selected="selected" value="EMP1">EMP10001</option>
+<option>EMP10002</option>
+<option>EMP10003</option>
+<option>EMP10004</option>
+<option>EMP10005</option>
+</select>
+</p>
+</form>
+<p>
+<select name="select2">
+<option>EMP20001</option>
+<option>EMP20002</option>
+<option>EMP20003</option>
+<option>EMP20004</option>
+<option>EMP20005</option>
+</select>
+</p>
+<p>
+<select name="select3" disabled="disabled" tabindex="1">
+<option>EMP30001</option>
+<option>EMP30002</option>
+<option>EMP30003</option>
+<option>EMP30004</option>
+<option>EMP30005</option>
+</select>
+</p>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/collection.xml b/dom/tests/mochitest/dom-level2-html/files/collection.xml
new file mode 100644
index 000000000..9da52c1ec
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/collection.xml
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - BR</title>
+</head>
+<body onload="parent.loadComplete()">
+<table id="table-1" border="4" frame="border" cellpadding="2" cellspacing="2" summary="HTML Control Table" rules="all">
+<caption>Table Caption</caption>
+<thead align="center" valign="middle">
+<tr align="center" valign="middle" char="*" charoff="1">
+<th id="header-1">Employee Id</th>
+<th id="header-2" abbr="maiden" axis="center" align="center" colspan="1" rowspan="1" scope="col" headers="header-1" valign="middle">Employee Name</th>
+<th>Position</th>
+<th>Salary</th>
+<th>Gender</th>
+<th>Address</th>
+</tr>
+</thead>
+<tfoot align="center" valign="middle">
+<tr>
+<th>next page ...</th>
+<th>next page ...</th>
+<th>next page ...</th>
+<th>next page ...</th>
+<th>next page ...</th>
+<th>next page ...</th>
+</tr>
+</tfoot>
+<tbody align="center" valign="middle">
+<tr>
+<td axis="center" id="Table-3" abbr="maiden2" colspan="1" rowspan="1" scope="col" headers="header-2" valign="middle">EMP0001</td>
+<td headers="header-2">Margaret Martin</td>
+<td>Accountant</td>
+<td>56,000</td>
+<td>Female</td>
+<td>1230 North Ave. Dallas, Texas 98551</td>
+</tr>
+<tr>
+<td>EMP0002</td>
+<td>Martha Raynolds</td>
+<td>Secretary</td>
+<td>35,000</td>
+<td>Female</td>
+<td>1900 Dallas Road Dallas, Texas 98554</td>
+</tr>
+</tbody>
+</table>
+<form id="form1" action="./files/getData.pl" method="post">
+<p>
+<select id="selectId" dir="ltr" tabindex="7" name="select1" multiple="multiple" size="1">
+<option selected="selected" value="EMP1">EMP10001</option>
+<option>EMP10002</option>
+<option>EMP10003</option>
+<option>EMP10004</option>
+<option>EMP10005</option>
+</select>
+</p>
+</form>
+<p>
+<select name="select2">
+<option>EMP20001</option>
+<option>EMP20002</option>
+<option>EMP20003</option>
+<option>EMP20004</option>
+<option>EMP20005</option>
+</select>
+</p>
+<p>
+<select name="select3" disabled="disabled" tabindex="1">
+<option>EMP30001</option>
+<option>EMP30002</option>
+<option>EMP30003</option>
+<option>EMP30004</option>
+<option>EMP30005</option>
+</select>
+</p>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/directory.html b/dom/tests/mochitest/dom-level2-html/files/directory.html
new file mode 100644
index 000000000..0e2f46091
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/directory.html
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - Directory</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<DIR COMPACT="compact">
+<LI>DIR item number 1.</LI>
+<LI>DIR item number 2.</LI>
+<LI>DIR item number 3.</LI>
+</DIR>
+</BODY>
+</HTML>
diff --git a/dom/tests/mochitest/dom-level2-html/files/directory.xhtml b/dom/tests/mochitest/dom-level2-html/files/directory.xhtml
new file mode 100644
index 000000000..bf70ef845
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/directory.xhtml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - Directory</title>
+</head>
+<body onload="parent.loadComplete()">
+<dir compact="compact">
+<li>DIR item number 1.</li>
+<li>DIR item number 2.</li>
+<li>DIR item number 3.</li>
+</dir>
+</body>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/directory.xml b/dom/tests/mochitest/dom-level2-html/files/directory.xml
new file mode 100644
index 000000000..bf70ef845
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/directory.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - Directory</title>
+</head>
+<body onload="parent.loadComplete()">
+<dir compact="compact">
+<li>DIR item number 1.</li>
+<li>DIR item number 2.</li>
+<li>DIR item number 3.</li>
+</dir>
+</body>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/div.html b/dom/tests/mochitest/dom-level2-html/files/div.html
new file mode 100644
index 000000000..6b8364621
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/div.html
@@ -0,0 +1,10 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - DIV</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<DIV ALIGN="center">The DIV element is a generic block container. This text should be centered.</DIV>
+</BODY>
+</HTML>
diff --git a/dom/tests/mochitest/dom-level2-html/files/div.xhtml b/dom/tests/mochitest/dom-level2-html/files/div.xhtml
new file mode 100644
index 000000000..7a1059a38
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/div.xhtml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - DIV</title>
+</head>
+<body onload="parent.loadComplete()">
+<div align="center">The DIV element is a generic block container. This text should be centered.</div>
+</body>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/div.xml b/dom/tests/mochitest/dom-level2-html/files/div.xml
new file mode 100644
index 000000000..7a1059a38
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/div.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - DIV</title>
+</head>
+<body onload="parent.loadComplete()">
+<div align="center">The DIV element is a generic block container. This text should be centered.</div>
+</body>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/dl.html b/dom/tests/mochitest/dom-level2-html/files/dl.html
new file mode 100644
index 000000000..5dec3affe
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/dl.html
@@ -0,0 +1,15 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - DL</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<DL COMPACT="COMPACT">
+<DD>Accountant</DD>
+<DD>56,000</DD>
+<DD>Female</DD>
+<DD>1230 North Ave. Dallas, Texas 98551</DD>
+</DL>
+</BODY>
+</HTML>
diff --git a/dom/tests/mochitest/dom-level2-html/files/dl.xhtml b/dom/tests/mochitest/dom-level2-html/files/dl.xhtml
new file mode 100644
index 000000000..72c6475d4
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/dl.xhtml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - DL</title>
+</head>
+<body onload="parent.loadComplete()">
+<dl compact="compact">
+<dd>Accountant</dd>
+<dd>56,000</dd>
+<dd>Female</dd>
+<dd>1230 North Ave. Dallas, Texas 98551</dd>
+</dl>
+</body>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/dl.xml b/dom/tests/mochitest/dom-level2-html/files/dl.xml
new file mode 100644
index 000000000..72c6475d4
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/dl.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - DL</title>
+</head>
+<body onload="parent.loadComplete()">
+<dl compact="compact">
+<dd>Accountant</dd>
+<dd>56,000</dd>
+<dd>Female</dd>
+<dd>1230 North Ave. Dallas, Texas 98551</dd>
+</dl>
+</body>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/document-with-applet.html b/dom/tests/mochitest/dom-level2-html/files/document-with-applet.html
new file mode 100644
index 000000000..4e6025b2d
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/document-with-applet.html
@@ -0,0 +1,36 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - DOCUMENT</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()" ID="TEST-BODY">
+<FORM ID="form1" ACCEPT-CHARSET="US-ASCII" ACTION="./files/getData.pl" ENCTYPE="application/x-www-form-urlencoded" METHOD="post">
+<P>
+<TEXTAREA NAME="text1" COLS="20" ROWS="7"></TEXTAREA>
+<INPUT TYPE="submit" NAME="submit" VALUE="Submit" />
+<INPUT TYPE="reset" NAME="reset" VALUE="Reset" />
+</P>
+</FORM>
+<P>
+<MAP NAME="mapid" ID="mapid">
+<AREA TABINDEX="10" ACCESSKEY="a" SHAPE="rect" ALT="Domain" COORDS="0,2,45,45" HREF="./files/dletter.html" TITLE="Domain1">
+<AREA TABINDEX="10" ACCESSKEY="a" SHAPE="rect" ALT="Domain" COORDS="0,2,45,45" HREF="./files/dletter.html" TITLE="Domain2">
+</MAP>
+</P>
+<P>
+<IMG ID="IMAGE-1" NAME="IMAGE-1" SRC="./pix/dts.gif" ALT="DTS IMAGE LOGO" LONGDESC="./files/desc.html" USEMAP="#DTS-MAP" WIDTH="115"/>
+</P>
+<P>
+<OBJECT DATA="./pix/line.gif" CODETYPE="image/gif" HEIGHT="10">
+<APPLET ALIGN="bottom" ALT="Applet Number 1" ARCHIVE="" CODE="org/w3c/domts/DOMTSApplet.class" CODEBASE="applets"></APPLET>
+</OBJECT>
+<OBJECT DATA="./pix/logo.gif" type="image/gif">
+<APPLET ALT="Applet Number 2" CODE="org/w3c/domts/DOMTSApplet.class" CODEBASE="applets"></APPLET>
+</OBJECT>
+</P>
+<P>
+<A ID="Anchor" DIR="LTR" HREF="./pix/submit.gif" ACCESSKEY="g" TYPE="image/gif" COORDS="0,0,100,100" SHAPE="rect" REL="GLOSSARY" REV="STYLESHEET" HREFLANG="en" CHARSET="US-ASCII" TABINDEX="22" NAME="Anchor">View Submit Button</A>
+</P>
+</BODY>
+</HTML>
diff --git a/dom/tests/mochitest/dom-level2-html/files/document.html b/dom/tests/mochitest/dom-level2-html/files/document.html
new file mode 100644
index 000000000..530b92f18
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/document.html
@@ -0,0 +1,34 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - DOCUMENT</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()" ID="TEST-BODY">
+<FORM ID="form1" ACCEPT-CHARSET="US-ASCII" ACTION="./files/getData.pl" ENCTYPE="application/x-www-form-urlencoded" METHOD="post">
+<P>
+<TEXTAREA NAME="text1" COLS="20" ROWS="7"></TEXTAREA>
+<INPUT TYPE="submit" NAME="submit" VALUE="Submit" />
+<INPUT TYPE="reset" NAME="reset" VALUE="Reset" />
+</P>
+</FORM>
+<P>
+<MAP NAME="mapid" ID="mapid">
+<AREA TABINDEX="10" ACCESSKEY="a" SHAPE="rect" ALT="Domain" COORDS="0,2,45,45" HREF="./files/dletter.html" TITLE="Domain1">
+<AREA TABINDEX="10" ACCESSKEY="a" SHAPE="rect" ALT="Domain" COORDS="0,2,45,45" HREF="./files/dletter.html" TITLE="Domain2">
+</MAP>
+</P>
+<P>
+<IMG ID="IMAGE-1" NAME="IMAGE-1" SRC="./pix/dts.gif" ALT="DTS IMAGE LOGO" LONGDESC="./files/desc.html" USEMAP="#DTS-MAP" WIDTH="115"/>
+</P>
+<P>
+<OBJECT DATA="./pix/line.gif" CODETYPE="image/gif" HEIGHT="10">
+</OBJECT>
+<OBJECT DATA="./pix/logo.gif" type="image/gif">
+</OBJECT>
+</P>
+<P>
+<A ID="Anchor" DIR="LTR" HREF="./pix/submit.gif" ACCESSKEY="g" TYPE="image/gif" COORDS="0,0,100,100" SHAPE="rect" REL="GLOSSARY" REV="STYLESHEET" HREFLANG="en" CHARSET="US-ASCII" TABINDEX="22" NAME="Anchor">View Submit Button</A>
+</P>
+</BODY>
+</HTML>
diff --git a/dom/tests/mochitest/dom-level2-html/files/document.xhtml b/dom/tests/mochitest/dom-level2-html/files/document.xhtml
new file mode 100644
index 000000000..3cc6ccf10
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/document.xhtml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - DOCUMENT</title>
+</head>
+<body onload="parent.loadComplete()" id="TEST-BODY">
+<form id="form1" accept-charset="US-ASCII" action="./files/getData.pl" enctype="application/x-www-form-urlencoded" method="post">
+<p>
+<textarea name="text1" cols="20" rows="7"></textarea>
+<input type="submit" name="submit1" value="Submit" />
+<input type="reset" name="submit2" value="Reset" />
+</p>
+</form>
+<p>
+<map name="mapid" id="mapid">
+<area tabindex="10" accesskey="a" shape="rect" alt="Domain" coords="0,2,45,45" href="./files/dletter.html" title="Domain1" />
+<area tabindex="10" accesskey="a" shape="rect" alt="Domain" coords="0,2,45,45" href="./files/dletter.html" title="Domain2" />
+</map>
+</p>
+<p>
+<img id="IMAGE-1" src="./pix/dts.gif" alt="DTS IMAGE LOGO" longdesc="./files/desc.html" usemap="#DTS-MAP" width="115"/>
+</p>
+<p>
+<object data="./pix/line.gif" codetype="image/gif" height="10">
+<applet alt="Applet Number 1" code="applet1.class" width="10" height="10"></applet>
+</object>
+<object data="./pix/logo.gif" type="image/gif">
+<applet alt="Applet Number 2" code="applet2.class" width="10" height="10"></applet>
+</object>
+</p>
+<p>
+<a id="Anchor" dir="ltr" href="./pix/submit.gif" accesskey="g" type="image/gif" coords="0,0,100,100" shape="rect" rel="GLOSSARY" rev="STYLESHEET" hreflang="en" charset="US-ASCII" tabindex="22" name="Anchor">View Submit Button</a>
+</p>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/document.xml b/dom/tests/mochitest/dom-level2-html/files/document.xml
new file mode 100644
index 000000000..3cc6ccf10
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/document.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - DOCUMENT</title>
+</head>
+<body onload="parent.loadComplete()" id="TEST-BODY">
+<form id="form1" accept-charset="US-ASCII" action="./files/getData.pl" enctype="application/x-www-form-urlencoded" method="post">
+<p>
+<textarea name="text1" cols="20" rows="7"></textarea>
+<input type="submit" name="submit1" value="Submit" />
+<input type="reset" name="submit2" value="Reset" />
+</p>
+</form>
+<p>
+<map name="mapid" id="mapid">
+<area tabindex="10" accesskey="a" shape="rect" alt="Domain" coords="0,2,45,45" href="./files/dletter.html" title="Domain1" />
+<area tabindex="10" accesskey="a" shape="rect" alt="Domain" coords="0,2,45,45" href="./files/dletter.html" title="Domain2" />
+</map>
+</p>
+<p>
+<img id="IMAGE-1" src="./pix/dts.gif" alt="DTS IMAGE LOGO" longdesc="./files/desc.html" usemap="#DTS-MAP" width="115"/>
+</p>
+<p>
+<object data="./pix/line.gif" codetype="image/gif" height="10">
+<applet alt="Applet Number 1" code="applet1.class" width="10" height="10"></applet>
+</object>
+<object data="./pix/logo.gif" type="image/gif">
+<applet alt="Applet Number 2" code="applet2.class" width="10" height="10"></applet>
+</object>
+</p>
+<p>
+<a id="Anchor" dir="ltr" href="./pix/submit.gif" accesskey="g" type="image/gif" coords="0,0,100,100" shape="rect" rel="GLOSSARY" rev="STYLESHEET" hreflang="en" charset="US-ASCII" tabindex="22" name="Anchor">View Submit Button</a>
+</p>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/element.html b/dom/tests/mochitest/dom-level2-html/files/element.html
new file mode 100644
index 000000000..a0c198e81
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/element.html
@@ -0,0 +1,81 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD ID="Test-HEAD" TITLE="HEAD Element" LANG="en" DIR="ltr" CLASS="HEAD-class">
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - Element</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<CENTER ID="Test-CENTER" TITLE="CENTER Element" LANG="en" DIR="ltr" CLASS="CENTER-class">
+<OBJECT align="middle"></OBJECT>
+</CENTER>
+<CENTER>
+<P align="center">Test Lists</P>
+</CENTER>
+<BR>
+<OL compact="compact" start="1" type="1">
+ <LI type="square" value=2>EMP0001
+ <UL compact type="disc">
+ <LI>Margaret Martin
+ <DL>
+ <DD ID="Test-DD" TITLE="DD Element" LANG="en" DIR="ltr" CLASS="DD-class">Accountant</DD>
+ <DD>56,000</DD>
+ <DD>Female</DD>
+ <DD>1230 North Ave. Dallas, Texas 98551</DD>
+ </DL>
+ </LI>
+ </UL>
+ </LI>
+</OL>
+<BR />
+<B ID="Test-B" TITLE="B Element" LANG="en" DIR="ltr" CLASS="B-class">Bold</B>
+<BR />
+<DL>
+ <DT ID="Test-DT" TITLE="DT Element" LANG="en" DIR="ltr" CLASS="DT-class">DT element</DT>
+</DL>
+<BR />
+<BDO ID="Test-BDO" TITLE="BDO Element" LANG="en" DIR="ltr" CLASS="BDO-class">Bidirectional algorithm overide
+</BDO>
+<BR />
+<I ID="Test-I" TITLE="I Element" LANG="en" DIR="ltr" CLASS="I-class">Italicized</I>
+<BR />
+<SPAN ID="Test-SPAN" TITLE="SPAN Element" LANG="en" DIR="ltr" CLASS="SPAN-class"></SPAN>
+<BR />
+<TT ID="Test-TT" TITLE="TT Element" LANG="en" DIR="ltr" CLASS="TT-class">Teletype</TT>
+<BR />
+<SUB ID="Test-SUB" TITLE="SUB Element" LANG="en" DIR="ltr" CLASS="SUB-class">Subscript</SUB>
+<BR />
+<SUP ID="Test-SUP" TITLE="SUP Element" LANG="en" DIR="ltr" CLASS="SUP-class">SuperScript</SUP>
+<BR />
+<S ID="Test-S" TITLE="S Element" LANG="en" DIR="ltr" CLASS="S-class">Strike Through (S)</S>
+<BR />
+<STRIKE ID="Test-STRIKE" TITLE="STRIKE Element" LANG="en" DIR="ltr" CLASS="STRIKE-class">Strike Through (STRIKE)</STRIKE>
+<BR />
+<SMALL id="Test-SMALL" TITLE="SMALL Element" LANG="en" DIR="ltr" CLASS="SMALL-class">Small</SMALL>
+<BR />
+<BIG ID="Test-BIG" TITLE="BIG Element" LANG="en" DIR="ltr" CLASS="BIG-class">Big</BIG>
+<BR />
+<EM ID="Test-EM" TITLE="EM Element" LANG="en" DIR="ltr" CLASS="EM-class">Emphasis</EM>
+<BR />
+<STRONG ID="Test-STRONG" TITLE="STRONG Element" LANG="en" DIR="ltr" CLASS="STRONG-class">Strong</STRONG>
+<BR />
+<DFN ID="Test-DFN" TITLE="DFN Element" LANG="en" DIR="ltr" CLASS="DFN-class">
+ <CODE ID="Test-CODE" TITLE="CODE Element" LANG="en" DIR="ltr" CLASS="CODE-class">10 Computer Code Fragment 20 Temp = 10</CODE>
+ <SAMP ID="Test-SAMP" TITLE="SAMP Element" LANG="en" DIR="ltr" CLASS="SAMP-class">Temp = 20</SAMP>
+ <KBD ID="Test-KBD" TITLE="KBD Element" LANG="en" DIR="ltr" CLASS="KBD-class">*2</KBD>
+ <VAR ID="Test-VAR" TITLE="VAR Element" LANG="en" DIR="ltr" CLASS="VAR-class">Temp</VAR>
+ <CITE ID="Test-CITE" TITLE="CITE Element" LANG="en" DIR="ltr" CLASS="CITE-class">Citation</CITE>
+</DFN>
+<BR />
+<ABBR ID="Test-ABBR" TITLE="ABBR Element" LANG="en" DIR="ltr" CLASS="ABBR-class">Temp</ABBR>
+<BR />
+<ACRONYM ID="Test-ACRONYM" TITLE="ACRONYM Element" LANG="en" DIR="ltr" CLASS="ACRONYM-class">NIST</ACRONYM>
+<BR />
+<ADDRESS ID="Test-ADDRESS" TITLE="ADDRESS Element" LANG="en" DIR="ltr" CLASS="ADDRESS-class">Gaithersburg, MD 20899</ADDRESS>
+<BR />
+<NOFRAMES ID="Test-NOFRAMES" TITLE="NOFRAMES Element" LANG="en" DIR="ltr" CLASS="NOFRAMES-class">Not</NOFRAMES>
+<BR />
+<NOSCRIPT ID="Test-NOSCRIPT" TITLE="NOSCRIPT Element" LANG="en" DIR="ltr" CLASS="NOSCRIPT-class">Not</NoScript>
+<BR />
+<U ID="Test-U" TITLE="U Element" LANG="en" DIR="ltr" CLASS="U-class">Underlined</U>
+</BODY>
+</HTML>
diff --git a/dom/tests/mochitest/dom-level2-html/files/element.xhtml b/dom/tests/mochitest/dom-level2-html/files/element.xhtml
new file mode 100644
index 000000000..ee996015d
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/element.xhtml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html lang="en" dir="ltr" xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - Element</title>
+</head>
+<body onload="parent.loadComplete()">
+<center id="Test-CENTER" title="CENTER Element" lang="en" dir="ltr" class="CENTER-class">
+<object align="middle"></object>
+</center>
+<center>
+<p align="center">Test Lists</p>
+</center>
+<br />
+<ol compact="compact" start="1" type="1">
+ <li type="square" value="2">EMP0001
+ <ul compact="compact" type="disc">
+ <li>Margaret Martin
+ <dl>
+ <dd id="Test-DD" title="DD Element" lang="en" dir="ltr" class="DD-class">Accountant</dd>
+ <dd>56,000</dd>
+ <dd>Female</dd>
+ <dd>1230 North Ave. Dallas, Texas 98551</dd>
+ </dl>
+ </li>
+ </ul>
+ </li>
+</ol>
+<br />
+<b id="Test-B" title="B Element" lang="en" dir="ltr" class="B-class">Bold</b>
+<br />
+<dl>
+ <dt id="Test-DT" title="DT Element" lang="en" dir="ltr" class="DT-class">DT element</dt>
+</dl>
+<br />
+<bdo id="Test-BDO" title="BDO Element" lang="en" dir="ltr" class="BDO-class">Bidirectional algorithm overide
+</bdo>
+<br />
+<i id="Test-I" title="I Element" lang="en" dir="ltr" class="I-class">Italicized</i>
+<br />
+<span id="Test-SPAN" title="SPAN Element" lang="en" dir="ltr" class="SPAN-class"></span>
+<br />
+<tt id="Test-TT" title="TT Element" lang="en" dir="ltr" class="TT-class">Teletype</tt>
+<br />
+<sub id="Test-SUB" title="SUB Element" lang="en" dir="ltr" class="SUB-class">Subscript</sub>
+<br />
+<sup id="Test-SUP" title="SUP Element" lang="en" dir="ltr" class="SUP-class">SuperScript</sup>
+<br />
+<s id="Test-S" title="S Element" lang="en" dir="ltr" class="S-class">Strike Through (S)</s>
+<br />
+<strike id="Test-STRIKE" title="STRIKE Element" lang="en" dir="ltr" class="STRIKE-class">Strike Through (STRIKE)</strike>
+<br />
+<small id="Test-SMALL" title="SMALL Element" lang="en" dir="ltr" class="SMALL-class">Small</small>
+<br />
+<big id="Test-BIG" title="BIG Element" lang="en" dir="ltr" class="BIG-class">Big</big>
+<br />
+<em id="Test-EM" title="EM Element" lang="en" dir="ltr" class="EM-class">Emphasis</em>
+<br />
+<strong id="Test-STRONG" title="STRONG Element" lang="en" dir="ltr" class="STRONG-class">Strong</strong>
+<br />
+<dfn id="Test-DFN" title="DFN Element" lang="en" dir="ltr" class="DFN-class">
+ <code id="Test-CODE" title="CODE Element" lang="en" dir="ltr" class="CODE-class">10 Computer Code Fragment 20 Temp = 10</code>
+ <samp id="Test-SAMP" title="SAMP Element" lang="en" dir="ltr" class="SAMP-class">Temp = 20</samp>
+ <kbd id="Test-KBD" title="KBD Element" lang="en" dir="ltr" class="KBD-class">*2</kbd>
+ <var id="Test-VAR" title="VAR Element" lang="en" dir="ltr" class="VAR-class">Temp</var>
+ <cite id="Test-CITE" title="CITE Element" lang="en" dir="ltr" class="CITE-class">Citation</cite>
+</dfn>
+<br />
+<abbr id="Test-ABBR" title="ABBR Element" lang="en" dir="ltr" class="ABBR-class">Temp</abbr>
+<br />
+<acronym id="Test-ACRONYM" title="ACRONYM Element" lang="en" dir="ltr" class="ACRONYM-class">NIST</acronym>
+<br />
+<address id="Test-ADDRESS" title="ADDRESS Element" lang="en" dir="ltr" class="ADDRESS-class">Gaithersburg, MD 20899</address>
+<br />
+<noframes id="Test-NOFRAMES" title="NOFRAMES Element" lang="en" dir="ltr" class="NOFRAMES-class">Not</noframes>
+<br />
+<noscript id="Test-NOSCRIPT" title="NOSCRIPT Element" lang="en" dir="ltr" class="NOSCRIPT-class">Not</noscript>
+<br />
+<u id="Test-U" title="U Element" lang="en" dir="ltr" class="U-class">Underlined</u>
+</body>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/element.xml b/dom/tests/mochitest/dom-level2-html/files/element.xml
new file mode 100644
index 000000000..ee996015d
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/element.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html lang="en" dir="ltr" xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - Element</title>
+</head>
+<body onload="parent.loadComplete()">
+<center id="Test-CENTER" title="CENTER Element" lang="en" dir="ltr" class="CENTER-class">
+<object align="middle"></object>
+</center>
+<center>
+<p align="center">Test Lists</p>
+</center>
+<br />
+<ol compact="compact" start="1" type="1">
+ <li type="square" value="2">EMP0001
+ <ul compact="compact" type="disc">
+ <li>Margaret Martin
+ <dl>
+ <dd id="Test-DD" title="DD Element" lang="en" dir="ltr" class="DD-class">Accountant</dd>
+ <dd>56,000</dd>
+ <dd>Female</dd>
+ <dd>1230 North Ave. Dallas, Texas 98551</dd>
+ </dl>
+ </li>
+ </ul>
+ </li>
+</ol>
+<br />
+<b id="Test-B" title="B Element" lang="en" dir="ltr" class="B-class">Bold</b>
+<br />
+<dl>
+ <dt id="Test-DT" title="DT Element" lang="en" dir="ltr" class="DT-class">DT element</dt>
+</dl>
+<br />
+<bdo id="Test-BDO" title="BDO Element" lang="en" dir="ltr" class="BDO-class">Bidirectional algorithm overide
+</bdo>
+<br />
+<i id="Test-I" title="I Element" lang="en" dir="ltr" class="I-class">Italicized</i>
+<br />
+<span id="Test-SPAN" title="SPAN Element" lang="en" dir="ltr" class="SPAN-class"></span>
+<br />
+<tt id="Test-TT" title="TT Element" lang="en" dir="ltr" class="TT-class">Teletype</tt>
+<br />
+<sub id="Test-SUB" title="SUB Element" lang="en" dir="ltr" class="SUB-class">Subscript</sub>
+<br />
+<sup id="Test-SUP" title="SUP Element" lang="en" dir="ltr" class="SUP-class">SuperScript</sup>
+<br />
+<s id="Test-S" title="S Element" lang="en" dir="ltr" class="S-class">Strike Through (S)</s>
+<br />
+<strike id="Test-STRIKE" title="STRIKE Element" lang="en" dir="ltr" class="STRIKE-class">Strike Through (STRIKE)</strike>
+<br />
+<small id="Test-SMALL" title="SMALL Element" lang="en" dir="ltr" class="SMALL-class">Small</small>
+<br />
+<big id="Test-BIG" title="BIG Element" lang="en" dir="ltr" class="BIG-class">Big</big>
+<br />
+<em id="Test-EM" title="EM Element" lang="en" dir="ltr" class="EM-class">Emphasis</em>
+<br />
+<strong id="Test-STRONG" title="STRONG Element" lang="en" dir="ltr" class="STRONG-class">Strong</strong>
+<br />
+<dfn id="Test-DFN" title="DFN Element" lang="en" dir="ltr" class="DFN-class">
+ <code id="Test-CODE" title="CODE Element" lang="en" dir="ltr" class="CODE-class">10 Computer Code Fragment 20 Temp = 10</code>
+ <samp id="Test-SAMP" title="SAMP Element" lang="en" dir="ltr" class="SAMP-class">Temp = 20</samp>
+ <kbd id="Test-KBD" title="KBD Element" lang="en" dir="ltr" class="KBD-class">*2</kbd>
+ <var id="Test-VAR" title="VAR Element" lang="en" dir="ltr" class="VAR-class">Temp</var>
+ <cite id="Test-CITE" title="CITE Element" lang="en" dir="ltr" class="CITE-class">Citation</cite>
+</dfn>
+<br />
+<abbr id="Test-ABBR" title="ABBR Element" lang="en" dir="ltr" class="ABBR-class">Temp</abbr>
+<br />
+<acronym id="Test-ACRONYM" title="ACRONYM Element" lang="en" dir="ltr" class="ACRONYM-class">NIST</acronym>
+<br />
+<address id="Test-ADDRESS" title="ADDRESS Element" lang="en" dir="ltr" class="ADDRESS-class">Gaithersburg, MD 20899</address>
+<br />
+<noframes id="Test-NOFRAMES" title="NOFRAMES Element" lang="en" dir="ltr" class="NOFRAMES-class">Not</noframes>
+<br />
+<noscript id="Test-NOSCRIPT" title="NOSCRIPT Element" lang="en" dir="ltr" class="NOSCRIPT-class">Not</noscript>
+<br />
+<u id="Test-U" title="U Element" lang="en" dir="ltr" class="U-class">Underlined</u>
+</body>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/fieldset.html b/dom/tests/mochitest/dom-level2-html/files/fieldset.html
new file mode 100644
index 000000000..312ea4420
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/fieldset.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - FieldSet</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<FORM ID="form2" ACTION="..." METHOD="POST">
+<FIELDSET>
+<LEGEND>All data entered must be valid</LEGEND>
+</FIELDSET>
+</FORM>
+<TABLE SUMMARY="Table 1">
+<TR>
+<TD>
+<FIELDSET>
+<LEGEND>All data entered must be valid</LEGEND>
+</FIELDSET>
+</TD>
+</TR>
+</TABLE>
+</BODY>
+</HTML>
diff --git a/dom/tests/mochitest/dom-level2-html/files/fieldset.xhtml b/dom/tests/mochitest/dom-level2-html/files/fieldset.xhtml
new file mode 100644
index 000000000..dcfeba133
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/fieldset.xhtml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - FieldSet</title>
+</head>
+<body onload="parent.loadComplete()">
+<form id="form2" action="..." method="post">
+<fieldset>
+<legend>All data entered must be valid</legend>
+</fieldset>
+</form>
+<table summary="Table 1">
+<tr>
+<td>
+<fieldset>
+<legend>All data entered must be valid</legend>
+</fieldset>
+</td>
+</tr>
+</table>
+</body>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/fieldset.xml b/dom/tests/mochitest/dom-level2-html/files/fieldset.xml
new file mode 100644
index 000000000..dcfeba133
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/fieldset.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - FieldSet</title>
+</head>
+<body onload="parent.loadComplete()">
+<form id="form2" action="..." method="post">
+<fieldset>
+<legend>All data entered must be valid</legend>
+</fieldset>
+</form>
+<table summary="Table 1">
+<tr>
+<td>
+<fieldset>
+<legend>All data entered must be valid</legend>
+</fieldset>
+</td>
+</tr>
+</table>
+</body>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/font.html b/dom/tests/mochitest/dom-level2-html/files/font.html
new file mode 100644
index 000000000..894e44241
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/font.html
@@ -0,0 +1,10 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - Font</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<FONT COLOR="#000000" FACE="arial,helvetica" SIZE="4">Test Tables</FONT>
+</BODY>
+</HTML>
diff --git a/dom/tests/mochitest/dom-level2-html/files/font.xhtml b/dom/tests/mochitest/dom-level2-html/files/font.xhtml
new file mode 100644
index 000000000..818db76bc
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/font.xhtml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - BaseFont</title>
+</head>
+<body onload="parent.loadComplete()">
+<font color="#000000" face="arial,helvitica" size="4">Test Tables</font>
+</body>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/font.xml b/dom/tests/mochitest/dom-level2-html/files/font.xml
new file mode 100644
index 000000000..818db76bc
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/font.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - BaseFont</title>
+</head>
+<body onload="parent.loadComplete()">
+<font color="#000000" face="arial,helvitica" size="4">Test Tables</font>
+</body>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/form.html b/dom/tests/mochitest/dom-level2-html/files/form.html
new file mode 100644
index 000000000..d8bf02424
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/form.html
@@ -0,0 +1,17 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - FORM</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<FORM ID="form1" ACCEPT-CHARSET="US-ASCII" ACTION="./files/getData.pl" ENCTYPE="application/x-www-form-urlencoded" METHOD="post">
+<P>
+<TEXTAREA NAME="text1" COLS="20" ROWS="7"></TEXTAREA>
+<INPUT TYPE="submit" NAME="submit1" VALUE="Submit" />
+<INPUT TYPE="reset" NAME="submit2" VALUE="Reset" />
+</P>
+</FORM>
+</BODY>
+</HTML>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/form.xhtml b/dom/tests/mochitest/dom-level2-html/files/form.xhtml
new file mode 100644
index 000000000..40d6bf0fa
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/form.xhtml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - FORM</title>
+</head>
+<body onload="parent.loadComplete()">
+<form id="form1" accept-charset="US-ASCII" action="./files/getData.pl" enctype="application/x-www-form-urlencoded" method="post">
+<p>
+<textarea id="text1" cols="20" rows="7"></textarea>
+<input type="submit" name="submit1" value="Submit" />
+<input type="reset" name="submit2" value="Reset" />
+</p>
+</form>
+</body>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/form.xml b/dom/tests/mochitest/dom-level2-html/files/form.xml
new file mode 100644
index 000000000..40d6bf0fa
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/form.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - FORM</title>
+</head>
+<body onload="parent.loadComplete()">
+<form id="form1" accept-charset="US-ASCII" action="./files/getData.pl" enctype="application/x-www-form-urlencoded" method="post">
+<p>
+<textarea id="text1" cols="20" rows="7"></textarea>
+<input type="submit" name="submit1" value="Submit" />
+<input type="reset" name="submit2" value="Reset" />
+</p>
+</form>
+</body>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/form2.html b/dom/tests/mochitest/dom-level2-html/files/form2.html
new file mode 100644
index 000000000..c44b6726d
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/form2.html
@@ -0,0 +1,17 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - FORM</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<FORM ID="form1" TARGET="dynamic" ACCEPT-CHARSET="US-ASCII" ACTION="./files/getData.pl" ENCTYPE="application/x-www-form-urlencoded" METHOD="post">
+<P>
+<TEXTAREA NAME="text1" COLS="20" ROWS="7"></TEXTAREA>
+<INPUT TYPE="submit" NAME="submit1" VALUE="Submit" />
+<INPUT TYPE="reset" NAME="submit2" VALUE="Reset" />
+</P>
+</FORM>
+</BODY>
+</HTML>
diff --git a/dom/tests/mochitest/dom-level2-html/files/form2.xhtml b/dom/tests/mochitest/dom-level2-html/files/form2.xhtml
new file mode 100644
index 000000000..e639432bf
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/form2.xhtml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - FORM</title>
+</head>
+<body onload="parent.loadComplete()">
+<form id="form1" target="dynamic" accept-charset="US-ASCII" action="./files/getData.pl" enctype="application/x-www-form-urlencoded" method="post">
+<p>
+<textarea id="text1" cols="20" rows="7"></textarea>
+<input type="submit" name="submit1" value="Submit" />
+<input type="reset" name="submit2" value="Reset" />
+</p>
+</form>
+</body>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/form2.xml b/dom/tests/mochitest/dom-level2-html/files/form2.xml
new file mode 100644
index 000000000..e639432bf
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/form2.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - FORM</title>
+</head>
+<body onload="parent.loadComplete()">
+<form id="form1" target="dynamic" accept-charset="US-ASCII" action="./files/getData.pl" enctype="application/x-www-form-urlencoded" method="post">
+<p>
+<textarea id="text1" cols="20" rows="7"></textarea>
+<input type="submit" name="submit1" value="Submit" />
+<input type="reset" name="submit2" value="Reset" />
+</p>
+</form>
+</body>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/form3.html b/dom/tests/mochitest/dom-level2-html/files/form3.html
new file mode 100644
index 000000000..543d09efb
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/form3.html
@@ -0,0 +1,17 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>FORM3</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<FORM ID="form1" ACTION="about:blank">
+<P>
+<TEXTAREA NAME="text1" COLS="20" ROWS="7"></TEXTAREA>
+<INPUT TYPE="submit" NAME="submit1" VALUE="Submit" />
+<INPUT TYPE="reset" NAME="submit2" VALUE="Reset" />
+</P>
+</FORM>
+</BODY>
+</HTML>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/form3.xhtml b/dom/tests/mochitest/dom-level2-html/files/form3.xhtml
new file mode 100644
index 000000000..48f5019cb
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/form3.xhtml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>FORM3</title>
+</head>
+<body onload="parent.loadComplete()">
+<form id="form1" action="about:blank">
+<p>
+<textarea id="text1" cols="20" rows="7"></textarea>
+<input type="submit" name="submit1" value="Submit" />
+<input type="reset" name="submit2" value="Reset" />
+</p>
+</form>
+</body>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/form3.xml b/dom/tests/mochitest/dom-level2-html/files/form3.xml
new file mode 100644
index 000000000..bbed66fbe
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/form3.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>FORM3</title>
+</head>
+<body onload="parent.loadComplete()">
+<form id="form1" action="about:blank">
+<p>
+<textarea id="text1" cols="20" rows="7"></textarea>
+<input type="submit" name="submit1" value="Submit" />
+<input type="reset" name="submit2" value="Reset" />
+</p>
+</form>
+</body>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/frame.html b/dom/tests/mochitest/dom-level2-html/files/frame.html
new file mode 100644
index 000000000..41182c9be
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/frame.html
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
+"http://www.w3.org/TR/html4/frameset.dtd">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - FRAME</TITLE>
+</HEAD>
+<FRAMESET COLS="20, 80" onload="parent.loadComplete()">
+<FRAMESET ROWS="100, 200">
+<FRAME LONGDESC="about:blank" MARGINHEIGHT="10" MARGINWIDTH="5" NORESIZE="NORESIZE" NAME="Frame1" FRAMEBORDER="1" SCROLLING="yes" SRC="right.png">
+</FRAMESET>
+<FRAME SRC="w3c_main.png">
+</FRAMESET>
+</HTML>
diff --git a/dom/tests/mochitest/dom-level2-html/files/frame.xhtml b/dom/tests/mochitest/dom-level2-html/files/frame.xhtml
new file mode 100644
index 000000000..bbe00fac1
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/frame.xhtml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
+ "xhtml1-frameset.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - FRAME</title>
+</head>
+<frameset cols="20, 80" onload="parent.loadComplete()">
+<frameset rows="100, 200">
+<frame longdesc="about:blank" marginheight="10" marginwidth="5" noresize="noresize" name="Frame1" frameborder="1" scrolling="yes" src="right.png" />
+</frameset>
+<frame src="w3c_main.png" />
+</frameset>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/frame.xml b/dom/tests/mochitest/dom-level2-html/files/frame.xml
new file mode 100644
index 000000000..bbe00fac1
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/frame.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
+ "xhtml1-frameset.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - FRAME</title>
+</head>
+<frameset cols="20, 80" onload="parent.loadComplete()">
+<frameset rows="100, 200">
+<frame longdesc="about:blank" marginheight="10" marginwidth="5" noresize="noresize" name="Frame1" frameborder="1" scrolling="yes" src="right.png" />
+</frameset>
+<frame src="w3c_main.png" />
+</frameset>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/frame2.html b/dom/tests/mochitest/dom-level2-html/files/frame2.html
new file mode 100644
index 000000000..6030ec5f5
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/frame2.html
@@ -0,0 +1,16 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
+"http://www.w3.org/TR/html4/frameset.dtd">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - FRAME2</TITLE>
+<!-- required by frame contents -->
+<SCRIPT type="text/javascript">function loadComplete() { }</SCRIPT>
+</HEAD>
+<FRAMESET COLS="20, 80" onload="parent.loadComplete()">
+<FRAMESET ROWS="100, 200">
+<FRAME ID="Frame1" NAME="Frame1" SRC="frame.html">
+</FRAMESET>
+<FRAME ID="Frame2" NAME="Frame2" SRC="iframe.html">
+</FRAMESET>
+</HTML>
diff --git a/dom/tests/mochitest/dom-level2-html/files/frame2.xhtml b/dom/tests/mochitest/dom-level2-html/files/frame2.xhtml
new file mode 100644
index 000000000..09008eb86
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/frame2.xhtml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
+ "xhtml1-frameset.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - FRAME2</title>
+<!-- required by frame contents -->
+<script type="text/javascript">function loadComplete() { }</script>
+</head>
+<frameset cols="20, 80" onload="parent.loadComplete()">
+<frameset rows="100, 200">
+<frame id="Frame1" name="Frame1" src="frame.xhtml"/>
+</frameset>
+<frame id="Frame2" name="Frame2" src="iframe.xhtml"/>
+</frameset>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/frame2.xml b/dom/tests/mochitest/dom-level2-html/files/frame2.xml
new file mode 100644
index 000000000..615f23406
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/frame2.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
+ "xhtml1-frameset.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - FRAME2</title>
+<script type="text/javascript">function loadComplete() { }</script>
+</head>
+<frameset cols="20, 80" onload="parent.loadComplete()">
+<frameset rows="100, 200">
+<frame id="Frame1" name="Frame1" src="frame.html"/>
+</frameset>
+<frame id="Frame2" name="Frame2" src="iframe.html"/>
+</frameset>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/frameset.html b/dom/tests/mochitest/dom-level2-html/files/frameset.html
new file mode 100644
index 000000000..f208fe055
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/frameset.html
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
+"http://www.w3.org/TR/html4/frameset.dtd">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - FRAMESET</TITLE>
+</HEAD>
+<FRAMESET COLS="20, 80" onload="parent.loadComplete()">
+<FRAMESET ROWS="100, 200">
+<FRAME SRC="right.png">
+</FRAMESET>
+<FRAME SRC="w3c_main.png">
+</FRAMESET>
+</HTML>
diff --git a/dom/tests/mochitest/dom-level2-html/files/frameset.xhtml b/dom/tests/mochitest/dom-level2-html/files/frameset.xhtml
new file mode 100644
index 000000000..2035bd9c8
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/frameset.xhtml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
+ "xhtml1-frameset.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - FRAMESET</title>
+</head>
+<frameset cols="20, 80" onload="parent.loadComplete()">
+<frameset rows="100, 200">
+<frame src="right.png" />
+</frameset>
+<frame src="w3c_main.png" />
+</frameset>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/frameset.xml b/dom/tests/mochitest/dom-level2-html/files/frameset.xml
new file mode 100644
index 000000000..2035bd9c8
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/frameset.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
+ "xhtml1-frameset.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - FRAMESET</title>
+</head>
+<frameset cols="20, 80" onload="parent.loadComplete()">
+<frameset rows="100, 200">
+<frame src="right.png" />
+</frameset>
+<frame src="w3c_main.png" />
+</frameset>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/heading.html b/dom/tests/mochitest/dom-level2-html/files/heading.html
new file mode 100644
index 000000000..90d388c0f
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/heading.html
@@ -0,0 +1,16 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - HEADING</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<H1 ALIGN="center">Head Element 1</H1>
+<H2 ALIGN="left">Head Element 2</H2>
+<H3 ALIGN="right">Head Element 3</H3>
+<H4 ALIGN="justify">Head Element 4</H4>
+<H5 ALIGN="center">Head Element 5</H5>
+<H6 ALIGN="left">Head Element 6</H6>
+</BODY>
+</HTML>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/heading.xhtml b/dom/tests/mochitest/dom-level2-html/files/heading.xhtml
new file mode 100644
index 000000000..3fda259f1
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/heading.xhtml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - HEADING</title>
+</head>
+<body onload="parent.loadComplete()">
+<h1 align="center">Head Element 1</h1>
+<h2 align="left">Head Element 2</h2>
+<h3 align="right">Head Element 3</h3>
+<h4 align="right">Head Element 4</h4>
+<h5 align="center">Head Element 5</h5>
+<h6 align="left">Head Element 6</h6>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/heading.xml b/dom/tests/mochitest/dom-level2-html/files/heading.xml
new file mode 100644
index 000000000..3fda259f1
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/heading.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - HEADING</title>
+</head>
+<body onload="parent.loadComplete()">
+<h1 align="center">Head Element 1</h1>
+<h2 align="left">Head Element 2</h2>
+<h3 align="right">Head Element 3</h3>
+<h4 align="right">Head Element 4</h4>
+<h5 align="center">Head Element 5</h5>
+<h6 align="left">Head Element 6</h6>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/hr.html b/dom/tests/mochitest/dom-level2-html/files/hr.html
new file mode 100644
index 000000000..9c4faccd0
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/hr.html
@@ -0,0 +1,11 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - HR</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<HR ALIGN="center" NOSHADE="noShade" SIZE="5" WIDTH="400" />
+</BODY>
+</HTML>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/hr.xhtml b/dom/tests/mochitest/dom-level2-html/files/hr.xhtml
new file mode 100644
index 000000000..685de3515
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/hr.xhtml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - HR</title>
+</head>
+<body onload="parent.loadComplete()">
+<hr align="center" noshade="noshade" size="5" width="400"/>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/hr.xml b/dom/tests/mochitest/dom-level2-html/files/hr.xml
new file mode 100644
index 000000000..685de3515
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/hr.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - HR</title>
+</head>
+<body onload="parent.loadComplete()">
+<hr align="center" noshade="noshade" size="5" width="400"/>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/html.html b/dom/tests/mochitest/dom-level2-html/files/html.html
new file mode 100644
index 000000000..2c91731e4
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/html.html
@@ -0,0 +1,12 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML VERSION="-//W3C//DTD HTML 4.01 Transitional//EN">
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - Html</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<P>Hello, World.</P>
+</BODY>
+</HTML>
+
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/html.xhtml b/dom/tests/mochitest/dom-level2-html/files/html.xhtml
new file mode 100644
index 000000000..f07d2c138
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/html.xhtml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - Html</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>Hello, World.</p>
+</body>
+</html>
+
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/html.xml b/dom/tests/mochitest/dom-level2-html/files/html.xml
new file mode 100644
index 000000000..f07d2c138
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/html.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - Html</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>Hello, World.</p>
+</body>
+</html>
+
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/iframe.html b/dom/tests/mochitest/dom-level2-html/files/iframe.html
new file mode 100644
index 000000000..0a44fc335
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/iframe.html
@@ -0,0 +1,10 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - IFRAME</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<IFRAME LONGDESC="about:blank" MARGINHEIGHT="10" MARGINWIDTH="5" WIDTH="60" HEIGHT="50" NAME="Iframe1" FRAMEBORDER="1" SCROLLING="yes" SRC="right.png" ALIGN="top">IFRAME1</IFRAME>
+</BODY>
+</HTML>
diff --git a/dom/tests/mochitest/dom-level2-html/files/iframe.xhtml b/dom/tests/mochitest/dom-level2-html/files/iframe.xhtml
new file mode 100644
index 000000000..93326c817
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/iframe.xhtml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - IFRAME</title>
+</head>
+<body onload="parent.loadComplete()">
+<iframe longdesc="about:blank" marginheight="10" marginwidth="5" width="60" height="50" name="Iframe1" frameborder="1" scrolling="yes" src="right.png" align="top">IFRAME1</iframe>
+</body>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/iframe.xml b/dom/tests/mochitest/dom-level2-html/files/iframe.xml
new file mode 100644
index 000000000..93326c817
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/iframe.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - IFRAME</title>
+</head>
+<body onload="parent.loadComplete()">
+<iframe longdesc="about:blank" marginheight="10" marginwidth="5" width="60" height="50" name="Iframe1" frameborder="1" scrolling="yes" src="right.png" align="top">IFRAME1</iframe>
+</body>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/iframe2.html b/dom/tests/mochitest/dom-level2-html/files/iframe2.html
new file mode 100644
index 000000000..7f302b843
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/iframe2.html
@@ -0,0 +1,13 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - IFRAME2</TITLE>
+<!-- required by frame contents -->
+<SCRIPT type="text/javascript">function loadComplete() { }</SCRIPT>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<IFRAME ID="Iframe1" NAME="Iframe1" SRC="iframe.html">IFRAME1</IFRAME>
+<IFRAME ID="Iframe2" SRC="frame.html" NAME="Iframe2">IFRAME2</IFRAME>
+</BODY>
+</HTML>
diff --git a/dom/tests/mochitest/dom-level2-html/files/iframe2.xhtml b/dom/tests/mochitest/dom-level2-html/files/iframe2.xhtml
new file mode 100644
index 000000000..a1b101139
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/iframe2.xhtml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - IFRAME2</title>
+<!-- required by frame contents -->
+<script type="text/javascript">function loadComplete() { }</script>
+</head>
+<body onload="parent.loadComplete()">
+<iframe id="Iframe1" name="Iframe1" src="iframe.html">IFRAME1</iframe>
+<iframe id="Iframe2" src="frame.html" name="Iframe2">IFRAME2</iframe>
+</body>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/iframe2.xml b/dom/tests/mochitest/dom-level2-html/files/iframe2.xml
new file mode 100644
index 000000000..a1b101139
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/iframe2.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - IFRAME2</title>
+<!-- required by frame contents -->
+<script type="text/javascript">function loadComplete() { }</script>
+</head>
+<body onload="parent.loadComplete()">
+<iframe id="Iframe1" name="Iframe1" src="iframe.html">IFRAME1</iframe>
+<iframe id="Iframe2" src="frame.html" name="Iframe2">IFRAME2</iframe>
+</body>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/img.html b/dom/tests/mochitest/dom-level2-html/files/img.html
new file mode 100644
index 000000000..b4e8b270e
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/img.html
@@ -0,0 +1,13 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - IMG</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<P>
+<IMG ID="IMAGE-1" NAME="IMAGE-1" SRC="./pix/dts.gif" ALIGN="middle" ALT="DTS IMAGE LOGO" BORDER="0" HEIGHT="47" HSPACE="4" LONGDESC="./files/desc.html" USEMAP="#DTS-MAP" VSPACE="10" WIDTH="115"/>
+</P>
+</BODY>
+</HTML>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/img.xhtml b/dom/tests/mochitest/dom-level2-html/files/img.xhtml
new file mode 100644
index 000000000..40e3695b9
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/img.xhtml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - IMG</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>
+<img id="IMAGE-1" name="IMAGE-1" src="./pix/dts.gif" align="middle" alt="DTS IMAGE LOGO" border="0" height="47" hspace="4" longdesc="./files/desc.html" usemap="#DTS-MAP" vspace="10" width="115"/>
+</p>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/img.xml b/dom/tests/mochitest/dom-level2-html/files/img.xml
new file mode 100644
index 000000000..40e3695b9
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/img.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - IMG</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>
+<img id="IMAGE-1" name="IMAGE-1" src="./pix/dts.gif" align="middle" alt="DTS IMAGE LOGO" border="0" height="47" hspace="4" longdesc="./files/desc.html" usemap="#DTS-MAP" vspace="10" width="115"/>
+</p>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/index.html b/dom/tests/mochitest/dom-level2-html/files/index.html
new file mode 100644
index 000000000..ee49e443c
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/index.html
@@ -0,0 +1,216 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Index of /2004/04/ecmascript/level2/html/files</title>
+ </head>
+ <body>
+<h1>Index of /2004/04/ecmascript/level2/html/files</h1>
+<table><tr><th><img src="/icons/blank.gif" alt="[ICO]" width="20" height="22" /></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr><tr><th colspan="5"><hr /></th></tr>
+<tr><td valign="top"><img src="/icons/back.gif" alt="[DIR]" width="20" height="22" /></td><td><a href="/2004/04/ecmascript/level2/html/">Parent Directory</a></td><td>&nbsp;</td><td align="right"> - </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="anchor.html">anchor.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">490 </td><td>NIST DOM HTML Test - Anchor</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="anchor.xhtml">anchor.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">530 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="anchor.xml">anchor.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">530 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="anchor2.html">anchor2.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">367 </td><td>NIST DOM HTML Test - Anchor</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="anchor2.xhtml">anchor2.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">367 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="anchor2.xml">anchor2.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">367 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="applet.html">applet.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">446 </td><td>NIST DOM HTML Test - Applet</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="applet.xhtml">applet.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">487 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="applet.xml">applet.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">487 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="applet2.html">applet2.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">432 </td><td>NIST DOM HTML Test - Applet</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="applet2.xhtml">applet2.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">473 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="applet2.xml">applet2.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">473 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="area.html">area.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">405 </td><td>NIST DOM HTML Test - Area</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="area.xhtml">area.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">448 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="area.xml">area.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">448 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="area2.html">area2.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">400 </td><td>NIST DOM HTML Test - Area</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="area2.xhtml">area2.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">401 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="area2.xml">area2.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">401 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="base.html">base.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">292 </td><td>NIST DOM HTML Test - Base</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="base.xhtml">base.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">321 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="base.xml">base.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">321 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="base2.html">base2.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">544 </td><td>NIST DOM HTML Test - Base2</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="base2.xhtml">base2.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">542 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="base2.xml">base2.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">542 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="body.html">body.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">379 </td><td>NIST DOM HTML Test - Body</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="body.xhtml">body.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">476 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="body.xml">body.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">476 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="br.html">br.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">274 </td><td>NIST DOM HTML Test - BR</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="br.xhtml">br.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">315 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="br.xml">br.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">315 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="button.html">button.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">550 </td><td>NIST DOM HTML Test - Button</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="button.xhtml">button.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">592 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="button.xml">button.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">592 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="collection.html">collection.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">2.1K</td><td>NIST DOM HTML Test - SELECT</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="collection.xhtml">collection.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">2.2K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="collection.xml">collection.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">2.2K</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="directory.html">directory.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">369 </td><td>NIST DOM HTML Test - Directory</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="directory.xhtml">directory.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">409 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="directory.xml">directory.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">409 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="div.html">div.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">351 </td><td>NIST DOM HTML Test - DIV</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="div.xhtml">div.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">391 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="div.xml">div.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">391 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="dl.html">dl.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">373 </td><td>NIST DOM HTML Test - DL</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="dl.xhtml">dl.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">413 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="dl.xml">dl.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">413 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="document.html">document.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">1.5K</td><td>NIST DOM HTML Test - DOCUMENT</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="document.xhtml">document.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">1.6K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="document.xml">document.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">1.6K</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="element.html">element.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">3.5K</td><td>NIST DOM HTML Test - Element</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="element.xhtml">element.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">3.5K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="element.xml">element.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">3.5K</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="fieldset.html">fieldset.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">505 </td><td>NIST DOM HTML Test - FieldSet</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="fieldset.xhtml">fieldset.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">545 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="fieldset.xml">fieldset.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">545 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="font.html">font.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">322 </td><td>NIST DOM HTML Test - Font</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="font.xhtml">font.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">366 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="font.xml">font.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">366 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="form.html">form.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">544 </td><td>NIST DOM HTML Test - FORM</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="form.xhtml">form.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">594 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="form.xml">form.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">594 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="form2.html">form2.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">613 </td><td>NIST DOM HTML Test - FORM</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="form2.xhtml">form2.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">611 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="form2.xml">form2.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">611 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="form3.html">form3.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">433 </td><td>FORM3</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="form3.xhtml">form3.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">489 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="form3.xml">form3.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">471 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="frame.html">frame.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">524 </td><td>NIST DOM HTML Test - FRAME</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="frame.xhtml">frame.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">522 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="frame.xml">frame.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">522 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="frame2.html">frame2.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">560 </td><td>NIST DOM HTML Test - FRAME2</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="frame2.xhtml">frame2.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">558 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="frame2.xml">frame2.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">518 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="frameset.html">frameset.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">403 </td><td>NIST DOM HTML Test - FRAMESET</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="frameset.xhtml">frameset.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">402 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="frameset.xml">frameset.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">402 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="heading.html">heading.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">483 </td><td>NIST DOM HTML Test - HEADING</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="heading.xhtml">heading.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">521 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="heading.xml">heading.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">521 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="hr.html">hr.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">309 </td><td>NIST DOM HTML Test - HR</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="hr.xhtml">hr.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">348 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="hr.xml">hr.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">348 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="html.html">html.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">321 </td><td>NIST DOM HTML Test - Html</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="html.xhtml">html.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">300 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="html.xml">html.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">300 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="iframe.html">iframe.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">431 </td><td>NIST DOM HTML Test - IFRAME</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="iframe.xhtml">iframe.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">471 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="iframe.xml">iframe.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">471 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="iframe2.html">iframe2.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">499 </td><td>NIST DOM HTML Test - IFRAME2</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="iframe2.xhtml">iframe2.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">539 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="iframe2.xml">iframe2.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">539 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="img.html">img.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">454 </td><td>NIST DOM HTML Test - IMG</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="img.xhtml">img.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">494 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="img.xml">img.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">494 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="input.html">input.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">1.7K</td><td>NIST DOM HTML Test - INPUT</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="input.xhtml">input.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">1.7K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="input.xml">input.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">1.7K</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="isindex.html">isindex.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">389 </td><td>NIST DOM HTML Test - ISINDEX</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="isindex.xhtml">isindex.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">430 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="isindex.xml">isindex.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">430 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="label.html">label.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">572 </td><td>NIST DOM HTML Test - LABEL</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="label.xhtml">label.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">612 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="label.xml">label.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">612 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="legend.html">legend.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">599 </td><td>NIST DOM HTML Test - LEGEND</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="legend.xhtml">legend.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">638 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="legend.xml">legend.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">638 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="li.html">li.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">401 </td><td>NIST DOM HTML Test - LI</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="li.xhtml">li.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">441 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="li.xml">li.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">441 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="link.html">link.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">492 </td><td>NIST DOM HTML Test - LINK</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="link.xhtml">link.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">535 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="link.xml">link.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">535 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="link2.html">link2.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">548 </td><td>NIST DOM HTML Test - LINK</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="link2.xhtml">link2.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">552 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="link2.xml">link2.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">552 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="map.html">map.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">479 </td><td>NIST DOM HTML Test - MAP</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="map.xhtml">map.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">523 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="map.xml">map.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">523 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="menu.html">menu.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">346 </td><td>NIST DOM HTML Test - MENU</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="menu.xhtml">menu.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">386 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="menu.xml">menu.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">386 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="meta.html">meta.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">283 </td><td>NIST DOM HTML Test - META</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="meta.xhtml">meta.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">393 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="meta.xml">meta.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">393 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="mod.html">mod.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">558 </td><td>NIST DOM HTML Test - MOD</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="mod.xhtml">mod.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">599 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="mod.xml">mod.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">599 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="object.html">object.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">669 </td><td>NIST DOM HTML Test - OBJECT</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="object.xhtml">object.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">709 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="object.xml">object.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">709 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="object2.html">object2.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">666 </td><td>NIST DOM HTML Test - OBJECT</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="object2.xhtml">object2.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">707 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="object2.xml">object2.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">707 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="olist.html">olist.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">502 </td><td>NIST DOM HTML Test - OLIST</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="olist.xhtml">olist.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">542 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="olist.xml">olist.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">542 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="optgroup.html">optgroup.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">587 </td><td>NIST DOM HTML Test - OPTGROUP</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="optgroup.xhtml">optgroup.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">628 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="optgroup.xml">optgroup.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">628 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="option.html">option.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">836 </td><td>NIST DOM HTML Test - OPTION</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="option.xhtml">option.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">858 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="option.xml">option.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">858 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="optionscollection.html">optionscollection.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">847 </td><td>NIST DOM HTML Test - OPTIONSCOLLECTION</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="optionscollection.xhtml">optionscollection.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">869 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="optionscollection.xml">optionscollection.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">869 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="paragraph.html">paragraph.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">284 </td><td>NIST DOM HTML Test - PARAGRAPH</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="paragraph.xhtml">paragraph.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">324 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="paragraph.xml">paragraph.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">324 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="param.html">param.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">343 </td><td>NIST DOM HTML Test - PARAM</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="param.xhtml">param.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">386 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="param.xml">param.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">386 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="pre.html">pre.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">549 </td><td>NIST DOM HTML Test - PRE</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="pre.xhtml">pre.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">565 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="pre.xml">pre.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">565 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="quote.html">quote.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">440 </td><td>NIST DOM HTML Test - QUOTE</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="quote.xhtml">quote.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">481 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="quote.xml">quote.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">481 </td></tr>
+<tr><td valign="top"><img src="/icons/image2.gif" alt="[IMG]" width="20" height="22" /></td><td><a href="right.png">right.png</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">137 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="script.html">script.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">359 </td><td>NIST DOM HTML Test - SCRIPT</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="script.xhtml">script.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">399 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="script.xml">script.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">399 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="select.html">select.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">1.0K</td><td>NIST DOM HTML Test - SELECT</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="select.xhtml">select.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">1.0K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="select.xml">select.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">1.0K</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="style.html">style.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">319 </td><td>NIST DOM HTML Test - STYLE</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="style.xhtml">style.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">356 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="style.xml">style.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">356 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="table.html">table.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">1.9K</td><td>NIST DOM HTML Test - TABLE</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="table.xhtml">table.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">1.9K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="table.xml">table.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">1.9K</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="table1.html">table1.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">336 </td><td>NIST DOM HTML Test - TABLE</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="table1.xhtml">table1.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">378 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="table1.xml">table1.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">378 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="tablecaption.html">tablecaption.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">435 </td><td>NIST DOM HTML Test - TABLECAPTION</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="tablecaption.xhtml">tablecaption.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">453 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="tablecaption.xml">tablecaption.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">453 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="tablecell.html">tablecell.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">909 </td><td>NIST DOM HTML Test - TABLECELL</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="tablecell.xhtml">tablecell.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">944 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="tablecell.xml">tablecell.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">944 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="tablecol.html">tablecol.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">629 </td><td>NIST DOM HTML Test - TABLECOL</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="tablecol.xhtml">tablecol.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">656 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="tablecol.xml">tablecol.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">656 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="tablerow.html">tablerow.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">1.7K</td><td>NIST DOM HTML Test - TABLEROW</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="tablerow.xhtml">tablerow.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">1.8K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="tablerow.xml">tablerow.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">1.8K</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="tablesection.html">tablesection.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">1.8K</td><td>NIST DOM HTML Test - TABLESECTION</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="tablesection.xhtml">tablesection.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">1.9K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="tablesection.xml">tablesection.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">1.9K</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="textarea.html">textarea.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">938 </td><td>NIST DOM HTML Test - TEXTAREA</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="textarea.xhtml">textarea.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">951 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="textarea.xml">textarea.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">951 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="title.html">title.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">266 </td><td>NIST DOM HTML Test - TITLE</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="title.xhtml">title.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">294 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="title.xml">title.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">294 </td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="ulist.html">ulist.html</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">619 </td><td>NIST DOM HTML Test - ULIST</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="ulist.xhtml">ulist.xhtml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">659 </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="ulist.xml">ulist.xml</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">659 </td></tr>
+<tr><td valign="top"><img src="/icons/image2.gif" alt="[IMG]" width="20" height="22" /></td><td><a href="w3c_main.png">w3c_main.png</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">5.8K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="xhtml-lat1.ent">xhtml-lat1.ent</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right"> 11K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="xhtml-special.ent">xhtml-special.ent</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right">4.0K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]" width="20" height="22" /></td><td><a href="xhtml-symbol.ent">xhtml-symbol.ent</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right"> 14K</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="xhtml1-frameset.dtd">xhtml1-frameset.dtd</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right"> 32K</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="xhtml1-strict.dtd">xhtml1-strict.dtd</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right"> 25K</td></tr>
+<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]" width="20" height="22" /></td><td><a href="xhtml1-transitional.dtd">xhtml1-transitional.dtd</a></td><td align="right">05-Apr-2004 14:39 </td><td align="right"> 31K</td></tr>
+<tr><th colspan="5"><hr /></th></tr>
+</table>
+</body></html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/input.html b/dom/tests/mochitest/dom-level2-html/files/input.html
new file mode 100644
index 000000000..c36e87d50
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/input.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - INPUT</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<TABLE CELLPADDING="15" BORDER="BORDER" SUMMARY="Table 1">
+<TR ALIGN="center">
+<TD VAlign="top">Under a FORM control
+<FORM ID="form1" ACTION="./files/getData.pl" METHOD="post">
+<TABLE BORDER="15" SUMMARY="Table 2">
+<TR>
+<TD>
+<LABEL ACCESSKEY="b" FOR="input1">Enter Your Password:</LABEL>
+</TD>
+<TD>
+<INPUT DIR="LTR" ID="input1" TABINDEX="8" VALUE="Password" TYPE="password" NAME="Password" SIZE="25" MAXLENGTH="5" ALT="Password entry" READONLY="READONLY"/>
+</TD>
+</TR>
+<TR>
+<TD>
+<INPUT TYPE="RADIO" NAME="Radio1" ACCESSKEY="c" VALUE="ReHire"/>ReHire
+</TD>
+</TR>
+<TR>
+<TD>
+<INPUT TYPE="RADIO" NAME="Radio2" VALUE="NewHire" TABINDEX="9" CHECKED="CHECKED"/>NewHire
+</TD>
+</TR>
+<TR>
+<TD>Hours available to work</TD>
+<TD>
+<INPUT TYPE="CHECKBOX" NAME="Check1" ALIGN="bottom" TABINDEX="10" VALUE="EarlyMornings" CHECKED="CHECKED"/>EarlyMornings
+<BR/>
+<INPUT ID="input5" TYPE="CHECKBOX" NAME="Check2" TABINDEX="11" VALUE="AfterNoon" ONCLICK="newId(this)"/>Afternoon
+<BR/>
+<INPUT TYPE="CHECKBOX" NAME="Check3" TABINDEX="12" VALUE="Evenings"/>Evenings
+<BR/>
+<INPUT TYPE="CHECKBOX" NAME="Check4" TABINDEX="13" VALUE="Closing" DISABLED="DISABLED"/>Closing
+<BR/>
+</TD>
+</TR>
+<TR>
+<TD COLSPAN="2">
+<INPUT TYPE="IMAGE" TABINDEX="14" NAME="SubmitImage" USEMAP="#submit-map" SRC="./pix/submit.gif"/>
+</TD>
+</TR>
+<TR>
+<TD COLSPAN="2">
+<INPUT TITLE="old_title" TYPE="FILE" NAME="FileControl" TABINDEX="15" ACCEPT="GIF,JPEG" ONSELECT="newTitle(this)"/>
+</TD>
+</TR>
+</TABLE>
+</FORM>
+</TD>
+</TR>
+</TABLE>
+</BODY>
+</HTML>
diff --git a/dom/tests/mochitest/dom-level2-html/files/input.xhtml b/dom/tests/mochitest/dom-level2-html/files/input.xhtml
new file mode 100644
index 000000000..b7704ad10
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/input.xhtml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - INPUT</title>
+</head>
+<body onload="parent.loadComplete()">
+<table cellpadding="15" border="border" summary="Table 1">
+<tr align="center">
+<td valign="top">Under a FORM control
+<form id="form1" action="./files/getData.pl" method="post">
+<table border="15" summary="Table 2">
+<tr>
+<td>
+<label accesskey="b" for="input1">Enter Your Password:</label>
+</td>
+<td>
+<input dir="ltr" id="input1" tabindex="8" value="Password" type="password" name="Password" size="25" maxlength="5" alt="Password entry" readonly="readonly"/>
+</td>
+</tr>
+<tr>
+<td>
+<input type="radio" name="Radio1" accesskey="c" value="ReHire"/>
+</td>
+</tr>
+<tr>
+<td>
+<input type="radio" name="Radio2" value="NewHire" tabindex="9" checked="checked"/>
+</td>
+</tr>
+<tr>
+<td>Hours available to work</td>
+<td>
+<input type="checkbox" name="Check1" align="bottom" tabindex="10" value="EarlyMornings" checked="checked"/>
+<br/>
+<input id="input5" type="checkbox" name="Check2" tabindex="11" value="AfterNoon" onclick="newId(this)"/>
+<br/>
+<input type="checkbox" name="Check3" tabindex="12" value="Evenings"/>
+<br/>
+<input type="checkbox" name="Check4" tabindex="13" value="Closing" disabled="disabled"/>
+<br/>
+</td>
+</tr>
+<tr>
+<td colspan="2">
+<input type="image" tabindex="14" name="SubmitImage" usemap="#submit-map" src="./pix/submit.gif"/>
+</td>
+</tr>
+<tr>
+<td colspan="2">
+<input title="old_title" type="file" name="FileControl" tabindex="15" accept="GIF,JPEG" onselect="newTitle(this)"/>
+</td>
+</tr>
+</table>
+</form>
+</td>
+</tr>
+</table>
+</body>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/input.xml b/dom/tests/mochitest/dom-level2-html/files/input.xml
new file mode 100644
index 000000000..b7704ad10
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/input.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - INPUT</title>
+</head>
+<body onload="parent.loadComplete()">
+<table cellpadding="15" border="border" summary="Table 1">
+<tr align="center">
+<td valign="top">Under a FORM control
+<form id="form1" action="./files/getData.pl" method="post">
+<table border="15" summary="Table 2">
+<tr>
+<td>
+<label accesskey="b" for="input1">Enter Your Password:</label>
+</td>
+<td>
+<input dir="ltr" id="input1" tabindex="8" value="Password" type="password" name="Password" size="25" maxlength="5" alt="Password entry" readonly="readonly"/>
+</td>
+</tr>
+<tr>
+<td>
+<input type="radio" name="Radio1" accesskey="c" value="ReHire"/>
+</td>
+</tr>
+<tr>
+<td>
+<input type="radio" name="Radio2" value="NewHire" tabindex="9" checked="checked"/>
+</td>
+</tr>
+<tr>
+<td>Hours available to work</td>
+<td>
+<input type="checkbox" name="Check1" align="bottom" tabindex="10" value="EarlyMornings" checked="checked"/>
+<br/>
+<input id="input5" type="checkbox" name="Check2" tabindex="11" value="AfterNoon" onclick="newId(this)"/>
+<br/>
+<input type="checkbox" name="Check3" tabindex="12" value="Evenings"/>
+<br/>
+<input type="checkbox" name="Check4" tabindex="13" value="Closing" disabled="disabled"/>
+<br/>
+</td>
+</tr>
+<tr>
+<td colspan="2">
+<input type="image" tabindex="14" name="SubmitImage" usemap="#submit-map" src="./pix/submit.gif"/>
+</td>
+</tr>
+<tr>
+<td colspan="2">
+<input title="old_title" type="file" name="FileControl" tabindex="15" accept="GIF,JPEG" onselect="newTitle(this)"/>
+</td>
+</tr>
+</table>
+</form>
+</td>
+</tr>
+</table>
+</body>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/isindex.html b/dom/tests/mochitest/dom-level2-html/files/isindex.html
new file mode 100644
index 000000000..0fd50ceae
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/isindex.html
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - ISINDEX</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<FORM ID="form1" ACTION="./files/getData.pl" METHOD="post">
+<ISINDEX PROMPT="New Employee: ">
+</FORM>
+<ISINDEX PROMPT="Old Employee: ">
+</BODY>
+</HTML>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/isindex.xhtml b/dom/tests/mochitest/dom-level2-html/files/isindex.xhtml
new file mode 100644
index 000000000..a48d9a585
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/isindex.xhtml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - ISINDEX</title>
+</head>
+<body onload="parent.loadComplete()">
+<form id="form1" action="./files/getData.pl" method="post">
+<isindex prompt="New Employee: "/>
+</form>
+<isindex prompt="Old Employee: "/>
+</body>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/isindex.xml b/dom/tests/mochitest/dom-level2-html/files/isindex.xml
new file mode 100644
index 000000000..a48d9a585
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/isindex.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - ISINDEX</title>
+</head>
+<body onload="parent.loadComplete()">
+<form id="form1" action="./files/getData.pl" method="post">
+<isindex prompt="New Employee: "/>
+</form>
+<isindex prompt="Old Employee: "/>
+</body>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/label.html b/dom/tests/mochitest/dom-level2-html/files/label.html
new file mode 100644
index 000000000..d0abc044b
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/label.html
@@ -0,0 +1,21 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - LABEL</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<FORM ID="form1" ACTION="./files/getData.pl" METHOD="post">
+<P>
+<LABEL ACCESSKEY="b" FOR="input1">Enter Your First Password:</LABEL>
+<INPUT ID="input1" TYPE="password" NAME="Password1"/>
+</P>
+</FORM>
+<P>
+<LABEL ACCESSKEY="c" FOR="input2">Enter Your Second Password:</LABEL>
+<INPUT ID="input2" TYPE="password" NAME="Password2"/>
+</P>
+</BODY>
+</HTML>
+
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/label.xhtml b/dom/tests/mochitest/dom-level2-html/files/label.xhtml
new file mode 100644
index 000000000..902584fde
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/label.xhtml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - LABEL</title>
+</head>
+<body onload="parent.loadComplete()">
+<form id="form1" action="./files/getData.pl" method="post">
+<p>
+<label accesskey="b" for="input1">Enter Your First Password:</label>
+<input id="input1" type="password" name="Password1"/>
+</p>
+</form>
+<p>
+<label accesskey="c" for="input2">Enter Your Second Password:</label>
+<input id="input2" type="password" name="Password2"/>
+</p>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/label.xml b/dom/tests/mochitest/dom-level2-html/files/label.xml
new file mode 100644
index 000000000..902584fde
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/label.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - LABEL</title>
+</head>
+<body onload="parent.loadComplete()">
+<form id="form1" action="./files/getData.pl" method="post">
+<p>
+<label accesskey="b" for="input1">Enter Your First Password:</label>
+<input id="input1" type="password" name="Password1"/>
+</p>
+</form>
+<p>
+<label accesskey="c" for="input2">Enter Your Second Password:</label>
+<input id="input2" type="password" name="Password2"/>
+</p>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/legend.html b/dom/tests/mochitest/dom-level2-html/files/legend.html
new file mode 100644
index 000000000..53160eeaf
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/legend.html
@@ -0,0 +1,22 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - LEGEND</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<FORM ID="form1" ACTION="./files/getData.pl" METHOD="post">
+<FIELDSET>
+<LEGEND ACCESSKEY="b" ALIGN="top">Enter Password1:</LEGEND>
+<INPUT ID="input1" TYPE="password" NAME="Password1"/>
+</FIELDSET>
+</FORM>
+<FIELDSET>
+<LEGEND ACCESSKEY="c" ALIGN="bottom">Enter Password2:</LEGEND>
+<INPUT ID="input2" TYPE="password" NAME="Password2"/>
+</FIELDSET>
+</BODY>
+</HTML>
+
+
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/legend.xhtml b/dom/tests/mochitest/dom-level2-html/files/legend.xhtml
new file mode 100644
index 000000000..c95e6852a
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/legend.xhtml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - LEGEND</title>
+</head>
+<body onload="parent.loadComplete()">
+<form id="form1" action="./files/getData.pl" method="post">
+<fieldset>
+<legend accesskey="b" align="top">Enter Password1:</legend>
+<input id="input1" type="password" name="Password1"/>
+</fieldset>
+</form>
+<fieldset>
+<legend accesskey="c" align="bottom">Enter Password2:</legend>
+<input id="input2" type="password" name="Password2"/>
+</fieldset>
+</body>
+</html>
+
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/legend.xml b/dom/tests/mochitest/dom-level2-html/files/legend.xml
new file mode 100644
index 000000000..c95e6852a
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/legend.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - LEGEND</title>
+</head>
+<body onload="parent.loadComplete()">
+<form id="form1" action="./files/getData.pl" method="post">
+<fieldset>
+<legend accesskey="b" align="top">Enter Password1:</legend>
+<input id="input1" type="password" name="Password1"/>
+</fieldset>
+</form>
+<fieldset>
+<legend accesskey="c" align="bottom">Enter Password2:</legend>
+<input id="input2" type="password" name="Password2"/>
+</fieldset>
+</body>
+</html>
+
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/li.html b/dom/tests/mochitest/dom-level2-html/files/li.html
new file mode 100644
index 000000000..0c97b4c92
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/li.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - LI</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<OL>
+<LI TYPE="square" VALUE="2">EMP0001
+<UL>
+<LI>Margaret Martin
+<DL>
+<DD>Accountant</DD>
+<DD>56,000</DD>
+<DD>Female</DD>
+</DL>
+</LI>
+</UL>
+</LI>
+</OL>
+</BODY>
+</HTML>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/li.xhtml b/dom/tests/mochitest/dom-level2-html/files/li.xhtml
new file mode 100644
index 000000000..79af81112
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/li.xhtml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - LI</title>
+</head>
+<body onload="parent.loadComplete()">
+<ol>
+<li type="square" value="2">EMP0001
+<ul>
+<li>Margaret Martin
+<dl>
+<dd>Accountant</dd>
+<dd>56,000</dd>
+<dd>Female</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ol>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/li.xml b/dom/tests/mochitest/dom-level2-html/files/li.xml
new file mode 100644
index 000000000..79af81112
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/li.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - LI</title>
+</head>
+<body onload="parent.loadComplete()">
+<ol>
+<li type="square" value="2">EMP0001
+<ul>
+<li>Margaret Martin
+<dl>
+<dd>Accountant</dd>
+<dd>56,000</dd>
+<dd>Female</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ol>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/link.html b/dom/tests/mochitest/dom-level2-html/files/link.html
new file mode 100644
index 000000000..2d4c082b4
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/link.html
@@ -0,0 +1,15 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - LINK</TITLE>
+<LINK CHARSET="Latin-1" HREF="./files/glossary.html" HREFLANG="en" MEDIA="screen" REL="Glossary" TYPE="text/html">
+<LINK CHARSET="Latin-1" HREF="./files/style1.css" HREFLANG="en" MEDIA="screen" REV="stylesheet" TYPE="text/css">
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<P>
+<BR>
+</P>
+</BODY>
+</HTML>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/link.xhtml b/dom/tests/mochitest/dom-level2-html/files/link.xhtml
new file mode 100644
index 000000000..5a0f18c24
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/link.xhtml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - LINK</title>
+<link charset="Latin-1" href="./files/glossary.html" hreflang="en" media="screen" rel="Glossary" type="text/html"/>
+<link charset="Latin-1" href="./files/style1.css" hreflang="en" media="screen" rev="stylesheet" type="text/css"/>
+</head>
+<body onload="parent.loadComplete()">
+<p>
+<br/>
+</p>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/link.xml b/dom/tests/mochitest/dom-level2-html/files/link.xml
new file mode 100644
index 000000000..5a0f18c24
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/link.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - LINK</title>
+<link charset="Latin-1" href="./files/glossary.html" hreflang="en" media="screen" rel="Glossary" type="text/html"/>
+<link charset="Latin-1" href="./files/style1.css" hreflang="en" media="screen" rev="stylesheet" type="text/css"/>
+</head>
+<body onload="parent.loadComplete()">
+<p>
+<br/>
+</p>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/link2.html b/dom/tests/mochitest/dom-level2-html/files/link2.html
new file mode 100644
index 000000000..12fac9daa
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/link2.html
@@ -0,0 +1,15 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - LINK</TITLE>
+<LINK CHARSET="Latin-1" TARGET="dynamic" HREF="./files/glossary.html" HREFLANG="en" MEDIA="screen" REL="Glossary" TYPE="text/html">
+<LINK CHARSET="Latin-1" HREF="./files/style1.css" HREFLANG="en" MEDIA="screen" REV="stylesheet" TYPE="text/css">
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<P>
+<BR>
+</P>
+</BODY>
+</HTML>
diff --git a/dom/tests/mochitest/dom-level2-html/files/link2.xhtml b/dom/tests/mochitest/dom-level2-html/files/link2.xhtml
new file mode 100644
index 000000000..95c80048f
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/link2.xhtml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - LINK</title>
+<link charset="Latin-1" target="dynamic" href="./files/glossary.html" hreflang="en" media="screen" rel="Glossary" type="text/html"/>
+<link charset="Latin-1" href="./files/style1.css" hreflang="en" media="screen" rev="stylesheet" type="text/css"/>
+</head>
+<body onload="parent.loadComplete()">
+<p>
+<br/>
+</p>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/link2.xml b/dom/tests/mochitest/dom-level2-html/files/link2.xml
new file mode 100644
index 000000000..95c80048f
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/link2.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - LINK</title>
+<link charset="Latin-1" target="dynamic" href="./files/glossary.html" hreflang="en" media="screen" rel="Glossary" type="text/html"/>
+<link charset="Latin-1" href="./files/style1.css" hreflang="en" media="screen" rev="stylesheet" type="text/css"/>
+</head>
+<body onload="parent.loadComplete()">
+<p>
+<br/>
+</p>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/map.html b/dom/tests/mochitest/dom-level2-html/files/map.html
new file mode 100644
index 000000000..a636fa589
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/map.html
@@ -0,0 +1,16 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - MAP</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<P>
+<MAP NAME="mapid" ID="mapid">
+<AREA HREF="./files/dletter1.html" TITLE="Domain1" ALT="Domain1">
+<AREA HREF="./files/dletter2.html" TITLE="Domain2" ALT="Domain2">
+<AREA HREF="./files/dletter3.html" TITLE="Domain3" ALT="Domain3">
+</MAP>
+</P>
+</BODY>
+</HTML>
diff --git a/dom/tests/mochitest/dom-level2-html/files/map.xhtml b/dom/tests/mochitest/dom-level2-html/files/map.xhtml
new file mode 100644
index 000000000..f61a2adb9
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/map.xhtml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - MAP</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>
+<map name="mapid" id="mapid">
+<area href="./files/dletter1.html" title="Domain1" alt="Domain1"/>
+<area href="./files/dletter2.html" title="Domain2" alt="Domain2"/>
+<area href="./files/dletter3.html" title="Domain3" alt="Domain3"/>
+</map>
+</p>
+</body>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/map.xml b/dom/tests/mochitest/dom-level2-html/files/map.xml
new file mode 100644
index 000000000..f61a2adb9
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/map.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - MAP</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>
+<map name="mapid" id="mapid">
+<area href="./files/dletter1.html" title="Domain1" alt="Domain1"/>
+<area href="./files/dletter2.html" title="Domain2" alt="Domain2"/>
+<area href="./files/dletter3.html" title="Domain3" alt="Domain3"/>
+</map>
+</p>
+</body>
+</html>
diff --git a/dom/tests/mochitest/dom-level2-html/files/menu.html b/dom/tests/mochitest/dom-level2-html/files/menu.html
new file mode 100644
index 000000000..e07204f1d
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/menu.html
@@ -0,0 +1,15 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - MENU</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<MENU COMPACT="COMPACT">
+<LI>Interview</LI>
+<LI>Paperwork</LI>
+<LI>Give start date</LI>
+</MENU>
+</BODY>
+</HTML>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/menu.xhtml b/dom/tests/mochitest/dom-level2-html/files/menu.xhtml
new file mode 100644
index 000000000..9f020ff8b
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/menu.xhtml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - MENU</title>
+</head>
+<body onload="parent.loadComplete()">
+<menu compact="compact">
+<li>Interview</li>
+<li>Paperwork</li>
+<li>Give start date</li>
+</menu>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/menu.xml b/dom/tests/mochitest/dom-level2-html/files/menu.xml
new file mode 100644
index 000000000..9f020ff8b
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/menu.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - MENU</title>
+</head>
+<body onload="parent.loadComplete()">
+<menu compact="compact">
+<li>Interview</li>
+<li>Paperwork</li>
+<li>Give start date</li>
+</menu>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/meta.html b/dom/tests/mochitest/dom-level2-html/files/meta.html
new file mode 100644
index 000000000..e88fe8fc1
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/meta.html
@@ -0,0 +1,13 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<HTML>
+<HEAD>
+<META NAME="Meta-Name" HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8" SCHEME="NIST">
+<TITLE>NIST DOM HTML Test - META</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<P>
+<BR/>
+</P>
+</BODY>
+</HTML>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/meta.xhtml b/dom/tests/mochitest/dom-level2-html/files/meta.xhtml
new file mode 100644
index 000000000..bf89bbeea
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/meta.xhtml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<meta name="Meta-Name" http-equiv="Content-Type" content="text/html; CHARSET=utf-8" scheme="NIST"/>
+<title>NIST DOM HTML Test - META</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>
+<br/>
+</p>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/meta.xml b/dom/tests/mochitest/dom-level2-html/files/meta.xml
new file mode 100644
index 000000000..bf89bbeea
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/meta.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<meta name="Meta-Name" http-equiv="Content-Type" content="text/html; CHARSET=utf-8" scheme="NIST"/>
+<title>NIST DOM HTML Test - META</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>
+<br/>
+</p>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/mod.html b/dom/tests/mochitest/dom-level2-html/files/mod.html
new file mode 100644
index 000000000..1ab79696d
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/mod.html
@@ -0,0 +1,15 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - MOD</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<P>
+<INS CITE="./files/ins-reasons.html" DATETIME="January 1, 2002">The INS element is used to indicate that a section of a document had been inserted.</INS>
+<BR/>
+<DEL CITE="./files/del-reasons.html" DATETIME="January 2, 2002">The DEL element is used to indicate that a section of a document had been removed.</DEL>
+</P>
+</BODY>
+</HTML>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/mod.xhtml b/dom/tests/mochitest/dom-level2-html/files/mod.xhtml
new file mode 100644
index 000000000..b81432d52
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/mod.xhtml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - MOD</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>
+<ins cite="./files/ins-reasons.html" datetime="January 1, 2002">The INS element is used to indicate that a section of a document had been inserted.</ins>
+<br/>
+<del cite="./files/del-reasons.html" datetime="January 2, 2002">The DEL element is used to indicate that a section of a document had been removed.</del>
+</p>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/mod.xml b/dom/tests/mochitest/dom-level2-html/files/mod.xml
new file mode 100644
index 000000000..b81432d52
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/mod.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - MOD</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>
+<ins cite="./files/ins-reasons.html" datetime="January 1, 2002">The INS element is used to indicate that a section of a document had been inserted.</ins>
+<br/>
+<del cite="./files/del-reasons.html" datetime="January 2, 2002">The DEL element is used to indicate that a section of a document had been removed.</del>
+</p>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/object.html b/dom/tests/mochitest/dom-level2-html/files/object.html
new file mode 100644
index 000000000..31da31cdc
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/object.html
@@ -0,0 +1,18 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - OBJECT</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<P>
+<OBJECT ALIGN="middle" ARCHIVE="" BORDER="0" CODEBASE="http://example.org:80" DATA="./pix/logo.gif" HEIGHT="60" HSPACE="0" STANDBY="Loading Image ..." TABINDEX="0" TYPE="image/gif" USEMAP="#DivLogo-map" VSPACE="0" WIDTH="550"></OBJECT>
+</P>
+<FORM NAME="OBJECT2" ACTION="./files/getData.pl" METHOD="post">
+<P>
+<OBJECT DECLARE="declare" NAME="OBJECT2" CODETYPE="image/gif"></OBJECT>
+</P>
+</FORM>
+</BODY>
+</HTML>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/object.xhtml b/dom/tests/mochitest/dom-level2-html/files/object.xhtml
new file mode 100644
index 000000000..824f7fc60
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/object.xhtml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - OBJECT</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>
+<object align="middle" archive="" border="0" codebase="http://xw2k.sdct.itl.nist.gov/brady/dom/" data="./pix/logo.gif" height="60" hspace="0" standby="Loading Image ..." tabindex="0" type="image/gif" usemap="#DivLogo-map" vspace="0" width="550"></object>
+</p>
+<form name="OBJECT2" action="./files/getData.pl" method="post">
+<p>
+<object declare="declare" name="OBJECT2" codetype="image/gif"></object>
+</p>
+</form>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/object.xml b/dom/tests/mochitest/dom-level2-html/files/object.xml
new file mode 100644
index 000000000..824f7fc60
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/object.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - OBJECT</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>
+<object align="middle" archive="" border="0" codebase="http://xw2k.sdct.itl.nist.gov/brady/dom/" data="./pix/logo.gif" height="60" hspace="0" standby="Loading Image ..." tabindex="0" type="image/gif" usemap="#DivLogo-map" vspace="0" width="550"></object>
+</p>
+<form name="OBJECT2" action="./files/getData.pl" method="post">
+<p>
+<object declare="declare" name="OBJECT2" codetype="image/gif"></object>
+</p>
+</form>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/object2.html b/dom/tests/mochitest/dom-level2-html/files/object2.html
new file mode 100644
index 000000000..44680cd72
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/object2.html
@@ -0,0 +1,17 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - OBJECT</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<P>
+<OBJECT ALIGN="middle" ARCHIVE="" BORDER="0" CODEBASE="http://example.org:80" DATA="./pix/logo.gif" HEIGHT="60" HSPACE="0" STANDBY="Loading Image ..." TABINDEX="0" TYPE="image/gif" USEMAP="#DivLogo-map" VSPACE="0" WIDTH="550"></OBJECT>
+</P>
+<FORM ID="object2" ACTION="./files/getData.pl" METHOD="post">
+<P>
+<OBJECT DECLARE="declare" NAME="OBJECT2" CODETYPE="image/gif"></OBJECT>
+</P>
+</FORM>
+</BODY>
+</HTML>
diff --git a/dom/tests/mochitest/dom-level2-html/files/object2.xhtml b/dom/tests/mochitest/dom-level2-html/files/object2.xhtml
new file mode 100644
index 000000000..a41e03dd8
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/object2.xhtml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - OBJECT</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>
+<object align="middle" archive="" border="0" codebase="http://xw2k.sdct.itl.nist.gov/brady/dom/" data="./pix/logo.gif" height="60" hspace="0" standby="Loading Image ..." tabindex="0" type="image/gif" usemap="#DivLogo-map" vspace="0" width="550"></object>
+</p>
+<form id="object2" action="./files/getData.pl" method="post">
+<p>
+<object declare="declare" name="OBJECT2" codetype="image/gif"></object>
+</p>
+</form>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/object2.xml b/dom/tests/mochitest/dom-level2-html/files/object2.xml
new file mode 100644
index 000000000..a41e03dd8
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/object2.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - OBJECT</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>
+<object align="middle" archive="" border="0" codebase="http://xw2k.sdct.itl.nist.gov/brady/dom/" data="./pix/logo.gif" height="60" hspace="0" standby="Loading Image ..." tabindex="0" type="image/gif" usemap="#DivLogo-map" vspace="0" width="550"></object>
+</p>
+<form id="object2" action="./files/getData.pl" method="post">
+<p>
+<object declare="declare" name="OBJECT2" codetype="image/gif"></object>
+</p>
+</form>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/olist.html b/dom/tests/mochitest/dom-level2-html/files/olist.html
new file mode 100644
index 000000000..f69c9ded9
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/olist.html
@@ -0,0 +1,32 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - OLIST</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<OL COMPACT="compact" START="1" TYPE="1">
+<LI>EMP0001
+<UL>
+<LI>Margaret Martin
+<DL>
+<DD>Accountant</DD>
+<DD>56,000</DD>
+</DL>
+</LI>
+</UL>
+</LI>
+<LI>EMP0002
+<UL>
+<LI>Martha Raynolds
+<DL>
+<DD>Secretary</DD>
+<DD>35,000</DD>
+</DL>
+</LI>
+</UL>
+</LI>
+</OL>
+</BODY>
+</HTML>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/olist.xhtml b/dom/tests/mochitest/dom-level2-html/files/olist.xhtml
new file mode 100644
index 000000000..cbe1ab6ad
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/olist.xhtml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - OLIST</title>
+</head>
+<body onload="parent.loadComplete()">
+<ol compact="compact" start="1" type="1">
+<li>EMP0001
+<ul>
+<li>Margaret Martin
+<dl>
+<dd>Accountant</dd>
+<dd>56,000</dd>
+</dl>
+</li>
+</ul>
+</li>
+<li>EMP0002
+<ul>
+<li>Martha Raynolds
+<dl>
+<dd>Secretary</dd>
+<dd>35,000</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ol>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/olist.xml b/dom/tests/mochitest/dom-level2-html/files/olist.xml
new file mode 100644
index 000000000..cbe1ab6ad
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/olist.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - OLIST</title>
+</head>
+<body onload="parent.loadComplete()">
+<ol compact="compact" start="1" type="1">
+<li>EMP0001
+<ul>
+<li>Margaret Martin
+<dl>
+<dd>Accountant</dd>
+<dd>56,000</dd>
+</dl>
+</li>
+</ul>
+</li>
+<li>EMP0002
+<ul>
+<li>Martha Raynolds
+<dl>
+<dd>Secretary</dd>
+<dd>35,000</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ol>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/optgroup.html b/dom/tests/mochitest/dom-level2-html/files/optgroup.html
new file mode 100644
index 000000000..a354af806
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/optgroup.html
@@ -0,0 +1,25 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - OPTGROUP</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<FORM ID="Form1" ACTION="test.pl" METHOD="post">
+<P>
+<SELECT NAME="select2">
+<OPTGROUP LABEL="Regular Employees">
+<OPTION>EMP0001</OPTION>
+<OPTION>EMP0002</OPTION>
+<OPTION>EMP0003A</OPTION>
+</OPTGROUP>
+<OPTGROUP DISABLED="disabled" LABEL="Temporary Employees">
+<OPTION>EMP0004</OPTION>
+<OPTION>EMP0005</OPTION>
+</OPTGROUP>
+</SELECT>
+</P>
+</FORM>
+</BODY>
+</HTML>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/optgroup.xhtml b/dom/tests/mochitest/dom-level2-html/files/optgroup.xhtml
new file mode 100644
index 000000000..b421ecabb
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/optgroup.xhtml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - OPTGROUP</title>
+</head>
+<body onload="parent.loadComplete()">
+<form id="Form1" action="test.pl" method="post">
+<p>
+<select name="select2">
+<optgroup label="Regular Employees">
+<option>EMP0001</option>
+<option>EMP0002</option>
+<option>EMP0003A</option>
+</optgroup>
+<optgroup disabled="disabled" label="Temporary Employees">
+<option>EMP0004</option>
+<option>EMP0005</option>
+</optgroup>
+</select>
+</p>
+</form>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/optgroup.xml b/dom/tests/mochitest/dom-level2-html/files/optgroup.xml
new file mode 100644
index 000000000..b421ecabb
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/optgroup.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - OPTGROUP</title>
+</head>
+<body onload="parent.loadComplete()">
+<form id="Form1" action="test.pl" method="post">
+<p>
+<select name="select2">
+<optgroup label="Regular Employees">
+<option>EMP0001</option>
+<option>EMP0002</option>
+<option>EMP0003A</option>
+</optgroup>
+<optgroup disabled="disabled" label="Temporary Employees">
+<option>EMP0004</option>
+<option>EMP0005</option>
+</optgroup>
+</select>
+</p>
+</form>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/option.html b/dom/tests/mochitest/dom-level2-html/files/option.html
new file mode 100644
index 000000000..83707c392
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/option.html
@@ -0,0 +1,36 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - OPTION</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<FORM ID="form1" NAME="form1" ACTION="./files/getData.pl" METHOD="post">
+<P>
+<SELECT ID="selectId" DIR="ltr" TABINDEX="7" NAME="select1" MULTIPLE="multiple" SIZE="1">
+<OPTION SELECTED="selected" value="10001">EMP10001</OPTION>
+<OPTION LABEL="l1">EMP10002</OPTION>
+<OPTION>EMP10003</OPTION>
+<OPTION>EMP10004</OPTION>
+<OPTION>EMP10005</OPTION>
+</SELECT>
+</P>
+</FORM>
+<P>
+<SELECT NAME="select2" disabled="disabled">
+<OPTION>EMP20001</OPTION>
+<OPTION>EMP20002</OPTION>
+<OPTION>EMP20003</OPTION>
+<OPTION>EMP20004</OPTION>
+<OPTION DISABLED="disabled">EMP20005</OPTION>
+</SELECT>
+</P>
+</BODY>
+</HTML>
+
+
+
+
+
+
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/option.xhtml b/dom/tests/mochitest/dom-level2-html/files/option.xhtml
new file mode 100644
index 000000000..8cf88d887
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/option.xhtml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - OPTION</title>
+</head>
+<body onload="parent.loadComplete()">
+<form id="form1" action="./files/getData.pl" method="post">
+<p>
+<select id="selectId" dir="ltr" tabindex="7" name="select1" multiple="multiple" size="1">
+<option selected="selected" value="10001">EMP10001</option>
+<option label="l1">EMP10002</option>
+<option>EMP10003</option>
+<option>EMP10004</option>
+<option>EMP10005</option>
+</select>
+</p>
+</form>
+<p>
+<select name="select2" disabled="disabled">
+<option>EMP20001</option>
+<option>EMP20002</option>
+<option>EMP20003</option>
+<option>EMP20004</option>
+<option disabled="disabled">EMP20005</option>
+</select>
+</p>
+</body>
+</html>
+
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/option.xml b/dom/tests/mochitest/dom-level2-html/files/option.xml
new file mode 100644
index 000000000..8cf88d887
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/option.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - OPTION</title>
+</head>
+<body onload="parent.loadComplete()">
+<form id="form1" action="./files/getData.pl" method="post">
+<p>
+<select id="selectId" dir="ltr" tabindex="7" name="select1" multiple="multiple" size="1">
+<option selected="selected" value="10001">EMP10001</option>
+<option label="l1">EMP10002</option>
+<option>EMP10003</option>
+<option>EMP10004</option>
+<option>EMP10005</option>
+</select>
+</p>
+</form>
+<p>
+<select name="select2" disabled="disabled">
+<option>EMP20001</option>
+<option>EMP20002</option>
+<option>EMP20003</option>
+<option>EMP20004</option>
+<option disabled="disabled">EMP20005</option>
+</select>
+</p>
+</body>
+</html>
+
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/optionscollection.html b/dom/tests/mochitest/dom-level2-html/files/optionscollection.html
new file mode 100644
index 000000000..d1e8743ea
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/optionscollection.html
@@ -0,0 +1,36 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - OPTIONSCOLLECTION</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<FORM ID="form1" NAME="form1" ACTION="./files/getData.pl" METHOD="post">
+<P>
+<SELECT ID="selectId" DIR="ltr" TABINDEX="7" NAME="select1" MULTIPLE="multiple" SIZE="1">
+<OPTION SELECTED="selected" value="10001">EMP10001</OPTION>
+<OPTION LABEL="l1">EMP10002</OPTION>
+<OPTION>EMP10003</OPTION>
+<OPTION>EMP10004</OPTION>
+<OPTION>EMP10005</OPTION>
+</SELECT>
+</P>
+</FORM>
+<P>
+<SELECT NAME="select2" disabled="disabled">
+<OPTION>EMP20001</OPTION>
+<OPTION>EMP20002</OPTION>
+<OPTION>EMP20003</OPTION>
+<OPTION>EMP20004</OPTION>
+<OPTION DISABLED="disabled">EMP20005</OPTION>
+</SELECT>
+</P>
+</BODY>
+</HTML>
+
+
+
+
+
+
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/optionscollection.xhtml b/dom/tests/mochitest/dom-level2-html/files/optionscollection.xhtml
new file mode 100644
index 000000000..3f0419420
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/optionscollection.xhtml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - OPTIONSCOLLECTION</title>
+</head>
+<body onload="parent.loadComplete()">
+<form id="form1" action="./files/getData.pl" method="post">
+<p>
+<select id="selectId" dir="ltr" tabindex="7" name="select1" multiple="multiple" size="1">
+<option selected="selected" value="10001">EMP10001</option>
+<option label="l1">EMP10002</option>
+<option>EMP10003</option>
+<option>EMP10004</option>
+<option>EMP10005</option>
+</select>
+</p>
+</form>
+<p>
+<select name="select2" disabled="disabled">
+<option>EMP20001</option>
+<option>EMP20002</option>
+<option>EMP20003</option>
+<option>EMP20004</option>
+<option disabled="disabled">EMP20005</option>
+</select>
+</p>
+</body>
+</html>
+
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/optionscollection.xml b/dom/tests/mochitest/dom-level2-html/files/optionscollection.xml
new file mode 100644
index 000000000..3f0419420
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/optionscollection.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - OPTIONSCOLLECTION</title>
+</head>
+<body onload="parent.loadComplete()">
+<form id="form1" action="./files/getData.pl" method="post">
+<p>
+<select id="selectId" dir="ltr" tabindex="7" name="select1" multiple="multiple" size="1">
+<option selected="selected" value="10001">EMP10001</option>
+<option label="l1">EMP10002</option>
+<option>EMP10003</option>
+<option>EMP10004</option>
+<option>EMP10005</option>
+</select>
+</p>
+</form>
+<p>
+<select name="select2" disabled="disabled">
+<option>EMP20001</option>
+<option>EMP20002</option>
+<option>EMP20003</option>
+<option>EMP20004</option>
+<option disabled="disabled">EMP20005</option>
+</select>
+</p>
+</body>
+</html>
+
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/paragraph.html b/dom/tests/mochitest/dom-level2-html/files/paragraph.html
new file mode 100644
index 000000000..0da483609
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/paragraph.html
@@ -0,0 +1,13 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - PARAGRAPH</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<P ALIGN="center">
+TEXT
+</P>
+</BODY>
+</HTML>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/paragraph.xhtml b/dom/tests/mochitest/dom-level2-html/files/paragraph.xhtml
new file mode 100644
index 000000000..2cdb1dfe1
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/paragraph.xhtml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - PARAGRAPH</title>
+</head>
+<body onload="parent.loadComplete()">
+<p align="center">
+TEXT
+</p>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/paragraph.xml b/dom/tests/mochitest/dom-level2-html/files/paragraph.xml
new file mode 100644
index 000000000..2cdb1dfe1
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/paragraph.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - PARAGRAPH</title>
+</head>
+<body onload="parent.loadComplete()">
+<p align="center">
+TEXT
+</p>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/param.html b/dom/tests/mochitest/dom-level2-html/files/param.html
new file mode 100644
index 000000000..290e62660
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/param.html
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - PARAM</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<P>
+<OBJECT>
+<PARAM NAME="image3" TYPE="image/gif" VALUE="image/file.gif" VALUETYPE="ref">
+</OBJECT>
+</P>
+</BODY>
+</HTML>
diff --git a/dom/tests/mochitest/dom-level2-html/files/param.xhtml b/dom/tests/mochitest/dom-level2-html/files/param.xhtml
new file mode 100644
index 000000000..3e916eb5a
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/param.xhtml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - PARAM</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>
+<object>
+<param name="image3" type="image/gif" value="image/file.gif" valuetype="ref"/>
+</object>
+</p>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/param.xml b/dom/tests/mochitest/dom-level2-html/files/param.xml
new file mode 100644
index 000000000..3e916eb5a
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/param.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - PARAM</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>
+<object>
+<param name="image3" type="image/gif" value="image/file.gif" valuetype="ref"/>
+</object>
+</p>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/pre.html b/dom/tests/mochitest/dom-level2-html/files/pre.html
new file mode 100644
index 000000000..2a402065e
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/pre.html
@@ -0,0 +1,17 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - PRE</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<PRE WIDTH="277">The PRE is used to indicate pre-formatted text. Visual agents may:
+
+ leave white space intact.
+ May render text with a fixed-pitch font.
+ May disable automatic word wrap.
+ Must not disable bidirectional processing.
+</PRE>
+</BODY>
+</HTML>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/pre.xhtml b/dom/tests/mochitest/dom-level2-html/files/pre.xhtml
new file mode 100644
index 000000000..69f652b14
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/pre.xhtml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - PRE</title>
+</head>
+<body onload="parent.loadComplete()">
+<pre>The PRE is used to indicate pre-formatted text. Visual agents may:
+
+ leave white space intact.
+ May render text with a fixed-pitch font.
+ May disable automatic word wrap.
+ Must not disable bidirectional processing.
+</pre>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/pre.xml b/dom/tests/mochitest/dom-level2-html/files/pre.xml
new file mode 100644
index 000000000..69f652b14
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/pre.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - PRE</title>
+</head>
+<body onload="parent.loadComplete()">
+<pre>The PRE is used to indicate pre-formatted text. Visual agents may:
+
+ leave white space intact.
+ May render text with a fixed-pitch font.
+ May disable automatic word wrap.
+ Must not disable bidirectional processing.
+</pre>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/quote.html b/dom/tests/mochitest/dom-level2-html/files/quote.html
new file mode 100644
index 000000000..6bad2b83f
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/quote.html
@@ -0,0 +1,16 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - QUOTE</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<P>
+<Q CITE="./files/Q.html">The Q element is intended for short quotations</Q>
+</P>
+<BLOCKQUOTE CITE="./files/BLOCKQUOTE.html">
+<P>The BLOCKQUOTE element is used for long quotations.</P>
+</BLOCKQUOTE>
+</BODY>
+</HTML>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/quote.xhtml b/dom/tests/mochitest/dom-level2-html/files/quote.xhtml
new file mode 100644
index 000000000..93e6c422f
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/quote.xhtml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - QUOTE</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>
+<q cite="./files/Q.html">The Q element is intended for short quotations</q>
+</p>
+<blockquote cite="./files/BLOCKQUOTE.html">
+<p>The BLOCKQUOTE element is used for long quotations.</p>
+</blockquote>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/quote.xml b/dom/tests/mochitest/dom-level2-html/files/quote.xml
new file mode 100644
index 000000000..93e6c422f
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/quote.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - QUOTE</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>
+<q cite="./files/Q.html">The Q element is intended for short quotations</q>
+</p>
+<blockquote cite="./files/BLOCKQUOTE.html">
+<p>The BLOCKQUOTE element is used for long quotations.</p>
+</blockquote>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/right.png b/dom/tests/mochitest/dom-level2-html/files/right.png
new file mode 100644
index 000000000..41ad0bdad
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/right.png
Binary files differ
diff --git a/dom/tests/mochitest/dom-level2-html/files/script.html b/dom/tests/mochitest/dom-level2-html/files/script.html
new file mode 100644
index 000000000..362860b39
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/script.html
@@ -0,0 +1,11 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - SCRIPT</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<SCRIPT CHARSET="US-ASCII" TYPE="text/javaScript" DEFER="defer" SRC="./files/script1.js">var a=2;</SCRIPT>
+</BODY>
+</HTML>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/script.xhtml b/dom/tests/mochitest/dom-level2-html/files/script.xhtml
new file mode 100644
index 000000000..ebdaa7246
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/script.xhtml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - SCRIPT</title>
+</head>
+<body onload="parent.loadComplete()">
+<script charset="US-ASCII" type="text/javaScript" defer="defer" src="./files/script1.js">var a=2;</script>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/script.xml b/dom/tests/mochitest/dom-level2-html/files/script.xml
new file mode 100644
index 000000000..ebdaa7246
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/script.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - SCRIPT</title>
+</head>
+<body onload="parent.loadComplete()">
+<script charset="US-ASCII" type="text/javaScript" defer="defer" src="./files/script1.js">var a=2;</script>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/select.html b/dom/tests/mochitest/dom-level2-html/files/select.html
new file mode 100644
index 000000000..78206240f
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/select.html
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - SELECT</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<FORM ID="form1" ACTION="./files/getData.pl" METHOD="post">
+<P>
+<SELECT ID="selectId" DIR="ltr" TABINDEX="7" NAME="select1" MULTIPLE="multiple" SIZE="1">
+<OPTION SELECTED="selected" value="EMP1">EMP10001</OPTION>
+<OPTION>EMP10002</OPTION>
+<OPTION>EMP10003</OPTION>
+<OPTION>EMP10004</OPTION>
+<OPTION>EMP10005</OPTION>
+</SELECT>
+</P>
+</FORM>
+<P>
+<SELECT NAME="select2">
+<OPTION>EMP20001</OPTION>
+<OPTION>EMP20002</OPTION>
+<OPTION>EMP20003</OPTION>
+<OPTION>EMP20004</OPTION>
+<OPTION>EMP20005</OPTION>
+</SELECT>
+</P>
+<P>
+<SELECT NAME="select3" DISABLED="disabled" TABINDEX="1">
+<OPTION>EMP30001</OPTION>
+<OPTION>EMP30002</OPTION>
+<OPTION>EMP30003</OPTION>
+<OPTION>EMP30004</OPTION>
+<OPTION>EMP30005</OPTION>
+</SELECT>
+</P>
+</BODY>
+</HTML>
+
+
+
+
+
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/select.xhtml b/dom/tests/mochitest/dom-level2-html/files/select.xhtml
new file mode 100644
index 000000000..491a74c6a
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/select.xhtml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - SELECT</title>
+</head>
+<body onload="parent.loadComplete()">
+<form id="form1" action="./files/getData.pl" method="post">
+<p>
+<select id="selectId" dir="ltr" tabindex="7" name="select1" multiple="multiple" size="1">
+<option selected="selected" value="EMP1">EMP10001</option>
+<option>EMP10002</option>
+<option>EMP10003</option>
+<option>EMP10004</option>
+<option>EMP10005</option>
+</select>
+</p>
+</form>
+<p>
+<select name="select2">
+<option>EMP20001</option>
+<option>EMP20002</option>
+<option>EMP20003</option>
+<option>EMP20004</option>
+<option>EMP20005</option>
+</select>
+</p>
+<p>
+<select name="select3" disabled="disabled" tabindex="1">
+<option>EMP30001</option>
+<option>EMP30002</option>
+<option>EMP30003</option>
+<option>EMP30004</option>
+<option>EMP30005</option>
+</select>
+</p>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/select.xml b/dom/tests/mochitest/dom-level2-html/files/select.xml
new file mode 100644
index 000000000..491a74c6a
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/select.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - SELECT</title>
+</head>
+<body onload="parent.loadComplete()">
+<form id="form1" action="./files/getData.pl" method="post">
+<p>
+<select id="selectId" dir="ltr" tabindex="7" name="select1" multiple="multiple" size="1">
+<option selected="selected" value="EMP1">EMP10001</option>
+<option>EMP10002</option>
+<option>EMP10003</option>
+<option>EMP10004</option>
+<option>EMP10005</option>
+</select>
+</p>
+</form>
+<p>
+<select name="select2">
+<option>EMP20001</option>
+<option>EMP20002</option>
+<option>EMP20003</option>
+<option>EMP20004</option>
+<option>EMP20005</option>
+</select>
+</p>
+<p>
+<select name="select3" disabled="disabled" tabindex="1">
+<option>EMP30001</option>
+<option>EMP30002</option>
+<option>EMP30003</option>
+<option>EMP30004</option>
+<option>EMP30005</option>
+</select>
+</p>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/style.html b/dom/tests/mochitest/dom-level2-html/files/style.html
new file mode 100644
index 000000000..c3df42432
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/style.html
@@ -0,0 +1,12 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<STYLE MEDIA="screen" type="text/css"></STYLE>
+<TITLE>NIST DOM HTML Test - STYLE</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<P>Hello, World.</P>
+</BODY>
+</HTML>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/style.xhtml b/dom/tests/mochitest/dom-level2-html/files/style.xhtml
new file mode 100644
index 000000000..b8477c1f6
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/style.xhtml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<style media="screen" type="text/css"></style>
+<title>NIST DOM HTML Test - BR</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>Hello, World.</p>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/style.xml b/dom/tests/mochitest/dom-level2-html/files/style.xml
new file mode 100644
index 000000000..b8477c1f6
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/style.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<style media="screen" type="text/css"></style>
+<title>NIST DOM HTML Test - BR</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>Hello, World.</p>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/table.html b/dom/tests/mochitest/dom-level2-html/files/table.html
new file mode 100644
index 000000000..b8f151e06
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/table.html
@@ -0,0 +1,78 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - TABLE</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<TABLE ALIGN="center" SUMMARY="Table 1">
+<TR>
+<TH>Id</TH>
+<TH>Name</TH>
+<TH>Position</TH>
+<TH>Salary</TH>
+</TR>
+</TABLE>
+<TABLE ID="table-1" ALIGN="center" BORDER="4" BGCOLOR="#ff0000" FRAME="border" CELLPADDING="2" CELLSPACING="2" SUMMARY="HTML Control Table" RULES="all" WIDTH="680">
+<CAPTION ALIGN="top">Table Caption</CAPTION>
+<THEAD ALIGN="center" VALIGN="middle">
+<TR ALIGN="center" BGCOLOR="#00FFFF" VALIGN="middle">
+<TH ID="header-1">Employee Id</TH>
+<TH ID="header-2" ABBR="maiden" AXIS="center" ALIGN="center" BGCOLOR="#00FFFF" COLSPAN="1" HEIGHT="50" NOWRAP="nowrap" ROWSPAN="1" SCOPE="col" HEADERS="header-1" VALIGN="middle" WIDTH="100">Employee Name</TH>
+<TH>Position</TH>
+<TH>Salary</TH>
+<TH>Gender</TH>
+<TH>Address</TH>
+</TR>
+</THEAD>
+<TFOOT ALIGN="center" VALIGN="middle">
+<TR>
+<TH>next page ...</TH>
+<TH>next page ...</TH>
+<TH>next page ...</TH>
+<TH>next page ...</TH>
+<TH>next page ...</TH>
+<TH>next page ...</TH>
+</TR>
+</TFOOT>
+<TBODY ALIGN="center" VALIGN="middle">
+<TR>
+<TD AXIS="center" ID="Table-3" ABBR="maiden2" ALIGN="center" BGCOLOR="#FF0000" COLSPAN="1" HEIGHT="50" NOWRAP="nowrap" ROWSPAN="1" SCOPE="col" HEADERS="header-2" VALIGN="middle" WIDTH="175">EMP0001</TD>
+<TD HEADERS="header-2">Margaret Martin</TD>
+<TD>Accountant</TD>
+<TD>56,000</TD>
+<TD>Female</TD>
+<TD>1230 North Ave. Dallas, Texas 98551</TD>
+</TR>
+<TR>
+<TD>EMP0002</TD>
+<TD>Martha Raynolds</TD>
+<TD>Secretary</TD>
+<TD>35,000</TD>
+<TD>Female</TD>
+<TD>1900 Dallas Road Dallas, Texas 98554</TD>
+</TR>
+</TBODY>
+</TABLE>
+<TABLE SUMMARY="Table 3">
+<TBODY>
+<TR>
+<TD>
+</TD>
+</TR>
+</TBODY>
+<TBODY>
+<TR>
+<TD>
+</TD>
+</TR>
+</TBODY>
+<TBODY>
+<TR>
+<TD>
+</TD>
+</TR>
+</TBODY>
+</TABLE>
+</BODY>
+</HTML>
diff --git a/dom/tests/mochitest/dom-level2-html/files/table.xhtml b/dom/tests/mochitest/dom-level2-html/files/table.xhtml
new file mode 100644
index 000000000..8300b90a1
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/table.xhtml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - TABLE</title>
+</head>
+<body onload="parent.loadComplete()">
+<table align="center" summary="Table 1">
+<tr>
+<th>Id</th>
+<th>Name</th>
+<th>Position</th>
+<th>Salary</th>
+</tr>
+</table>
+<table id="table-1" align="center" border="4" bgcolor="#ff0000" frame="border" cellpadding="2" cellspacing="2" summary="HTML Control Table" rules="all" width="680">
+<caption align="top">Table Caption</caption>
+<thead align="center" valign="middle">
+<tr align="center" bgcolor="#00FFFF" valign="middle">
+<th id="header-1">Employee Id</th>
+<th id="header-2" abbr="maiden" axis="center" align="center" bgcolor="#00FFFF" colspan="1" height="50" nowrap="nowrap" rowspan="1" scope="col" headers="header-1" valign="middle" width="100">Employee Name</th>
+<th>Position</th>
+<th>Salary</th>
+<th>Gender</th>
+<th>Address</th>
+</tr>
+</thead>
+<tfoot align="center" valign="middle">
+<tr>
+<th>next page ...</th>
+<th>next page ...</th>
+<th>next page ...</th>
+<th>next page ...</th>
+<th>next page ...</th>
+<th>next page ...</th>
+</tr>
+</tfoot>
+<tbody align="center" valign="middle">
+<tr>
+<td axis="center" id="Table-3" abbr="maiden2" align="center" bgcolor="#FF0000" colspan="1" height="50" nowrap="nowrap" rowspan="1" scope="col" headers="header-2" valign="middle" width="175">EMP0001</td>
+<td headers="header-2">Margaret Martin</td>
+<td>Accountant</td>
+<td>56,000</td>
+<td>Female</td>
+<td>1230 North Ave. Dallas, Texas 98551</td>
+</tr>
+<tr>
+<td>EMP0002</td>
+<td>Martha Raynolds</td>
+<td>Secretary</td>
+<td>35,000</td>
+<td>Female</td>
+<td>1900 Dallas Road Dallas, Texas 98554</td>
+</tr>
+</tbody>
+</table>
+<table summary="Table 3">
+<tbody>
+<tr>
+<td>
+</td>
+</tr>
+</tbody>
+<tbody>
+<tr>
+<td>
+</td>
+</tr>
+</tbody>
+<tbody>
+<tr>
+<td>
+</td>
+</tr>
+</tbody>
+</table>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/table.xml b/dom/tests/mochitest/dom-level2-html/files/table.xml
new file mode 100644
index 000000000..8300b90a1
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/table.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - TABLE</title>
+</head>
+<body onload="parent.loadComplete()">
+<table align="center" summary="Table 1">
+<tr>
+<th>Id</th>
+<th>Name</th>
+<th>Position</th>
+<th>Salary</th>
+</tr>
+</table>
+<table id="table-1" align="center" border="4" bgcolor="#ff0000" frame="border" cellpadding="2" cellspacing="2" summary="HTML Control Table" rules="all" width="680">
+<caption align="top">Table Caption</caption>
+<thead align="center" valign="middle">
+<tr align="center" bgcolor="#00FFFF" valign="middle">
+<th id="header-1">Employee Id</th>
+<th id="header-2" abbr="maiden" axis="center" align="center" bgcolor="#00FFFF" colspan="1" height="50" nowrap="nowrap" rowspan="1" scope="col" headers="header-1" valign="middle" width="100">Employee Name</th>
+<th>Position</th>
+<th>Salary</th>
+<th>Gender</th>
+<th>Address</th>
+</tr>
+</thead>
+<tfoot align="center" valign="middle">
+<tr>
+<th>next page ...</th>
+<th>next page ...</th>
+<th>next page ...</th>
+<th>next page ...</th>
+<th>next page ...</th>
+<th>next page ...</th>
+</tr>
+</tfoot>
+<tbody align="center" valign="middle">
+<tr>
+<td axis="center" id="Table-3" abbr="maiden2" align="center" bgcolor="#FF0000" colspan="1" height="50" nowrap="nowrap" rowspan="1" scope="col" headers="header-2" valign="middle" width="175">EMP0001</td>
+<td headers="header-2">Margaret Martin</td>
+<td>Accountant</td>
+<td>56,000</td>
+<td>Female</td>
+<td>1230 North Ave. Dallas, Texas 98551</td>
+</tr>
+<tr>
+<td>EMP0002</td>
+<td>Martha Raynolds</td>
+<td>Secretary</td>
+<td>35,000</td>
+<td>Female</td>
+<td>1900 Dallas Road Dallas, Texas 98554</td>
+</tr>
+</tbody>
+</table>
+<table summary="Table 3">
+<tbody>
+<tr>
+<td>
+</td>
+</tr>
+</tbody>
+<tbody>
+<tr>
+<td>
+</td>
+</tr>
+</tbody>
+<tbody>
+<tr>
+<td>
+</td>
+</tr>
+</tbody>
+</table>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/table1.html b/dom/tests/mochitest/dom-level2-html/files/table1.html
new file mode 100644
index 000000000..8f5d19b28
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/table1.html
@@ -0,0 +1,12 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - TABLE</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<TABLE SUMMARY="Empty Table">
+<tr><td>HTML can't abide empty table</td></tr>
+</TABLE>
+</BODY>
+</HTML>
diff --git a/dom/tests/mochitest/dom-level2-html/files/table1.xhtml b/dom/tests/mochitest/dom-level2-html/files/table1.xhtml
new file mode 100644
index 000000000..e174c63df
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/table1.xhtml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - TABLE</title>
+</head>
+<body onload="parent.loadComplete()">
+<table summary="Empty Table">
+<tr><td>XHTML can't abide empty table</td></tr>
+</table>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/table1.xml b/dom/tests/mochitest/dom-level2-html/files/table1.xml
new file mode 100644
index 000000000..e174c63df
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/table1.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - TABLE</title>
+</head>
+<body onload="parent.loadComplete()">
+<table summary="Empty Table">
+<tr><td>XHTML can't abide empty table</td></tr>
+</table>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/tablecaption.html b/dom/tests/mochitest/dom-level2-html/files/tablecaption.html
new file mode 100644
index 000000000..f9181c739
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/tablecaption.html
@@ -0,0 +1,25 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - TABLECAPTION</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<TABLE SUMMARY="Table Summary">
+<CAPTION ALIGN="top">CAPTION 1</CAPTION>
+<TR>
+<TH>Employee Id</TH>
+<TH>Employee Name</TH>
+<TH>Position</TH>
+<TH>Salary</TH>
+</TR>
+</TABLE>
+</BODY>
+</HTML>
+
+
+
+
+
+
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/tablecaption.xhtml b/dom/tests/mochitest/dom-level2-html/files/tablecaption.xhtml
new file mode 100644
index 000000000..67b72dcc3
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/tablecaption.xhtml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - BR</title>
+</head>
+<body onload="parent.loadComplete()">
+<table summary="Table 1">
+<caption align="top">CAPTION 1</caption>
+<tr>
+<th>Employee Id</th>
+<th>Employee Name</th>
+<th>Position</th>
+<th>Salary</th>
+</tr>
+</table>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/tablecaption.xml b/dom/tests/mochitest/dom-level2-html/files/tablecaption.xml
new file mode 100644
index 000000000..67b72dcc3
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/tablecaption.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - BR</title>
+</head>
+<body onload="parent.loadComplete()">
+<table summary="Table 1">
+<caption align="top">CAPTION 1</caption>
+<tr>
+<th>Employee Id</th>
+<th>Employee Name</th>
+<th>Position</th>
+<th>Salary</th>
+</tr>
+</table>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/tablecell.html b/dom/tests/mochitest/dom-level2-html/files/tablecell.html
new file mode 100644
index 000000000..c9adef2a4
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/tablecell.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - TABLECELL</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<TABLE SUMMARY="Table Summary">
+<TR>
+<TH ID="header-1">Employee Id</TH>
+<TH ID="header-2" ABBR="hd1" AXIS="center" ALIGN="center" BGCOLOR="#00FFFF" CHAR=":" CHAROFF="1" COLSPAN="1" HEIGHT="50" NOWRAP="nowrap" ROWSPAN="1" SCOPE="col" HEADERS="header-1" VALIGN="middle" WIDTH="170">Employee Name</TH>
+<TH>Position</TH>
+<TH>Salary</TH>
+</TR>
+<TR>
+<TD ID="header-3">EMP0001</TD>
+<TD ID="header-4" ABBR="hd2" AXIS="center" ALIGN="center" BGCOLOR="#FF0000" CHAR=":" CHAROFF="1" COLSPAN="1" HEIGHT="50" NOWRAP="nowrap" ROWSPAN="1" SCOPE="col" HEADERS="header-3" VALIGN="middle" WIDTH="175">Margaret Martin</TD>
+<TD>Accountant</TD>
+<TD>56,000</TD>
+</TR>
+</TABLE>
+</BODY>
+</HTML>
diff --git a/dom/tests/mochitest/dom-level2-html/files/tablecell.xhtml b/dom/tests/mochitest/dom-level2-html/files/tablecell.xhtml
new file mode 100644
index 000000000..0e8ee7f0d
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/tablecell.xhtml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - TABLECELL</title>
+</head>
+<body onload="parent.loadComplete()">
+<table summary="Table 1">
+<tr>
+<th id="header-1">Employee Id</th>
+<th id="header-2" abbr="hd1" axis="center" align="center" bgcolor="#00FFFF" char=":" charoff="1" colspan="1" height="50" nowrap="nowrap" rowspan="1" scope="col" headers="header-1" valign="middle" width="170">Employee Name</th>
+<th>Position</th>
+<th>Salary</th>
+</tr>
+<tr>
+<td id="header-3">EMP0001</td>
+<td id="header-4" abbr="hd2" axis="center" align="center" bgcolor="#FF0000" char=":" charoff="1" colspan="1" height="50" nowrap="nowrap" rowspan="1" scope="col" headers="header-3" valign="middle" width="175">Margaret Martin</td>
+<td>Accountant</td>
+<td>56,000</td>
+</tr>
+</table>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/tablecell.xml b/dom/tests/mochitest/dom-level2-html/files/tablecell.xml
new file mode 100644
index 000000000..0e8ee7f0d
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/tablecell.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - TABLECELL</title>
+</head>
+<body onload="parent.loadComplete()">
+<table summary="Table 1">
+<tr>
+<th id="header-1">Employee Id</th>
+<th id="header-2" abbr="hd1" axis="center" align="center" bgcolor="#00FFFF" char=":" charoff="1" colspan="1" height="50" nowrap="nowrap" rowspan="1" scope="col" headers="header-1" valign="middle" width="170">Employee Name</th>
+<th>Position</th>
+<th>Salary</th>
+</tr>
+<tr>
+<td id="header-3">EMP0001</td>
+<td id="header-4" abbr="hd2" axis="center" align="center" bgcolor="#FF0000" char=":" charoff="1" colspan="1" height="50" nowrap="nowrap" rowspan="1" scope="col" headers="header-3" valign="middle" width="175">Margaret Martin</td>
+<td>Accountant</td>
+<td>56,000</td>
+</tr>
+</table>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/tablecol.html b/dom/tests/mochitest/dom-level2-html/files/tablecol.html
new file mode 100644
index 000000000..c72a94899
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/tablecol.html
@@ -0,0 +1,35 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - TABLECOL</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<TABLE SUMMARY="Table Summary">
+<COLGROUP VALIGN="middle" SPAN="2" ALIGN="center" WIDTH="20" CHAR="$" CHAROFF="15">
+<COL VALIGN="middle" SPAN="1" ALIGN="center" WIDTH="20" CHAR="*" CHAROFF="20">
+</COLGROUP>
+<TR>
+<TH>Id</TH>
+<TH>Name</TH>
+<TH>Position</TH>
+<TH>Salary</TH>
+</TR>
+<TR>
+<TD>EMP0001</TD>
+<TD>Martin</TD>
+<TD>Accountant</TD>
+<TD>56,000</TD>
+</TR>
+</TABLE>
+</BODY>
+</HTML>
+
+
+
+
+
+
+
+
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/tablecol.xhtml b/dom/tests/mochitest/dom-level2-html/files/tablecol.xhtml
new file mode 100644
index 000000000..a69c4fec4
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/tablecol.xhtml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - TABLECOL</title>
+</head>
+<body onload="parent.loadComplete()">
+<table summary="Table 1">
+<colgroup valign="middle" span="2" align="center" width="20" char="$" charoff="15">
+<col valign="middle" span="1" align="center" width="20" char="*" charoff="20"/>
+</colgroup>
+<tr>
+<th>Id</th>
+<th>Name</th>
+<th>Position</th>
+<th>Salary</th>
+</tr>
+<tr>
+<td>EMP0001</td>
+<td>Martin</td>
+<td>Accountant</td>
+<td>56,000</td>
+</tr>
+</table>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/tablecol.xml b/dom/tests/mochitest/dom-level2-html/files/tablecol.xml
new file mode 100644
index 000000000..a69c4fec4
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/tablecol.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - TABLECOL</title>
+</head>
+<body onload="parent.loadComplete()">
+<table summary="Table 1">
+<colgroup valign="middle" span="2" align="center" width="20" char="$" charoff="15">
+<col valign="middle" span="1" align="center" width="20" char="*" charoff="20"/>
+</colgroup>
+<tr>
+<th>Id</th>
+<th>Name</th>
+<th>Position</th>
+<th>Salary</th>
+</tr>
+<tr>
+<td>EMP0001</td>
+<td>Martin</td>
+<td>Accountant</td>
+<td>56,000</td>
+</tr>
+</table>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/tablerow.html b/dom/tests/mochitest/dom-level2-html/files/tablerow.html
new file mode 100644
index 000000000..9e76a4cdb
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/tablerow.html
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - TABLEROW</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<TABLE ALIGN="center" SUMMARY="Table 1">
+<TR>
+<TH>Id</TH>
+<TH>Name</TH>
+<TH>Position</TH>
+<TH>Salary</TH>
+</TR>
+</TABLE>
+<TABLE ID="table-1" ALIGN="center" BORDER="4" BGCOLOR="#ff0000" FRAME="border" CELLPADDING="2" CELLSPACING="2" SUMMARY="HTML Control Table" RULES="all" WIDTH="680">
+<CAPTION ALIGN="top">Table Caption</CAPTION>
+<THEAD ALIGN="center" VALIGN="middle">
+<TR ALIGN="center" BGCOLOR="#00FFFF" VALIGN="middle" CHAR="*" CHAROFF="1">
+<TH ID="header-1">Employee Id</TH>
+<TH ID="header-2" ABBR="maiden" AXIS="center" ALIGN="center" BGCOLOR="#00FFFF" COLSPAN="1" HEIGHT="50" NOWRAP="nowrap" ROWSPAN="1" SCOPE="col" HEADERS="header-1" VALIGN="middle" WIDTH="100">Employee Name</TH>
+<TH>Position</TH>
+<TH>Salary</TH>
+<TH>Gender</TH>
+<TH>Address</TH>
+</TR>
+</THEAD>
+<TFOOT ALIGN="center" VALIGN="middle">
+<TR>
+<TH>next page ...</TH>
+<TH>next page ...</TH>
+<TH>next page ...</TH>
+<TH>next page ...</TH>
+<TH>next page ...</TH>
+<TH>next page ...</TH>
+</TR>
+</TFOOT>
+<TBODY ALIGN="center" VALIGN="middle">
+<TR>
+<TD AXIS="center" ID="Table-3" ABBR="maiden2" ALIGN="center" BGCOLOR="#FF0000" COLSPAN="1" HEIGHT="50" NOWRAP="nowrap" ROWSPAN="1" SCOPE="col" HEADERS="header-2" VALIGN="middle" WIDTH="175">EMP0001</TD>
+<TD HEADERS="header-2">Margaret Martin</TD>
+<TD>Accountant</TD>
+<TD>56,000</TD>
+<TD>Female</TD>
+<TD>1230 North Ave. Dallas, Texas 98551</TD>
+</TR>
+<TR>
+<TD>EMP0002</TD>
+<TD>Martha Raynolds</TD>
+<TD>Secretary</TD>
+<TD>35,000</TD>
+<TD>Female</TD>
+<TD>1900 Dallas Road Dallas, Texas 98554</TD>
+</TR>
+</TBODY>
+</TABLE>
+</BODY>
+</HTML>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/tablerow.xhtml b/dom/tests/mochitest/dom-level2-html/files/tablerow.xhtml
new file mode 100644
index 000000000..b901e3ce0
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/tablerow.xhtml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - TABLE</title>
+</head>
+<body onload="parent.loadComplete()">
+<table align="center" summary="Table 1">
+<tr>
+<th>Id</th>
+<th>Name</th>
+<th>Position</th>
+<th>Salary</th>
+</tr>
+</table>
+<table id="table-1" align="center" border="4" bgcolor="#ff0000" frame="border" cellpadding="2" cellspacing="2" summary="HTML Control Table" rules="all" width="680">
+<caption align="top">Table Caption</caption>
+<thead align="center" valign="middle">
+<tr align="center" bgcolor="#00FFFF" valign="middle" char="*" charoff="1">
+<th id="header-1">Employee Id</th>
+<th id="header-2" abbr="maiden" axis="center" align="center" bgcolor="#00FFFF" colspan="1" height="50" nowrap="nowrap" rowspan="1" scope="col" headers="header-1" valign="middle" width="100">Employee Name</th>
+<th>Position</th>
+<th>Salary</th>
+<th>Gender</th>
+<th>Address</th>
+</tr>
+</thead>
+<tfoot align="center" valign="middle">
+<tr>
+<th>next page ...</th>
+<th>next page ...</th>
+<th>next page ...</th>
+<th>next page ...</th>
+<th>next page ...</th>
+<th>next page ...</th>
+</tr>
+</tfoot>
+<tbody align="center" valign="middle">
+<tr>
+<td axis="center" id="Table-3" abbr="maiden2" align="center" bgcolor="#FF0000" colspan="1" height="50" nowrap="nowrap" rowspan="1" scope="col" headers="header-2" valign="middle" width="175">EMP0001</td>
+<td headers="header-2">Margaret Martin</td>
+<td>Accountant</td>
+<td>56,000</td>
+<td>Female</td>
+<td>1230 North Ave. Dallas, Texas 98551</td>
+</tr>
+<tr>
+<td>EMP0002</td>
+<td>Martha Raynolds</td>
+<td>Secretary</td>
+<td>35,000</td>
+<td>Female</td>
+<td>1900 Dallas Road Dallas, Texas 98554</td>
+</tr>
+</tbody>
+</table>
+</body>
+</html>
+
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/tablerow.xml b/dom/tests/mochitest/dom-level2-html/files/tablerow.xml
new file mode 100644
index 000000000..b901e3ce0
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/tablerow.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - TABLE</title>
+</head>
+<body onload="parent.loadComplete()">
+<table align="center" summary="Table 1">
+<tr>
+<th>Id</th>
+<th>Name</th>
+<th>Position</th>
+<th>Salary</th>
+</tr>
+</table>
+<table id="table-1" align="center" border="4" bgcolor="#ff0000" frame="border" cellpadding="2" cellspacing="2" summary="HTML Control Table" rules="all" width="680">
+<caption align="top">Table Caption</caption>
+<thead align="center" valign="middle">
+<tr align="center" bgcolor="#00FFFF" valign="middle" char="*" charoff="1">
+<th id="header-1">Employee Id</th>
+<th id="header-2" abbr="maiden" axis="center" align="center" bgcolor="#00FFFF" colspan="1" height="50" nowrap="nowrap" rowspan="1" scope="col" headers="header-1" valign="middle" width="100">Employee Name</th>
+<th>Position</th>
+<th>Salary</th>
+<th>Gender</th>
+<th>Address</th>
+</tr>
+</thead>
+<tfoot align="center" valign="middle">
+<tr>
+<th>next page ...</th>
+<th>next page ...</th>
+<th>next page ...</th>
+<th>next page ...</th>
+<th>next page ...</th>
+<th>next page ...</th>
+</tr>
+</tfoot>
+<tbody align="center" valign="middle">
+<tr>
+<td axis="center" id="Table-3" abbr="maiden2" align="center" bgcolor="#FF0000" colspan="1" height="50" nowrap="nowrap" rowspan="1" scope="col" headers="header-2" valign="middle" width="175">EMP0001</td>
+<td headers="header-2">Margaret Martin</td>
+<td>Accountant</td>
+<td>56,000</td>
+<td>Female</td>
+<td>1230 North Ave. Dallas, Texas 98551</td>
+</tr>
+<tr>
+<td>EMP0002</td>
+<td>Martha Raynolds</td>
+<td>Secretary</td>
+<td>35,000</td>
+<td>Female</td>
+<td>1900 Dallas Road Dallas, Texas 98554</td>
+</tr>
+</tbody>
+</table>
+</body>
+</html>
+
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/tablesection.html b/dom/tests/mochitest/dom-level2-html/files/tablesection.html
new file mode 100644
index 000000000..0c1a5f784
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/tablesection.html
@@ -0,0 +1,62 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - TABLESECTION</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<TABLE ALIGN="center" SUMMARY="Table 1">
+<TBODY>
+<TR>
+<TH>Id</TH>
+<TH>Name</TH>
+<TH>Position</TH>
+<TH>Salary</TH>
+</TR>
+</TBODY>
+</TABLE>
+<TABLE ID="table-1" ALIGN="center" BORDER="4" BGCOLOR="#ff0000" FRAME="border" CELLPADDING="2" CELLSPACING="2" SUMMARY="HTML Control Table" RULES="all" WIDTH="680">
+<CAPTION ALIGN="top">Table Caption</CAPTION>
+<THEAD ALIGN="center" VALIGN="middle" CHAR="*" CHAROFF="1">
+<TR ALIGN="center" BGCOLOR="#00FFFF" VALIGN="middle" CHAR="*" CHAROFF="1">
+<TH ID="header-1">Employee Id</TH>
+<TH ID="header-2" ABBR="maiden" AXIS="center" ALIGN="center" BGCOLOR="#00FFFF" COLSPAN="1" HEIGHT="50" NOWRAP="nowrap" ROWSPAN="1" SCOPE="col" HEADERS="header-1" VALIGN="middle" WIDTH="100">Employee Name</TH>
+<TH>Position</TH>
+<TH>Salary</TH>
+<TH>Gender</TH>
+<TH>Address</TH>
+</TR>
+</THEAD>
+<TFOOT ALIGN="center" VALIGN="middle" CHAR="+" CHAROFF="2">
+<TR>
+<TH>next page ...</TH>
+<TH>next page ...</TH>
+<TH>next page ...</TH>
+<TH>next page ...</TH>
+<TH>next page ...</TH>
+<TH>next page ...</TH>
+</TR>
+</TFOOT>
+<TBODY ALIGN="center" VALIGN="middle" CHAR="$" CHAROFF="3">
+<TR>
+<TD AXIS="center" ID="Table-3" ABBR="maiden2" ALIGN="center" BGCOLOR="#FF0000" COLSPAN="1" HEIGHT="50" NOWRAP="nowrap" ROWSPAN="1" SCOPE="col" HEADERS="header-2" VALIGN="middle" WIDTH="175">EMP0001</TD>
+<TD HEADERS="header-2">Margaret Martin</TD>
+<TD>Accountant</TD>
+<TD>56,000</TD>
+<TD>Female</TD>
+<TD>1230 North Ave. Dallas, Texas 98551</TD>
+</TR>
+<TR>
+<TD>EMP0002</TD>
+<TD>Martha Raynolds</TD>
+<TD>Secretary</TD>
+<TD>35,000</TD>
+<TD>Female</TD>
+<TD>1900 Dallas Road Dallas, Texas 98554</TD>
+</TR>
+</TBODY>
+</TABLE>
+</BODY>
+</HTML>
+
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/tablesection.xhtml b/dom/tests/mochitest/dom-level2-html/files/tablesection.xhtml
new file mode 100644
index 000000000..34986508b
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/tablesection.xhtml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - TABLESECTION</title>
+</head>
+<body onload="parent.loadComplete()">
+<table align="center" summary="Table 1">
+<tbody>
+<tr>
+<th>Id</th>
+<th>Name</th>
+<th>Position</th>
+<th>Salary</th>
+</tr>
+</tbody>
+</table>
+<table id="table-1" align="center" border="4" bgcolor="#ff0000" frame="border" cellpadding="2" cellspacing="2" summary="HTML Control Table" rules="all" width="680">
+<caption align="top">Table Caption</caption>
+<thead align="center" valign="middle" char="*" charoff="1">
+<tr align="center" bgcolor="#00FFFF" valign="middle" char="*" charoff="1">
+<th id="header-1">Employee Id</th>
+<th id="header-2" abbr="maiden" axis="center" align="center" bgcolor="#00FFFF" colspan="1" height="50" nowrap="nowrap" rowspan="1" scope="col" headers="header-1" valign="middle" width="100">Employee Name</th>
+<th>Position</th>
+<th>Salary</th>
+<th>Gender</th>
+<th>Address</th>
+</tr>
+</thead>
+<tfoot align="center" valign="middle" char="+" charoff="2">
+<tr>
+<th>next page ...</th>
+<th>next page ...</th>
+<th>next page ...</th>
+<th>next page ...</th>
+<th>next page ...</th>
+<th>next page ...</th>
+</tr>
+</tfoot>
+<tbody align="center" valign="middle" char="$" charoff="3">
+<tr>
+<td axis="center" id="Table-3" abbr="maiden2" align="center" bgcolor="#FF0000" colspan="1" height="50" nowrap="nowrap" rowspan="1" scope="col" headers="header-2" valign="middle" width="175">EMP0001</td>
+<td headers="header-2">Margaret Martin</td>
+<td>Accountant</td>
+<td>56,000</td>
+<td>Female</td>
+<td>1230 North Ave. Dallas, Texas 98551</td>
+</tr>
+<tr>
+<td>EMP0002</td>
+<td>Martha Raynolds</td>
+<td>Secretary</td>
+<td>35,000</td>
+<td>Female</td>
+<td>1900 Dallas Road Dallas, Texas 98554</td>
+</tr>
+</tbody>
+</table>
+</body>
+</html>
+
+
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/tablesection.xml b/dom/tests/mochitest/dom-level2-html/files/tablesection.xml
new file mode 100644
index 000000000..34986508b
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/tablesection.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - TABLESECTION</title>
+</head>
+<body onload="parent.loadComplete()">
+<table align="center" summary="Table 1">
+<tbody>
+<tr>
+<th>Id</th>
+<th>Name</th>
+<th>Position</th>
+<th>Salary</th>
+</tr>
+</tbody>
+</table>
+<table id="table-1" align="center" border="4" bgcolor="#ff0000" frame="border" cellpadding="2" cellspacing="2" summary="HTML Control Table" rules="all" width="680">
+<caption align="top">Table Caption</caption>
+<thead align="center" valign="middle" char="*" charoff="1">
+<tr align="center" bgcolor="#00FFFF" valign="middle" char="*" charoff="1">
+<th id="header-1">Employee Id</th>
+<th id="header-2" abbr="maiden" axis="center" align="center" bgcolor="#00FFFF" colspan="1" height="50" nowrap="nowrap" rowspan="1" scope="col" headers="header-1" valign="middle" width="100">Employee Name</th>
+<th>Position</th>
+<th>Salary</th>
+<th>Gender</th>
+<th>Address</th>
+</tr>
+</thead>
+<tfoot align="center" valign="middle" char="+" charoff="2">
+<tr>
+<th>next page ...</th>
+<th>next page ...</th>
+<th>next page ...</th>
+<th>next page ...</th>
+<th>next page ...</th>
+<th>next page ...</th>
+</tr>
+</tfoot>
+<tbody align="center" valign="middle" char="$" charoff="3">
+<tr>
+<td axis="center" id="Table-3" abbr="maiden2" align="center" bgcolor="#FF0000" colspan="1" height="50" nowrap="nowrap" rowspan="1" scope="col" headers="header-2" valign="middle" width="175">EMP0001</td>
+<td headers="header-2">Margaret Martin</td>
+<td>Accountant</td>
+<td>56,000</td>
+<td>Female</td>
+<td>1230 North Ave. Dallas, Texas 98551</td>
+</tr>
+<tr>
+<td>EMP0002</td>
+<td>Martha Raynolds</td>
+<td>Secretary</td>
+<td>35,000</td>
+<td>Female</td>
+<td>1900 Dallas Road Dallas, Texas 98554</td>
+</tr>
+</tbody>
+</table>
+</body>
+</html>
+
+
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/textarea.html b/dom/tests/mochitest/dom-level2-html/files/textarea.html
new file mode 100644
index 000000000..b9aedc499
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/textarea.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - TEXTAREA</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<FORM ID="form1" ACCEPT-CHARSET="US-ASCII" ACTION="./files/getData.pl" METHOD="post">
+<P>
+<TEXTAREA NAME="text1" COLS="20" ROWS="7" ACCESSKEY="c" TABINDEX="5">TEXTAREA1</TEXTAREA>
+<INPUT TYPE="submit" NAME="submit1" VALUE="Submit1"/>
+<INPUT TYPE="reset" NAME="reset1" VALUE="Reset1"/>
+</P>
+</FORM>
+<P>
+<TEXTAREA NAME="text2" COLS="50" ROWS="2" DISABLED="disabled">TEXTAREA2</TEXTAREA>
+<INPUT TYPE="submit" NAME="submit2" VALUE="Submit2"/>
+<INPUT TYPE="reset" NAME="reset2" VALUE="Reset2"/>
+<TEXTAREA NAME="text2" COLS="50" ROWS="2" READONLY="readonly">TEXTAREA3</TEXTAREA>
+<INPUT TYPE="submit" NAME="submit2" VALUE="Submit2"/>
+<INPUT TYPE="reset" NAME="reset3" VALUE="Reset3"/>
+</P>
+</BODY>
+</HTML>
+
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/textarea.xhtml b/dom/tests/mochitest/dom-level2-html/files/textarea.xhtml
new file mode 100644
index 000000000..eb6ca48ba
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/textarea.xhtml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - TEXTAREA</title>
+</head>
+<body onload="parent.loadComplete()">
+<form id="form1" action="./files/getData.pl" method="post">
+<p>
+<textarea name="text1" cols="20" rows="7" accesskey="c" tabindex="5">TEXTAREA1</textarea>
+<input type="submit" name="submit1" value="Submit1"/>
+<input type="reset" name="reset1" value="Reset1"/>
+</p>
+</form>
+<p>
+<textarea name="text2" cols="50" rows="2" disabled="disabled">TEXTAREA2</textarea>
+<input type="submit" name="submit2" value="Submit2"/>
+<input type="reset" name="reset2" value="Reset2"/>
+<textarea name="text2" cols="50" rows="2" readonly="readonly">TEXTAREA3</textarea>
+<input type="submit" name="submit3" value="Submit3"/>
+<input type="reset" name="reset3" value="Reset3"/>
+</p>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/textarea.xml b/dom/tests/mochitest/dom-level2-html/files/textarea.xml
new file mode 100644
index 000000000..eb6ca48ba
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/textarea.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - TEXTAREA</title>
+</head>
+<body onload="parent.loadComplete()">
+<form id="form1" action="./files/getData.pl" method="post">
+<p>
+<textarea name="text1" cols="20" rows="7" accesskey="c" tabindex="5">TEXTAREA1</textarea>
+<input type="submit" name="submit1" value="Submit1"/>
+<input type="reset" name="reset1" value="Reset1"/>
+</p>
+</form>
+<p>
+<textarea name="text2" cols="50" rows="2" disabled="disabled">TEXTAREA2</textarea>
+<input type="submit" name="submit2" value="Submit2"/>
+<input type="reset" name="reset2" value="Reset2"/>
+<textarea name="text2" cols="50" rows="2" readonly="readonly">TEXTAREA3</textarea>
+<input type="submit" name="submit3" value="Submit3"/>
+<input type="reset" name="reset3" value="Reset3"/>
+</p>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/title.html b/dom/tests/mochitest/dom-level2-html/files/title.html
new file mode 100644
index 000000000..2078ee95d
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/title.html
@@ -0,0 +1,13 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - TITLE</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<P>
+<BR/>
+</P>
+</BODY>
+</HTML>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/title.xhtml b/dom/tests/mochitest/dom-level2-html/files/title.xhtml
new file mode 100644
index 000000000..e8ec6b55a
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/title.xhtml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - TITLE</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>
+<br/>
+</p>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/title.xml b/dom/tests/mochitest/dom-level2-html/files/title.xml
new file mode 100644
index 000000000..e8ec6b55a
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/title.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "xhtml1-strict.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - TITLE</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>
+<br/>
+</p>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/ulist.html b/dom/tests/mochitest/dom-level2-html/files/ulist.html
new file mode 100644
index 000000000..75498e2cb
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/ulist.html
@@ -0,0 +1,36 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - ULIST</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<OL>
+<LI>EMP0001
+<UL COMPACT="compact" TYPE="disc">
+<LI>Margaret Martin
+<DL>
+<DD>Accountant</DD>
+<DD>56,000</DD>
+<DD>Female</DD>
+<DD>1230 North Ave. Dallas, Texas 98551</DD>
+</DL>
+</LI>
+</UL>
+</LI>
+<LI>EMP0002
+<UL>
+<LI>Martha Raynolds
+<DL>
+<DD>Secretary</DD>
+<DD>35,000</DD>
+<DD>Female</DD>
+<DD>1900 Dallas Road. Dallas, Texas 98554</DD>
+</DL>
+</LI>
+</UL>
+</LI>
+</OL>
+</BODY>
+</HTML>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/ulist.xhtml b/dom/tests/mochitest/dom-level2-html/files/ulist.xhtml
new file mode 100644
index 000000000..fd9d7a5a4
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/ulist.xhtml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - ULIST</title>
+</head>
+<body onload="parent.loadComplete()">
+<ol>
+<li>EMP0001
+<ul compact="compact" type="disc">
+<li>Margaret Martin
+<dl>
+<dd>Accountant</dd>
+<dd>56,000</dd>
+<dd>Female</dd>
+<dd>1230 North Ave. Dallas, Texas 98551</dd>
+</dl>
+</li>
+</ul>
+</li>
+<li>EMP0002
+<ul>
+<li>Martha Raynolds
+<dl>
+<dd>Secretary</dd>
+<dd>35,000</dd>
+<dd>Female</dd>
+<dd>1900 Dallas Road. Dallas, Texas 98554</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ol>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/ulist.xml b/dom/tests/mochitest/dom-level2-html/files/ulist.xml
new file mode 100644
index 000000000..fd9d7a5a4
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/ulist.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - ULIST</title>
+</head>
+<body onload="parent.loadComplete()">
+<ol>
+<li>EMP0001
+<ul compact="compact" type="disc">
+<li>Margaret Martin
+<dl>
+<dd>Accountant</dd>
+<dd>56,000</dd>
+<dd>Female</dd>
+<dd>1230 North Ave. Dallas, Texas 98551</dd>
+</dl>
+</li>
+</ul>
+</li>
+<li>EMP0002
+<ul>
+<li>Martha Raynolds
+<dl>
+<dd>Secretary</dd>
+<dd>35,000</dd>
+<dd>Female</dd>
+<dd>1900 Dallas Road. Dallas, Texas 98554</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ol>
+</body>
+</html>
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/w3c_main.png b/dom/tests/mochitest/dom-level2-html/files/w3c_main.png
new file mode 100644
index 000000000..ac0ecd37e
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/w3c_main.png
Binary files differ
diff --git a/dom/tests/mochitest/dom-level2-html/files/xhtml-lat1.ent b/dom/tests/mochitest/dom-level2-html/files/xhtml-lat1.ent
new file mode 100644
index 000000000..ffee223eb
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/xhtml-lat1.ent
@@ -0,0 +1,196 @@
+<!-- Portions (C) International Organization for Standardization 1986
+ Permission to copy in any form is granted for use with
+ conforming SGML systems and applications as defined in
+ ISO 8879, provided this notice is included in all copies.
+-->
+<!-- Character entity set. Typical invocation:
+ <!ENTITY % HTMLlat1 PUBLIC
+ "-//W3C//ENTITIES Latin 1 for XHTML//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent">
+ %HTMLlat1;
+-->
+
+<!ENTITY nbsp "&#160;"> <!-- no-break space = non-breaking space,
+ U+00A0 ISOnum -->
+<!ENTITY iexcl "&#161;"> <!-- inverted exclamation mark, U+00A1 ISOnum -->
+<!ENTITY cent "&#162;"> <!-- cent sign, U+00A2 ISOnum -->
+<!ENTITY pound "&#163;"> <!-- pound sign, U+00A3 ISOnum -->
+<!ENTITY curren "&#164;"> <!-- currency sign, U+00A4 ISOnum -->
+<!ENTITY yen "&#165;"> <!-- yen sign = yuan sign, U+00A5 ISOnum -->
+<!ENTITY brvbar "&#166;"> <!-- broken bar = broken vertical bar,
+ U+00A6 ISOnum -->
+<!ENTITY sect "&#167;"> <!-- section sign, U+00A7 ISOnum -->
+<!ENTITY uml "&#168;"> <!-- diaeresis = spacing diaeresis,
+ U+00A8 ISOdia -->
+<!ENTITY copy "&#169;"> <!-- copyright sign, U+00A9 ISOnum -->
+<!ENTITY ordf "&#170;"> <!-- feminine ordinal indicator, U+00AA ISOnum -->
+<!ENTITY laquo "&#171;"> <!-- left-pointing double angle quotation mark
+ = left pointing guillemet, U+00AB ISOnum -->
+<!ENTITY not "&#172;"> <!-- not sign = angled dash,
+ U+00AC ISOnum -->
+<!ENTITY shy "&#173;"> <!-- soft hyphen = discretionary hyphen,
+ U+00AD ISOnum -->
+<!ENTITY reg "&#174;"> <!-- registered sign = registered trade mark sign,
+ U+00AE ISOnum -->
+<!ENTITY macr "&#175;"> <!-- macron = spacing macron = overline
+ = APL overbar, U+00AF ISOdia -->
+<!ENTITY deg "&#176;"> <!-- degree sign, U+00B0 ISOnum -->
+<!ENTITY plusmn "&#177;"> <!-- plus-minus sign = plus-or-minus sign,
+ U+00B1 ISOnum -->
+<!ENTITY sup2 "&#178;"> <!-- superscript two = superscript digit two
+ = squared, U+00B2 ISOnum -->
+<!ENTITY sup3 "&#179;"> <!-- superscript three = superscript digit three
+ = cubed, U+00B3 ISOnum -->
+<!ENTITY acute "&#180;"> <!-- acute accent = spacing acute,
+ U+00B4 ISOdia -->
+<!ENTITY micro "&#181;"> <!-- micro sign, U+00B5 ISOnum -->
+<!ENTITY para "&#182;"> <!-- pilcrow sign = paragraph sign,
+ U+00B6 ISOnum -->
+<!ENTITY middot "&#183;"> <!-- middle dot = Georgian comma
+ = Greek middle dot, U+00B7 ISOnum -->
+<!ENTITY cedil "&#184;"> <!-- cedilla = spacing cedilla, U+00B8 ISOdia -->
+<!ENTITY sup1 "&#185;"> <!-- superscript one = superscript digit one,
+ U+00B9 ISOnum -->
+<!ENTITY ordm "&#186;"> <!-- masculine ordinal indicator,
+ U+00BA ISOnum -->
+<!ENTITY raquo "&#187;"> <!-- right-pointing double angle quotation mark
+ = right pointing guillemet, U+00BB ISOnum -->
+<!ENTITY frac14 "&#188;"> <!-- vulgar fraction one quarter
+ = fraction one quarter, U+00BC ISOnum -->
+<!ENTITY frac12 "&#189;"> <!-- vulgar fraction one half
+ = fraction one half, U+00BD ISOnum -->
+<!ENTITY frac34 "&#190;"> <!-- vulgar fraction three quarters
+ = fraction three quarters, U+00BE ISOnum -->
+<!ENTITY iquest "&#191;"> <!-- inverted question mark
+ = turned question mark, U+00BF ISOnum -->
+<!ENTITY Agrave "&#192;"> <!-- latin capital letter A with grave
+ = latin capital letter A grave,
+ U+00C0 ISOlat1 -->
+<!ENTITY Aacute "&#193;"> <!-- latin capital letter A with acute,
+ U+00C1 ISOlat1 -->
+<!ENTITY Acirc "&#194;"> <!-- latin capital letter A with circumflex,
+ U+00C2 ISOlat1 -->
+<!ENTITY Atilde "&#195;"> <!-- latin capital letter A with tilde,
+ U+00C3 ISOlat1 -->
+<!ENTITY Auml "&#196;"> <!-- latin capital letter A with diaeresis,
+ U+00C4 ISOlat1 -->
+<!ENTITY Aring "&#197;"> <!-- latin capital letter A with ring above
+ = latin capital letter A ring,
+ U+00C5 ISOlat1 -->
+<!ENTITY AElig "&#198;"> <!-- latin capital letter AE
+ = latin capital ligature AE,
+ U+00C6 ISOlat1 -->
+<!ENTITY Ccedil "&#199;"> <!-- latin capital letter C with cedilla,
+ U+00C7 ISOlat1 -->
+<!ENTITY Egrave "&#200;"> <!-- latin capital letter E with grave,
+ U+00C8 ISOlat1 -->
+<!ENTITY Eacute "&#201;"> <!-- latin capital letter E with acute,
+ U+00C9 ISOlat1 -->
+<!ENTITY Ecirc "&#202;"> <!-- latin capital letter E with circumflex,
+ U+00CA ISOlat1 -->
+<!ENTITY Euml "&#203;"> <!-- latin capital letter E with diaeresis,
+ U+00CB ISOlat1 -->
+<!ENTITY Igrave "&#204;"> <!-- latin capital letter I with grave,
+ U+00CC ISOlat1 -->
+<!ENTITY Iacute "&#205;"> <!-- latin capital letter I with acute,
+ U+00CD ISOlat1 -->
+<!ENTITY Icirc "&#206;"> <!-- latin capital letter I with circumflex,
+ U+00CE ISOlat1 -->
+<!ENTITY Iuml "&#207;"> <!-- latin capital letter I with diaeresis,
+ U+00CF ISOlat1 -->
+<!ENTITY ETH "&#208;"> <!-- latin capital letter ETH, U+00D0 ISOlat1 -->
+<!ENTITY Ntilde "&#209;"> <!-- latin capital letter N with tilde,
+ U+00D1 ISOlat1 -->
+<!ENTITY Ograve "&#210;"> <!-- latin capital letter O with grave,
+ U+00D2 ISOlat1 -->
+<!ENTITY Oacute "&#211;"> <!-- latin capital letter O with acute,
+ U+00D3 ISOlat1 -->
+<!ENTITY Ocirc "&#212;"> <!-- latin capital letter O with circumflex,
+ U+00D4 ISOlat1 -->
+<!ENTITY Otilde "&#213;"> <!-- latin capital letter O with tilde,
+ U+00D5 ISOlat1 -->
+<!ENTITY Ouml "&#214;"> <!-- latin capital letter O with diaeresis,
+ U+00D6 ISOlat1 -->
+<!ENTITY times "&#215;"> <!-- multiplication sign, U+00D7 ISOnum -->
+<!ENTITY Oslash "&#216;"> <!-- latin capital letter O with stroke
+ = latin capital letter O slash,
+ U+00D8 ISOlat1 -->
+<!ENTITY Ugrave "&#217;"> <!-- latin capital letter U with grave,
+ U+00D9 ISOlat1 -->
+<!ENTITY Uacute "&#218;"> <!-- latin capital letter U with acute,
+ U+00DA ISOlat1 -->
+<!ENTITY Ucirc "&#219;"> <!-- latin capital letter U with circumflex,
+ U+00DB ISOlat1 -->
+<!ENTITY Uuml "&#220;"> <!-- latin capital letter U with diaeresis,
+ U+00DC ISOlat1 -->
+<!ENTITY Yacute "&#221;"> <!-- latin capital letter Y with acute,
+ U+00DD ISOlat1 -->
+<!ENTITY THORN "&#222;"> <!-- latin capital letter THORN,
+ U+00DE ISOlat1 -->
+<!ENTITY szlig "&#223;"> <!-- latin small letter sharp s = ess-zed,
+ U+00DF ISOlat1 -->
+<!ENTITY agrave "&#224;"> <!-- latin small letter a with grave
+ = latin small letter a grave,
+ U+00E0 ISOlat1 -->
+<!ENTITY aacute "&#225;"> <!-- latin small letter a with acute,
+ U+00E1 ISOlat1 -->
+<!ENTITY acirc "&#226;"> <!-- latin small letter a with circumflex,
+ U+00E2 ISOlat1 -->
+<!ENTITY atilde "&#227;"> <!-- latin small letter a with tilde,
+ U+00E3 ISOlat1 -->
+<!ENTITY auml "&#228;"> <!-- latin small letter a with diaeresis,
+ U+00E4 ISOlat1 -->
+<!ENTITY aring "&#229;"> <!-- latin small letter a with ring above
+ = latin small letter a ring,
+ U+00E5 ISOlat1 -->
+<!ENTITY aelig "&#230;"> <!-- latin small letter ae
+ = latin small ligature ae, U+00E6 ISOlat1 -->
+<!ENTITY ccedil "&#231;"> <!-- latin small letter c with cedilla,
+ U+00E7 ISOlat1 -->
+<!ENTITY egrave "&#232;"> <!-- latin small letter e with grave,
+ U+00E8 ISOlat1 -->
+<!ENTITY eacute "&#233;"> <!-- latin small letter e with acute,
+ U+00E9 ISOlat1 -->
+<!ENTITY ecirc "&#234;"> <!-- latin small letter e with circumflex,
+ U+00EA ISOlat1 -->
+<!ENTITY euml "&#235;"> <!-- latin small letter e with diaeresis,
+ U+00EB ISOlat1 -->
+<!ENTITY igrave "&#236;"> <!-- latin small letter i with grave,
+ U+00EC ISOlat1 -->
+<!ENTITY iacute "&#237;"> <!-- latin small letter i with acute,
+ U+00ED ISOlat1 -->
+<!ENTITY icirc "&#238;"> <!-- latin small letter i with circumflex,
+ U+00EE ISOlat1 -->
+<!ENTITY iuml "&#239;"> <!-- latin small letter i with diaeresis,
+ U+00EF ISOlat1 -->
+<!ENTITY eth "&#240;"> <!-- latin small letter eth, U+00F0 ISOlat1 -->
+<!ENTITY ntilde "&#241;"> <!-- latin small letter n with tilde,
+ U+00F1 ISOlat1 -->
+<!ENTITY ograve "&#242;"> <!-- latin small letter o with grave,
+ U+00F2 ISOlat1 -->
+<!ENTITY oacute "&#243;"> <!-- latin small letter o with acute,
+ U+00F3 ISOlat1 -->
+<!ENTITY ocirc "&#244;"> <!-- latin small letter o with circumflex,
+ U+00F4 ISOlat1 -->
+<!ENTITY otilde "&#245;"> <!-- latin small letter o with tilde,
+ U+00F5 ISOlat1 -->
+<!ENTITY ouml "&#246;"> <!-- latin small letter o with diaeresis,
+ U+00F6 ISOlat1 -->
+<!ENTITY divide "&#247;"> <!-- division sign, U+00F7 ISOnum -->
+<!ENTITY oslash "&#248;"> <!-- latin small letter o with stroke,
+ = latin small letter o slash,
+ U+00F8 ISOlat1 -->
+<!ENTITY ugrave "&#249;"> <!-- latin small letter u with grave,
+ U+00F9 ISOlat1 -->
+<!ENTITY uacute "&#250;"> <!-- latin small letter u with acute,
+ U+00FA ISOlat1 -->
+<!ENTITY ucirc "&#251;"> <!-- latin small letter u with circumflex,
+ U+00FB ISOlat1 -->
+<!ENTITY uuml "&#252;"> <!-- latin small letter u with diaeresis,
+ U+00FC ISOlat1 -->
+<!ENTITY yacute "&#253;"> <!-- latin small letter y with acute,
+ U+00FD ISOlat1 -->
+<!ENTITY thorn "&#254;"> <!-- latin small letter thorn,
+ U+00FE ISOlat1 -->
+<!ENTITY yuml "&#255;"> <!-- latin small letter y with diaeresis,
+ U+00FF ISOlat1 -->
diff --git a/dom/tests/mochitest/dom-level2-html/files/xhtml-special.ent b/dom/tests/mochitest/dom-level2-html/files/xhtml-special.ent
new file mode 100644
index 000000000..ca358b2fe
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/xhtml-special.ent
@@ -0,0 +1,80 @@
+<!-- Special characters for XHTML -->
+
+<!-- Character entity set. Typical invocation:
+ <!ENTITY % HTMLspecial PUBLIC
+ "-//W3C//ENTITIES Special for XHTML//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent">
+ %HTMLspecial;
+-->
+
+<!-- Portions (C) International Organization for Standardization 1986:
+ Permission to copy in any form is granted for use with
+ conforming SGML systems and applications as defined in
+ ISO 8879, provided this notice is included in all copies.
+-->
+
+<!-- Relevant ISO entity set is given unless names are newly introduced.
+ New names (i.e., not in ISO 8879 list) do not clash with any
+ existing ISO 8879 entity names. ISO 10646 character numbers
+ are given for each character, in hex. values are decimal
+ conversions of the ISO 10646 values and refer to the document
+ character set. Names are Unicode names.
+-->
+
+<!-- C0 Controls and Basic Latin -->
+<!ENTITY quot "&#34;"> <!-- quotation mark, U+0022 ISOnum -->
+<!ENTITY amp "&#38;#38;"> <!-- ampersand, U+0026 ISOnum -->
+<!ENTITY lt "&#38;#60;"> <!-- less-than sign, U+003C ISOnum -->
+<!ENTITY gt "&#62;"> <!-- greater-than sign, U+003E ISOnum -->
+<!ENTITY apos "&#39;"> <!-- apostrophe = APL quote, U+0027 ISOnum -->
+
+<!-- Latin Extended-A -->
+<!ENTITY OElig "&#338;"> <!-- latin capital ligature OE,
+ U+0152 ISOlat2 -->
+<!ENTITY oelig "&#339;"> <!-- latin small ligature oe, U+0153 ISOlat2 -->
+<!-- ligature is a misnomer, this is a separate character in some languages -->
+<!ENTITY Scaron "&#352;"> <!-- latin capital letter S with caron,
+ U+0160 ISOlat2 -->
+<!ENTITY scaron "&#353;"> <!-- latin small letter s with caron,
+ U+0161 ISOlat2 -->
+<!ENTITY Yuml "&#376;"> <!-- latin capital letter Y with diaeresis,
+ U+0178 ISOlat2 -->
+
+<!-- Spacing Modifier Letters -->
+<!ENTITY circ "&#710;"> <!-- modifier letter circumflex accent,
+ U+02C6 ISOpub -->
+<!ENTITY tilde "&#732;"> <!-- small tilde, U+02DC ISOdia -->
+
+<!-- General Punctuation -->
+<!ENTITY ensp "&#8194;"> <!-- en space, U+2002 ISOpub -->
+<!ENTITY emsp "&#8195;"> <!-- em space, U+2003 ISOpub -->
+<!ENTITY thinsp "&#8201;"> <!-- thin space, U+2009 ISOpub -->
+<!ENTITY zwnj "&#8204;"> <!-- zero width non-joiner,
+ U+200C NEW RFC 2070 -->
+<!ENTITY zwj "&#8205;"> <!-- zero width joiner, U+200D NEW RFC 2070 -->
+<!ENTITY lrm "&#8206;"> <!-- left-to-right mark, U+200E NEW RFC 2070 -->
+<!ENTITY rlm "&#8207;"> <!-- right-to-left mark, U+200F NEW RFC 2070 -->
+<!ENTITY ndash "&#8211;"> <!-- en dash, U+2013 ISOpub -->
+<!ENTITY mdash "&#8212;"> <!-- em dash, U+2014 ISOpub -->
+<!ENTITY lsquo "&#8216;"> <!-- left single quotation mark,
+ U+2018 ISOnum -->
+<!ENTITY rsquo "&#8217;"> <!-- right single quotation mark,
+ U+2019 ISOnum -->
+<!ENTITY sbquo "&#8218;"> <!-- single low-9 quotation mark, U+201A NEW -->
+<!ENTITY ldquo "&#8220;"> <!-- left double quotation mark,
+ U+201C ISOnum -->
+<!ENTITY rdquo "&#8221;"> <!-- right double quotation mark,
+ U+201D ISOnum -->
+<!ENTITY bdquo "&#8222;"> <!-- double low-9 quotation mark, U+201E NEW -->
+<!ENTITY dagger "&#8224;"> <!-- dagger, U+2020 ISOpub -->
+<!ENTITY Dagger "&#8225;"> <!-- double dagger, U+2021 ISOpub -->
+<!ENTITY permil "&#8240;"> <!-- per mille sign, U+2030 ISOtech -->
+<!ENTITY lsaquo "&#8249;"> <!-- single left-pointing angle quotation mark,
+ U+2039 ISO proposed -->
+<!-- lsaquo is proposed but not yet ISO standardized -->
+<!ENTITY rsaquo "&#8250;"> <!-- single right-pointing angle quotation mark,
+ U+203A ISO proposed -->
+<!-- rsaquo is proposed but not yet ISO standardized -->
+
+<!-- Currency Symbols -->
+<!ENTITY euro "&#8364;"> <!-- euro sign, U+20AC NEW -->
diff --git a/dom/tests/mochitest/dom-level2-html/files/xhtml-symbol.ent b/dom/tests/mochitest/dom-level2-html/files/xhtml-symbol.ent
new file mode 100644
index 000000000..63c2abfa6
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/xhtml-symbol.ent
@@ -0,0 +1,237 @@
+<!-- Mathematical, Greek and Symbolic characters for XHTML -->
+
+<!-- Character entity set. Typical invocation:
+ <!ENTITY % HTMLsymbol PUBLIC
+ "-//W3C//ENTITIES Symbols for XHTML//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent">
+ %HTMLsymbol;
+-->
+
+<!-- Portions (C) International Organization for Standardization 1986:
+ Permission to copy in any form is granted for use with
+ conforming SGML systems and applications as defined in
+ ISO 8879, provided this notice is included in all copies.
+-->
+
+<!-- Relevant ISO entity set is given unless names are newly introduced.
+ New names (i.e., not in ISO 8879 list) do not clash with any
+ existing ISO 8879 entity names. ISO 10646 character numbers
+ are given for each character, in hex. values are decimal
+ conversions of the ISO 10646 values and refer to the document
+ character set. Names are Unicode names.
+-->
+
+<!-- Latin Extended-B -->
+<!ENTITY fnof "&#402;"> <!-- latin small letter f with hook = function
+ = florin, U+0192 ISOtech -->
+
+<!-- Greek -->
+<!ENTITY Alpha "&#913;"> <!-- greek capital letter alpha, U+0391 -->
+<!ENTITY Beta "&#914;"> <!-- greek capital letter beta, U+0392 -->
+<!ENTITY Gamma "&#915;"> <!-- greek capital letter gamma,
+ U+0393 ISOgrk3 -->
+<!ENTITY Delta "&#916;"> <!-- greek capital letter delta,
+ U+0394 ISOgrk3 -->
+<!ENTITY Epsilon "&#917;"> <!-- greek capital letter epsilon, U+0395 -->
+<!ENTITY Zeta "&#918;"> <!-- greek capital letter zeta, U+0396 -->
+<!ENTITY Eta "&#919;"> <!-- greek capital letter eta, U+0397 -->
+<!ENTITY Theta "&#920;"> <!-- greek capital letter theta,
+ U+0398 ISOgrk3 -->
+<!ENTITY Iota "&#921;"> <!-- greek capital letter iota, U+0399 -->
+<!ENTITY Kappa "&#922;"> <!-- greek capital letter kappa, U+039A -->
+<!ENTITY Lambda "&#923;"> <!-- greek capital letter lamda,
+ U+039B ISOgrk3 -->
+<!ENTITY Mu "&#924;"> <!-- greek capital letter mu, U+039C -->
+<!ENTITY Nu "&#925;"> <!-- greek capital letter nu, U+039D -->
+<!ENTITY Xi "&#926;"> <!-- greek capital letter xi, U+039E ISOgrk3 -->
+<!ENTITY Omicron "&#927;"> <!-- greek capital letter omicron, U+039F -->
+<!ENTITY Pi "&#928;"> <!-- greek capital letter pi, U+03A0 ISOgrk3 -->
+<!ENTITY Rho "&#929;"> <!-- greek capital letter rho, U+03A1 -->
+<!-- there is no Sigmaf, and no U+03A2 character either -->
+<!ENTITY Sigma "&#931;"> <!-- greek capital letter sigma,
+ U+03A3 ISOgrk3 -->
+<!ENTITY Tau "&#932;"> <!-- greek capital letter tau, U+03A4 -->
+<!ENTITY Upsilon "&#933;"> <!-- greek capital letter upsilon,
+ U+03A5 ISOgrk3 -->
+<!ENTITY Phi "&#934;"> <!-- greek capital letter phi,
+ U+03A6 ISOgrk3 -->
+<!ENTITY Chi "&#935;"> <!-- greek capital letter chi, U+03A7 -->
+<!ENTITY Psi "&#936;"> <!-- greek capital letter psi,
+ U+03A8 ISOgrk3 -->
+<!ENTITY Omega "&#937;"> <!-- greek capital letter omega,
+ U+03A9 ISOgrk3 -->
+
+<!ENTITY alpha "&#945;"> <!-- greek small letter alpha,
+ U+03B1 ISOgrk3 -->
+<!ENTITY beta "&#946;"> <!-- greek small letter beta, U+03B2 ISOgrk3 -->
+<!ENTITY gamma "&#947;"> <!-- greek small letter gamma,
+ U+03B3 ISOgrk3 -->
+<!ENTITY delta "&#948;"> <!-- greek small letter delta,
+ U+03B4 ISOgrk3 -->
+<!ENTITY epsilon "&#949;"> <!-- greek small letter epsilon,
+ U+03B5 ISOgrk3 -->
+<!ENTITY zeta "&#950;"> <!-- greek small letter zeta, U+03B6 ISOgrk3 -->
+<!ENTITY eta "&#951;"> <!-- greek small letter eta, U+03B7 ISOgrk3 -->
+<!ENTITY theta "&#952;"> <!-- greek small letter theta,
+ U+03B8 ISOgrk3 -->
+<!ENTITY iota "&#953;"> <!-- greek small letter iota, U+03B9 ISOgrk3 -->
+<!ENTITY kappa "&#954;"> <!-- greek small letter kappa,
+ U+03BA ISOgrk3 -->
+<!ENTITY lambda "&#955;"> <!-- greek small letter lamda,
+ U+03BB ISOgrk3 -->
+<!ENTITY mu "&#956;"> <!-- greek small letter mu, U+03BC ISOgrk3 -->
+<!ENTITY nu "&#957;"> <!-- greek small letter nu, U+03BD ISOgrk3 -->
+<!ENTITY xi "&#958;"> <!-- greek small letter xi, U+03BE ISOgrk3 -->
+<!ENTITY omicron "&#959;"> <!-- greek small letter omicron, U+03BF NEW -->
+<!ENTITY pi "&#960;"> <!-- greek small letter pi, U+03C0 ISOgrk3 -->
+<!ENTITY rho "&#961;"> <!-- greek small letter rho, U+03C1 ISOgrk3 -->
+<!ENTITY sigmaf "&#962;"> <!-- greek small letter final sigma,
+ U+03C2 ISOgrk3 -->
+<!ENTITY sigma "&#963;"> <!-- greek small letter sigma,
+ U+03C3 ISOgrk3 -->
+<!ENTITY tau "&#964;"> <!-- greek small letter tau, U+03C4 ISOgrk3 -->
+<!ENTITY upsilon "&#965;"> <!-- greek small letter upsilon,
+ U+03C5 ISOgrk3 -->
+<!ENTITY phi "&#966;"> <!-- greek small letter phi, U+03C6 ISOgrk3 -->
+<!ENTITY chi "&#967;"> <!-- greek small letter chi, U+03C7 ISOgrk3 -->
+<!ENTITY psi "&#968;"> <!-- greek small letter psi, U+03C8 ISOgrk3 -->
+<!ENTITY omega "&#969;"> <!-- greek small letter omega,
+ U+03C9 ISOgrk3 -->
+<!ENTITY thetasym "&#977;"> <!-- greek theta symbol,
+ U+03D1 NEW -->
+<!ENTITY upsih "&#978;"> <!-- greek upsilon with hook symbol,
+ U+03D2 NEW -->
+<!ENTITY piv "&#982;"> <!-- greek pi symbol, U+03D6 ISOgrk3 -->
+
+<!-- General Punctuation -->
+<!ENTITY bull "&#8226;"> <!-- bullet = black small circle,
+ U+2022 ISOpub -->
+<!-- bullet is NOT the same as bullet operator, U+2219 -->
+<!ENTITY hellip "&#8230;"> <!-- horizontal ellipsis = three dot leader,
+ U+2026 ISOpub -->
+<!ENTITY prime "&#8242;"> <!-- prime = minutes = feet, U+2032 ISOtech -->
+<!ENTITY Prime "&#8243;"> <!-- double prime = seconds = inches,
+ U+2033 ISOtech -->
+<!ENTITY oline "&#8254;"> <!-- overline = spacing overscore,
+ U+203E NEW -->
+<!ENTITY frasl "&#8260;"> <!-- fraction slash, U+2044 NEW -->
+
+<!-- Letterlike Symbols -->
+<!ENTITY weierp "&#8472;"> <!-- script capital P = power set
+ = Weierstrass p, U+2118 ISOamso -->
+<!ENTITY image "&#8465;"> <!-- black-letter capital I = imaginary part,
+ U+2111 ISOamso -->
+<!ENTITY real "&#8476;"> <!-- black-letter capital R = real part symbol,
+ U+211C ISOamso -->
+<!ENTITY trade "&#8482;"> <!-- trade mark sign, U+2122 ISOnum -->
+<!ENTITY alefsym "&#8501;"> <!-- alef symbol = first transfinite cardinal,
+ U+2135 NEW -->
+<!-- alef symbol is NOT the same as hebrew letter alef,
+ U+05D0 although the same glyph could be used to depict both characters -->
+
+<!-- Arrows -->
+<!ENTITY larr "&#8592;"> <!-- leftwards arrow, U+2190 ISOnum -->
+<!ENTITY uarr "&#8593;"> <!-- upwards arrow, U+2191 ISOnum-->
+<!ENTITY rarr "&#8594;"> <!-- rightwards arrow, U+2192 ISOnum -->
+<!ENTITY darr "&#8595;"> <!-- downwards arrow, U+2193 ISOnum -->
+<!ENTITY harr "&#8596;"> <!-- left right arrow, U+2194 ISOamsa -->
+<!ENTITY crarr "&#8629;"> <!-- downwards arrow with corner leftwards
+ = carriage return, U+21B5 NEW -->
+<!ENTITY lArr "&#8656;"> <!-- leftwards double arrow, U+21D0 ISOtech -->
+<!-- Unicode does not say that lArr is the same as the 'is implied by' arrow
+ but also does not have any other character for that function. So lArr can
+ be used for 'is implied by' as ISOtech suggests -->
+<!ENTITY uArr "&#8657;"> <!-- upwards double arrow, U+21D1 ISOamsa -->
+<!ENTITY rArr "&#8658;"> <!-- rightwards double arrow,
+ U+21D2 ISOtech -->
+<!-- Unicode does not say this is the 'implies' character but does not have
+ another character with this function so rArr can be used for 'implies'
+ as ISOtech suggests -->
+<!ENTITY dArr "&#8659;"> <!-- downwards double arrow, U+21D3 ISOamsa -->
+<!ENTITY hArr "&#8660;"> <!-- left right double arrow,
+ U+21D4 ISOamsa -->
+
+<!-- Mathematical Operators -->
+<!ENTITY forall "&#8704;"> <!-- for all, U+2200 ISOtech -->
+<!ENTITY part "&#8706;"> <!-- partial differential, U+2202 ISOtech -->
+<!ENTITY exist "&#8707;"> <!-- there exists, U+2203 ISOtech -->
+<!ENTITY empty "&#8709;"> <!-- empty set = null set, U+2205 ISOamso -->
+<!ENTITY nabla "&#8711;"> <!-- nabla = backward difference,
+ U+2207 ISOtech -->
+<!ENTITY isin "&#8712;"> <!-- element of, U+2208 ISOtech -->
+<!ENTITY notin "&#8713;"> <!-- not an element of, U+2209 ISOtech -->
+<!ENTITY ni "&#8715;"> <!-- contains as member, U+220B ISOtech -->
+<!ENTITY prod "&#8719;"> <!-- n-ary product = product sign,
+ U+220F ISOamsb -->
+<!-- prod is NOT the same character as U+03A0 'greek capital letter pi' though
+ the same glyph might be used for both -->
+<!ENTITY sum "&#8721;"> <!-- n-ary summation, U+2211 ISOamsb -->
+<!-- sum is NOT the same character as U+03A3 'greek capital letter sigma'
+ though the same glyph might be used for both -->
+<!ENTITY minus "&#8722;"> <!-- minus sign, U+2212 ISOtech -->
+<!ENTITY lowast "&#8727;"> <!-- asterisk operator, U+2217 ISOtech -->
+<!ENTITY radic "&#8730;"> <!-- square root = radical sign,
+ U+221A ISOtech -->
+<!ENTITY prop "&#8733;"> <!-- proportional to, U+221D ISOtech -->
+<!ENTITY infin "&#8734;"> <!-- infinity, U+221E ISOtech -->
+<!ENTITY ang "&#8736;"> <!-- angle, U+2220 ISOamso -->
+<!ENTITY and "&#8743;"> <!-- logical and = wedge, U+2227 ISOtech -->
+<!ENTITY or "&#8744;"> <!-- logical or = vee, U+2228 ISOtech -->
+<!ENTITY cap "&#8745;"> <!-- intersection = cap, U+2229 ISOtech -->
+<!ENTITY cup "&#8746;"> <!-- union = cup, U+222A ISOtech -->
+<!ENTITY int "&#8747;"> <!-- integral, U+222B ISOtech -->
+<!ENTITY there4 "&#8756;"> <!-- therefore, U+2234 ISOtech -->
+<!ENTITY sim "&#8764;"> <!-- tilde operator = varies with = similar to,
+ U+223C ISOtech -->
+<!-- tilde operator is NOT the same character as the tilde, U+007E,
+ although the same glyph might be used to represent both -->
+<!ENTITY cong "&#8773;"> <!-- approximately equal to, U+2245 ISOtech -->
+<!ENTITY asymp "&#8776;"> <!-- almost equal to = asymptotic to,
+ U+2248 ISOamsr -->
+<!ENTITY ne "&#8800;"> <!-- not equal to, U+2260 ISOtech -->
+<!ENTITY equiv "&#8801;"> <!-- identical to, U+2261 ISOtech -->
+<!ENTITY le "&#8804;"> <!-- less-than or equal to, U+2264 ISOtech -->
+<!ENTITY ge "&#8805;"> <!-- greater-than or equal to,
+ U+2265 ISOtech -->
+<!ENTITY sub "&#8834;"> <!-- subset of, U+2282 ISOtech -->
+<!ENTITY sup "&#8835;"> <!-- superset of, U+2283 ISOtech -->
+<!ENTITY nsub "&#8836;"> <!-- not a subset of, U+2284 ISOamsn -->
+<!ENTITY sube "&#8838;"> <!-- subset of or equal to, U+2286 ISOtech -->
+<!ENTITY supe "&#8839;"> <!-- superset of or equal to,
+ U+2287 ISOtech -->
+<!ENTITY oplus "&#8853;"> <!-- circled plus = direct sum,
+ U+2295 ISOamsb -->
+<!ENTITY otimes "&#8855;"> <!-- circled times = vector product,
+ U+2297 ISOamsb -->
+<!ENTITY perp "&#8869;"> <!-- up tack = orthogonal to = perpendicular,
+ U+22A5 ISOtech -->
+<!ENTITY sdot "&#8901;"> <!-- dot operator, U+22C5 ISOamsb -->
+<!-- dot operator is NOT the same character as U+00B7 middle dot -->
+
+<!-- Miscellaneous Technical -->
+<!ENTITY lceil "&#8968;"> <!-- left ceiling = APL upstile,
+ U+2308 ISOamsc -->
+<!ENTITY rceil "&#8969;"> <!-- right ceiling, U+2309 ISOamsc -->
+<!ENTITY lfloor "&#8970;"> <!-- left floor = APL downstile,
+ U+230A ISOamsc -->
+<!ENTITY rfloor "&#8971;"> <!-- right floor, U+230B ISOamsc -->
+<!ENTITY lang "&#9001;"> <!-- left-pointing angle bracket = bra,
+ U+2329 ISOtech -->
+<!-- lang is NOT the same character as U+003C 'less than sign'
+ or U+2039 'single left-pointing angle quotation mark' -->
+<!ENTITY rang "&#9002;"> <!-- right-pointing angle bracket = ket,
+ U+232A ISOtech -->
+<!-- rang is NOT the same character as U+003E 'greater than sign'
+ or U+203A 'single right-pointing angle quotation mark' -->
+
+<!-- Geometric Shapes -->
+<!ENTITY loz "&#9674;"> <!-- lozenge, U+25CA ISOpub -->
+
+<!-- Miscellaneous Symbols -->
+<!ENTITY spades "&#9824;"> <!-- black spade suit, U+2660 ISOpub -->
+<!-- black here seems to mean filled as opposed to hollow -->
+<!ENTITY clubs "&#9827;"> <!-- black club suit = shamrock,
+ U+2663 ISOpub -->
+<!ENTITY hearts "&#9829;"> <!-- black heart suit = valentine,
+ U+2665 ISOpub -->
+<!ENTITY diams "&#9830;"> <!-- black diamond suit, U+2666 ISOpub -->
diff --git a/dom/tests/mochitest/dom-level2-html/files/xhtml1-frameset.dtd b/dom/tests/mochitest/dom-level2-html/files/xhtml1-frameset.dtd
new file mode 100644
index 000000000..c22b666d1
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/xhtml1-frameset.dtd
@@ -0,0 +1,1235 @@
+<!--
+ Extensible HTML version 1.0 Frameset DTD
+
+ This is the same as HTML 4 Frameset except for
+ changes due to the differences between XML and SGML.
+
+ Namespace = http://www.w3.org/1999/xhtml
+
+ For further information, see: http://www.w3.org/TR/xhtml1
+
+ Copyright (c) 1998-2002 W3C (MIT, INRIA, Keio),
+ All Rights Reserved.
+
+ This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+ PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
+ SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"
+
+ $Revision: 1.1 $
+ $Date: 2008/03/29 19:06:30 $
+
+-->
+
+<!--================ Character mnemonic entities =========================-->
+
+<!ENTITY % HTMLlat1 PUBLIC
+ "-//W3C//ENTITIES Latin 1 for XHTML//EN"
+ "xhtml-lat1.ent">
+%HTMLlat1;
+
+<!ENTITY % HTMLsymbol PUBLIC
+ "-//W3C//ENTITIES Symbols for XHTML//EN"
+ "xhtml-symbol.ent">
+%HTMLsymbol;
+
+<!ENTITY % HTMLspecial PUBLIC
+ "-//W3C//ENTITIES Special for XHTML//EN"
+ "xhtml-special.ent">
+%HTMLspecial;
+
+<!--================== Imported Names ====================================-->
+
+<!ENTITY % ContentType "CDATA">
+ <!-- media type, as per [RFC2045] -->
+
+<!ENTITY % ContentTypes "CDATA">
+ <!-- comma-separated list of media types, as per [RFC2045] -->
+
+<!ENTITY % Charset "CDATA">
+ <!-- a character encoding, as per [RFC2045] -->
+
+<!ENTITY % Charsets "CDATA">
+ <!-- a space separated list of character encodings, as per [RFC2045] -->
+
+<!ENTITY % LanguageCode "NMTOKEN">
+ <!-- a language code, as per [RFC3066] -->
+
+<!ENTITY % Character "CDATA">
+ <!-- a single character, as per section 2.2 of [XML] -->
+
+<!ENTITY % Number "CDATA">
+ <!-- one or more digits -->
+
+<!ENTITY % LinkTypes "CDATA">
+ <!-- space-separated list of link types -->
+
+<!ENTITY % MediaDesc "CDATA">
+ <!-- single or comma-separated list of media descriptors -->
+
+<!ENTITY % URI "CDATA">
+ <!-- a Uniform Resource Identifier, see [RFC2396] -->
+
+<!ENTITY % UriList "CDATA">
+ <!-- a space separated list of Uniform Resource Identifiers -->
+
+<!ENTITY % Datetime "CDATA">
+ <!-- date and time information. ISO date format -->
+
+<!ENTITY % Script "CDATA">
+ <!-- script expression -->
+
+<!ENTITY % StyleSheet "CDATA">
+ <!-- style sheet data -->
+
+<!ENTITY % Text "CDATA">
+ <!-- used for titles etc. -->
+
+<!ENTITY % FrameTarget "NMTOKEN">
+ <!-- render in this frame -->
+
+<!ENTITY % Length "CDATA">
+ <!-- nn for pixels or nn% for percentage length -->
+
+<!ENTITY % MultiLength "CDATA">
+ <!-- pixel, percentage, or relative -->
+
+<!ENTITY % MultiLengths "CDATA">
+ <!-- comma-separated list of MultiLength -->
+
+<!ENTITY % Pixels "CDATA">
+ <!-- integer representing length in pixels -->
+
+<!-- these are used for image maps -->
+
+<!ENTITY % Shape "(rect|circle|poly|default)">
+
+<!ENTITY % Coords "CDATA">
+ <!-- comma separated list of lengths -->
+
+<!-- used for object, applet, img, input and iframe -->
+<!ENTITY % ImgAlign "(top|middle|bottom|left|right)">
+
+<!-- a color using sRGB: #RRGGBB as Hex values -->
+<!ENTITY % Color "CDATA">
+
+<!-- There are also 16 widely known color names with their sRGB values:
+
+ Black = #000000 Green = #008000
+ Silver = #C0C0C0 Lime = #00FF00
+ Gray = #808080 Olive = #808000
+ White = #FFFFFF Yellow = #FFFF00
+ Maroon = #800000 Navy = #000080
+ Red = #FF0000 Blue = #0000FF
+ Purple = #800080 Teal = #008080
+ Fuchsia= #FF00FF Aqua = #00FFFF
+-->
+
+<!--=================== Generic Attributes ===============================-->
+
+<!-- core attributes common to most elements
+ id document-wide unique id
+ class space separated list of classes
+ style associated style info
+ title advisory title/amplification
+-->
+<!ENTITY % coreattrs
+ "id ID #IMPLIED
+ class CDATA #IMPLIED
+ style %StyleSheet; #IMPLIED
+ title %Text; #IMPLIED"
+ >
+
+<!-- internationalization attributes
+ lang language code (backwards compatible)
+ xml:lang language code (as per XML 1.0 spec)
+ dir direction for weak/neutral text
+-->
+<!ENTITY % i18n
+ "lang %LanguageCode; #IMPLIED
+ xml:lang %LanguageCode; #IMPLIED
+ dir (ltr|rtl) #IMPLIED"
+ >
+
+<!-- attributes for common UI events
+ onclick a pointer button was clicked
+ ondblclick a pointer button was double clicked
+ onmousedown a pointer button was pressed down
+ onmouseup a pointer button was released
+ onmousemove a pointer was moved onto the element
+ onmouseout a pointer was moved away from the element
+ onkeypress a key was pressed and released
+ onkeydown a key was pressed down
+ onkeyup a key was released
+-->
+<!ENTITY % events
+ "onclick %Script; #IMPLIED
+ ondblclick %Script; #IMPLIED
+ onmousedown %Script; #IMPLIED
+ onmouseup %Script; #IMPLIED
+ onmouseover %Script; #IMPLIED
+ onmousemove %Script; #IMPLIED
+ onmouseout %Script; #IMPLIED
+ onkeypress %Script; #IMPLIED
+ onkeydown %Script; #IMPLIED
+ onkeyup %Script; #IMPLIED"
+ >
+
+<!-- attributes for elements that can get the focus
+ accesskey accessibility key character
+ tabindex position in tabbing order
+ onfocus the element got the focus
+ onblur the element lost the focus
+-->
+<!ENTITY % focus
+ "accesskey %Character; #IMPLIED
+ tabindex %Number; #IMPLIED
+ onfocus %Script; #IMPLIED
+ onblur %Script; #IMPLIED"
+ >
+
+<!ENTITY % attrs "%coreattrs; %i18n; %events;">
+
+<!-- text alignment for p, div, h1-h6. The default is
+ align="left" for ltr headings, "right" for rtl -->
+
+<!ENTITY % TextAlign "align (left|center|right|justify) #IMPLIED">
+
+<!--=================== Text Elements ====================================-->
+
+<!ENTITY % special.extra
+ "object | applet | img | map | iframe">
+
+<!ENTITY % special.basic
+ "br | span | bdo">
+
+<!ENTITY % special
+ "%special.basic; | %special.extra;">
+
+<!ENTITY % fontstyle.extra "big | small | font | basefont">
+
+<!ENTITY % fontstyle.basic "tt | i | b | u
+ | s | strike ">
+
+<!ENTITY % fontstyle "%fontstyle.basic; | %fontstyle.extra;">
+
+<!ENTITY % phrase.extra "sub | sup">
+<!ENTITY % phrase.basic "em | strong | dfn | code | q |
+ samp | kbd | var | cite | abbr | acronym">
+
+<!ENTITY % phrase "%phrase.basic; | %phrase.extra;">
+
+<!ENTITY % inline.forms "input | select | textarea | label | button">
+
+<!-- these can occur at block or inline level -->
+<!ENTITY % misc.inline "ins | del | script">
+
+<!-- these can only occur at block level -->
+<!ENTITY % misc "noscript | %misc.inline;">
+
+
+<!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;">
+
+<!-- %Inline; covers inline or "text-level" elements -->
+<!ENTITY % Inline "(#PCDATA | %inline; | %misc.inline;)*">
+
+<!--================== Block level elements ==============================-->
+
+<!ENTITY % heading "h1|h2|h3|h4|h5|h6">
+<!ENTITY % lists "ul | ol | dl | menu | dir">
+<!ENTITY % blocktext "pre | hr | blockquote | address | center">
+
+<!ENTITY % block
+ "p | %heading; | div | %lists; | %blocktext; | isindex | fieldset | table">
+
+<!-- %Flow; mixes block and inline and is used for list items etc. -->
+<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">
+
+<!--================== Content models for exclusions =====================-->
+
+<!-- a elements use %Inline; excluding a -->
+
+<!ENTITY % a.content
+ "(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc.inline;)*">
+
+<!-- pre uses %Inline excluding img, object, applet, big, small,
+ sub, sup, font, or basefont -->
+
+<!ENTITY % pre.content
+ "(#PCDATA | a | %special.basic; | %fontstyle.basic; | %phrase.basic; |
+ %inline.forms; | %misc.inline;)*">
+
+
+<!-- form uses %Flow; excluding form -->
+
+<!ENTITY % form.content "(#PCDATA | %block; | %inline; | %misc;)*">
+
+<!-- button uses %Flow; but excludes a, form, form controls, iframe -->
+
+<!ENTITY % button.content
+ "(#PCDATA | p | %heading; | div | %lists; | %blocktext; |
+ table | br | span | bdo | object | applet | img | map |
+ %fontstyle; | %phrase; | %misc;)*">
+
+<!--================ Document Structure ==================================-->
+
+<!-- the namespace URI designates the document profile -->
+
+<!ELEMENT html (head, frameset)>
+<!ATTLIST html
+ %i18n;
+ id ID #IMPLIED
+ xmlns %URI; #FIXED 'http://www.w3.org/1999/xhtml'
+ >
+
+<!--================ Document Head =======================================-->
+
+<!ENTITY % head.misc "(script|style|meta|link|object|isindex)*">
+
+<!-- content model is %head.misc; combined with a single
+ title and an optional base element in any order -->
+
+<!ELEMENT head (%head.misc;,
+ ((title, %head.misc;, (base, %head.misc;)?) |
+ (base, %head.misc;, (title, %head.misc;))))>
+
+<!ATTLIST head
+ %i18n;
+ id ID #IMPLIED
+ profile %URI; #IMPLIED
+ >
+
+<!-- The title element is not considered part of the flow of text.
+ It should be displayed, for example as the page header or
+ window title. Exactly one title is required per document.
+ -->
+<!ELEMENT title (#PCDATA)>
+<!ATTLIST title
+ %i18n;
+ id ID #IMPLIED
+ >
+
+<!-- document base URI -->
+
+<!ELEMENT base EMPTY>
+<!ATTLIST base
+ id ID #IMPLIED
+ href %URI; #IMPLIED
+ target %FrameTarget; #IMPLIED
+ >
+
+<!-- generic metainformation -->
+<!ELEMENT meta EMPTY>
+<!ATTLIST meta
+ %i18n;
+ id ID #IMPLIED
+ http-equiv CDATA #IMPLIED
+ name CDATA #IMPLIED
+ content CDATA #REQUIRED
+ scheme CDATA #IMPLIED
+ >
+
+<!--
+ Relationship values can be used in principle:
+
+ a) for document specific toolbars/menus when used
+ with the link element in document head e.g.
+ start, contents, previous, next, index, end, help
+ b) to link to a separate style sheet (rel="stylesheet")
+ c) to make a link to a script (rel="script")
+ d) by stylesheets to control how collections of
+ html nodes are rendered into printed documents
+ e) to make a link to a printable version of this document
+ e.g. a PostScript or PDF version (rel="alternate" media="print")
+-->
+
+<!ELEMENT link EMPTY>
+<!ATTLIST link
+ %attrs;
+ charset %Charset; #IMPLIED
+ href %URI; #IMPLIED
+ hreflang %LanguageCode; #IMPLIED
+ type %ContentType; #IMPLIED
+ rel %LinkTypes; #IMPLIED
+ rev %LinkTypes; #IMPLIED
+ media %MediaDesc; #IMPLIED
+ target %FrameTarget; #IMPLIED
+ >
+
+<!-- style info, which may include CDATA sections -->
+<!ELEMENT style (#PCDATA)>
+<!ATTLIST style
+ %i18n;
+ id ID #IMPLIED
+ type %ContentType; #REQUIRED
+ media %MediaDesc; #IMPLIED
+ title %Text; #IMPLIED
+ xml:space (preserve) #FIXED 'preserve'
+ >
+
+<!-- script statements, which may include CDATA sections -->
+<!ELEMENT script (#PCDATA)>
+<!ATTLIST script
+ id ID #IMPLIED
+ charset %Charset; #IMPLIED
+ type %ContentType; #REQUIRED
+ language CDATA #IMPLIED
+ src %URI; #IMPLIED
+ defer (defer) #IMPLIED
+ xml:space (preserve) #FIXED 'preserve'
+ >
+
+<!-- alternate content container for non script-based rendering -->
+
+<!ELEMENT noscript %Flow;>
+<!ATTLIST noscript
+ %attrs;
+ >
+
+<!--======================= Frames =======================================-->
+
+<!-- only one noframes element permitted per document -->
+
+<!ELEMENT frameset (frameset|frame|noframes)*>
+<!ATTLIST frameset
+ %coreattrs;
+ rows %MultiLengths; #IMPLIED
+ cols %MultiLengths; #IMPLIED
+ onload %Script; #IMPLIED
+ onunload %Script; #IMPLIED
+ >
+
+<!-- reserved frame names start with "_" otherwise starts with letter -->
+
+<!-- tiled window within frameset -->
+
+<!ELEMENT frame EMPTY>
+<!ATTLIST frame
+ %coreattrs;
+ longdesc %URI; #IMPLIED
+ name NMTOKEN #IMPLIED
+ src %URI; #IMPLIED
+ frameborder (1|0) "1"
+ marginwidth %Pixels; #IMPLIED
+ marginheight %Pixels; #IMPLIED
+ noresize (noresize) #IMPLIED
+ scrolling (yes|no|auto) "auto"
+ >
+
+<!-- inline subwindow -->
+
+<!ELEMENT iframe %Flow;>
+<!ATTLIST iframe
+ %coreattrs;
+ longdesc %URI; #IMPLIED
+ name NMTOKEN #IMPLIED
+ src %URI; #IMPLIED
+ frameborder (1|0) "1"
+ marginwidth %Pixels; #IMPLIED
+ marginheight %Pixels; #IMPLIED
+ scrolling (yes|no|auto) "auto"
+ align %ImgAlign; #IMPLIED
+ height %Length; #IMPLIED
+ width %Length; #IMPLIED
+ >
+
+<!-- alternate content container for non frame-based rendering -->
+
+<!ELEMENT noframes (body)>
+<!ATTLIST noframes
+ %attrs;
+ >
+
+<!--=================== Document Body ====================================-->
+
+<!ELEMENT body %Flow;>
+<!ATTLIST body
+ %attrs;
+ onload %Script; #IMPLIED
+ onunload %Script; #IMPLIED
+ background %URI; #IMPLIED
+ bgcolor %Color; #IMPLIED
+ text %Color; #IMPLIED
+ link %Color; #IMPLIED
+ vlink %Color; #IMPLIED
+ alink %Color; #IMPLIED
+ >
+
+<!ELEMENT div %Flow;> <!-- generic language/style container -->
+<!ATTLIST div
+ %attrs;
+ %TextAlign;
+ >
+
+<!--=================== Paragraphs =======================================-->
+
+<!ELEMENT p %Inline;>
+<!ATTLIST p
+ %attrs;
+ %TextAlign;
+ >
+
+<!--=================== Headings =========================================-->
+
+<!--
+ There are six levels of headings from h1 (the most important)
+ to h6 (the least important).
+-->
+
+<!ELEMENT h1 %Inline;>
+<!ATTLIST h1
+ %attrs;
+ %TextAlign;
+ >
+
+<!ELEMENT h2 %Inline;>
+<!ATTLIST h2
+ %attrs;
+ %TextAlign;
+ >
+
+<!ELEMENT h3 %Inline;>
+<!ATTLIST h3
+ %attrs;
+ %TextAlign;
+ >
+
+<!ELEMENT h4 %Inline;>
+<!ATTLIST h4
+ %attrs;
+ %TextAlign;
+ >
+
+<!ELEMENT h5 %Inline;>
+<!ATTLIST h5
+ %attrs;
+ %TextAlign;
+ >
+
+<!ELEMENT h6 %Inline;>
+<!ATTLIST h6
+ %attrs;
+ %TextAlign;
+ >
+
+<!--=================== Lists ============================================-->
+
+<!-- Unordered list bullet styles -->
+
+<!ENTITY % ULStyle "(disc|square|circle)">
+
+<!-- Unordered list -->
+
+<!ELEMENT ul (li)+>
+<!ATTLIST ul
+ %attrs;
+ type %ULStyle; #IMPLIED
+ compact (compact) #IMPLIED
+ >
+
+<!-- Ordered list numbering style
+
+ 1 arabic numbers 1, 2, 3, ...
+ a lower alpha a, b, c, ...
+ A upper alpha A, B, C, ...
+ i lower roman i, ii, iii, ...
+ I upper roman I, II, III, ...
+
+ The style is applied to the sequence number which by default
+ is reset to 1 for the first list item in an ordered list.
+-->
+<!ENTITY % OLStyle "CDATA">
+
+<!-- Ordered (numbered) list -->
+
+<!ELEMENT ol (li)+>
+<!ATTLIST ol
+ %attrs;
+ type %OLStyle; #IMPLIED
+ compact (compact) #IMPLIED
+ start %Number; #IMPLIED
+ >
+
+<!-- single column list (DEPRECATED) -->
+<!ELEMENT menu (li)+>
+<!ATTLIST menu
+ %attrs;
+ compact (compact) #IMPLIED
+ >
+
+<!-- multiple column list (DEPRECATED) -->
+<!ELEMENT dir (li)+>
+<!ATTLIST dir
+ %attrs;
+ compact (compact) #IMPLIED
+ >
+
+<!-- LIStyle is constrained to: "(%ULStyle;|%OLStyle;)" -->
+<!ENTITY % LIStyle "CDATA">
+
+<!-- list item -->
+
+<!ELEMENT li %Flow;>
+<!ATTLIST li
+ %attrs;
+ type %LIStyle; #IMPLIED
+ value %Number; #IMPLIED
+ >
+
+<!-- definition lists - dt for term, dd for its definition -->
+
+<!ELEMENT dl (dt|dd)+>
+<!ATTLIST dl
+ %attrs;
+ compact (compact) #IMPLIED
+ >
+
+<!ELEMENT dt %Inline;>
+<!ATTLIST dt
+ %attrs;
+ >
+
+<!ELEMENT dd %Flow;>
+<!ATTLIST dd
+ %attrs;
+ >
+
+<!--=================== Address ==========================================-->
+
+<!-- information on author -->
+
+<!ELEMENT address (#PCDATA | %inline; | %misc.inline; | p)*>
+<!ATTLIST address
+ %attrs;
+ >
+
+<!--=================== Horizontal Rule ==================================-->
+
+<!ELEMENT hr EMPTY>
+<!ATTLIST hr
+ %attrs;
+ align (left|center|right) #IMPLIED
+ noshade (noshade) #IMPLIED
+ size %Pixels; #IMPLIED
+ width %Length; #IMPLIED
+ >
+
+<!--=================== Preformatted Text ================================-->
+
+<!-- content is %Inline; excluding
+ "img|object|applet|big|small|sub|sup|font|basefont" -->
+
+<!ELEMENT pre %pre.content;>
+<!ATTLIST pre
+ %attrs;
+ width %Number; #IMPLIED
+ xml:space (preserve) #FIXED 'preserve'
+ >
+
+<!--=================== Block-like Quotes ================================-->
+
+<!ELEMENT blockquote %Flow;>
+<!ATTLIST blockquote
+ %attrs;
+ cite %URI; #IMPLIED
+ >
+
+<!--=================== Text alignment ===================================-->
+
+<!-- center content -->
+<!ELEMENT center %Flow;>
+<!ATTLIST center
+ %attrs;
+ >
+
+<!--=================== Inserted/Deleted Text ============================-->
+
+
+<!--
+ ins/del are allowed in block and inline content, but its
+ inappropriate to include block content within an ins element
+ occurring in inline content.
+-->
+<!ELEMENT ins %Flow;>
+<!ATTLIST ins
+ %attrs;
+ cite %URI; #IMPLIED
+ datetime %Datetime; #IMPLIED
+ >
+
+<!ELEMENT del %Flow;>
+<!ATTLIST del
+ %attrs;
+ cite %URI; #IMPLIED
+ datetime %Datetime; #IMPLIED
+ >
+
+<!--================== The Anchor Element ================================-->
+
+<!-- content is %Inline; except that anchors shouldn't be nested -->
+
+<!ELEMENT a %a.content;>
+<!ATTLIST a
+ %attrs;
+ %focus;
+ charset %Charset; #IMPLIED
+ type %ContentType; #IMPLIED
+ name NMTOKEN #IMPLIED
+ href %URI; #IMPLIED
+ hreflang %LanguageCode; #IMPLIED
+ rel %LinkTypes; #IMPLIED
+ rev %LinkTypes; #IMPLIED
+ shape %Shape; "rect"
+ coords %Coords; #IMPLIED
+ target %FrameTarget; #IMPLIED
+ >
+
+<!--===================== Inline Elements ================================-->
+
+<!ELEMENT span %Inline;> <!-- generic language/style container -->
+<!ATTLIST span
+ %attrs;
+ >
+
+<!ELEMENT bdo %Inline;> <!-- I18N BiDi over-ride -->
+<!ATTLIST bdo
+ %coreattrs;
+ %events;
+ lang %LanguageCode; #IMPLIED
+ xml:lang %LanguageCode; #IMPLIED
+ dir (ltr|rtl) #REQUIRED
+ >
+
+<!ELEMENT br EMPTY> <!-- forced line break -->
+<!ATTLIST br
+ %coreattrs;
+ clear (left|all|right|none) "none"
+ >
+
+<!ELEMENT em %Inline;> <!-- emphasis -->
+<!ATTLIST em %attrs;>
+
+<!ELEMENT strong %Inline;> <!-- strong emphasis -->
+<!ATTLIST strong %attrs;>
+
+<!ELEMENT dfn %Inline;> <!-- definitional -->
+<!ATTLIST dfn %attrs;>
+
+<!ELEMENT code %Inline;> <!-- program code -->
+<!ATTLIST code %attrs;>
+
+<!ELEMENT samp %Inline;> <!-- sample -->
+<!ATTLIST samp %attrs;>
+
+<!ELEMENT kbd %Inline;> <!-- something user would type -->
+<!ATTLIST kbd %attrs;>
+
+<!ELEMENT var %Inline;> <!-- variable -->
+<!ATTLIST var %attrs;>
+
+<!ELEMENT cite %Inline;> <!-- citation -->
+<!ATTLIST cite %attrs;>
+
+<!ELEMENT abbr %Inline;> <!-- abbreviation -->
+<!ATTLIST abbr %attrs;>
+
+<!ELEMENT acronym %Inline;> <!-- acronym -->
+<!ATTLIST acronym %attrs;>
+
+<!ELEMENT q %Inline;> <!-- inlined quote -->
+<!ATTLIST q
+ %attrs;
+ cite %URI; #IMPLIED
+ >
+
+<!ELEMENT sub %Inline;> <!-- subscript -->
+<!ATTLIST sub %attrs;>
+
+<!ELEMENT sup %Inline;> <!-- superscript -->
+<!ATTLIST sup %attrs;>
+
+<!ELEMENT tt %Inline;> <!-- fixed pitch font -->
+<!ATTLIST tt %attrs;>
+
+<!ELEMENT i %Inline;> <!-- italic font -->
+<!ATTLIST i %attrs;>
+
+<!ELEMENT b %Inline;> <!-- bold font -->
+<!ATTLIST b %attrs;>
+
+<!ELEMENT big %Inline;> <!-- bigger font -->
+<!ATTLIST big %attrs;>
+
+<!ELEMENT small %Inline;> <!-- smaller font -->
+<!ATTLIST small %attrs;>
+
+<!ELEMENT u %Inline;> <!-- underline -->
+<!ATTLIST u %attrs;>
+
+<!ELEMENT s %Inline;> <!-- strike-through -->
+<!ATTLIST s %attrs;>
+
+<!ELEMENT strike %Inline;> <!-- strike-through -->
+<!ATTLIST strike %attrs;>
+
+<!ELEMENT basefont EMPTY> <!-- base font size -->
+<!ATTLIST basefont
+ id ID #IMPLIED
+ size CDATA #REQUIRED
+ color %Color; #IMPLIED
+ face CDATA #IMPLIED
+ >
+
+<!ELEMENT font %Inline;> <!-- local change to font -->
+<!ATTLIST font
+ %coreattrs;
+ %i18n;
+ size CDATA #IMPLIED
+ color %Color; #IMPLIED
+ face CDATA #IMPLIED
+ >
+
+<!--==================== Object ======================================-->
+<!--
+ object is used to embed objects as part of HTML pages.
+ param elements should precede other content. Parameters
+ can also be expressed as attribute/value pairs on the
+ object element itself when brevity is desired.
+-->
+
+<!ELEMENT object (#PCDATA | param | %block; | form |%inline; | %misc;)*>
+<!ATTLIST object
+ %attrs;
+ declare (declare) #IMPLIED
+ classid %URI; #IMPLIED
+ codebase %URI; #IMPLIED
+ data %URI; #IMPLIED
+ type %ContentType; #IMPLIED
+ codetype %ContentType; #IMPLIED
+ archive %UriList; #IMPLIED
+ standby %Text; #IMPLIED
+ height %Length; #IMPLIED
+ width %Length; #IMPLIED
+ usemap %URI; #IMPLIED
+ name NMTOKEN #IMPLIED
+ tabindex %Number; #IMPLIED
+ align %ImgAlign; #IMPLIED
+ border %Pixels; #IMPLIED
+ hspace %Pixels; #IMPLIED
+ vspace %Pixels; #IMPLIED
+ >
+
+<!--
+ param is used to supply a named property value.
+ In XML it would seem natural to follow RDF and support an
+ abbreviated syntax where the param elements are replaced
+ by attribute value pairs on the object start tag.
+-->
+<!ELEMENT param EMPTY>
+<!ATTLIST param
+ id ID #IMPLIED
+ name CDATA #REQUIRED
+ value CDATA #IMPLIED
+ valuetype (data|ref|object) "data"
+ type %ContentType; #IMPLIED
+ >
+
+<!--=================== Java applet ==================================-->
+<!--
+ One of code or object attributes must be present.
+ Place param elements before other content.
+-->
+<!ELEMENT applet (#PCDATA | param | %block; | form | %inline; | %misc;)*>
+<!ATTLIST applet
+ %coreattrs;
+ codebase %URI; #IMPLIED
+ archive CDATA #IMPLIED
+ code CDATA #IMPLIED
+ object CDATA #IMPLIED
+ alt %Text; #IMPLIED
+ name NMTOKEN #IMPLIED
+ width %Length; #REQUIRED
+ height %Length; #REQUIRED
+ align %ImgAlign; #IMPLIED
+ hspace %Pixels; #IMPLIED
+ vspace %Pixels; #IMPLIED
+ >
+
+<!--=================== Images ===========================================-->
+
+<!--
+ To avoid accessibility problems for people who aren't
+ able to see the image, you should provide a text
+ description using the alt and longdesc attributes.
+ In addition, avoid the use of server-side image maps.
+-->
+
+<!ELEMENT img EMPTY>
+<!ATTLIST img
+ %attrs;
+ src %URI; #REQUIRED
+ alt %Text; #REQUIRED
+ name NMTOKEN #IMPLIED
+ longdesc %URI; #IMPLIED
+ height %Length; #IMPLIED
+ width %Length; #IMPLIED
+ usemap %URI; #IMPLIED
+ ismap (ismap) #IMPLIED
+ align %ImgAlign; #IMPLIED
+ border %Pixels; #IMPLIED
+ hspace %Pixels; #IMPLIED
+ vspace %Pixels; #IMPLIED
+ >
+
+<!-- usemap points to a map element which may be in this document
+ or an external document, although the latter is not widely supported -->
+
+<!--================== Client-side image maps ============================-->
+
+<!-- These can be placed in the same document or grouped in a
+ separate document although this isn't yet widely supported -->
+
+<!ELEMENT map ((%block; | form | %misc;)+ | area+)>
+<!ATTLIST map
+ %i18n;
+ %events;
+ id ID #REQUIRED
+ class CDATA #IMPLIED
+ style %StyleSheet; #IMPLIED
+ title %Text; #IMPLIED
+ name NMTOKEN #IMPLIED
+ >
+
+<!ELEMENT area EMPTY>
+<!ATTLIST area
+ %attrs;
+ %focus;
+ shape %Shape; "rect"
+ coords %Coords; #IMPLIED
+ href %URI; #IMPLIED
+ nohref (nohref) #IMPLIED
+ alt %Text; #REQUIRED
+ target %FrameTarget; #IMPLIED
+ >
+
+<!--================ Forms ===============================================-->
+
+<!ELEMENT form %form.content;> <!-- forms shouldn't be nested -->
+
+<!ATTLIST form
+ %attrs;
+ action %URI; #REQUIRED
+ method (get|post) "get"
+ name NMTOKEN #IMPLIED
+ enctype %ContentType; "application/x-www-form-urlencoded"
+ onsubmit %Script; #IMPLIED
+ onreset %Script; #IMPLIED
+ accept %ContentTypes; #IMPLIED
+ accept-charset %Charsets; #IMPLIED
+ target %FrameTarget; #IMPLIED
+ >
+
+<!--
+ Each label must not contain more than ONE field
+ Label elements shouldn't be nested.
+-->
+<!ELEMENT label %Inline;>
+<!ATTLIST label
+ %attrs;
+ for IDREF #IMPLIED
+ accesskey %Character; #IMPLIED
+ onfocus %Script; #IMPLIED
+ onblur %Script; #IMPLIED
+ >
+
+<!ENTITY % InputType
+ "(text | password | checkbox |
+ radio | submit | reset |
+ file | hidden | image | button)"
+ >
+
+<!-- the name attribute is required for all but submit & reset -->
+
+<!ELEMENT input EMPTY> <!-- form control -->
+<!ATTLIST input
+ %attrs;
+ %focus;
+ type %InputType; "text"
+ name CDATA #IMPLIED
+ value CDATA #IMPLIED
+ checked (checked) #IMPLIED
+ disabled (disabled) #IMPLIED
+ readonly (readonly) #IMPLIED
+ size CDATA #IMPLIED
+ maxlength %Number; #IMPLIED
+ src %URI; #IMPLIED
+ alt CDATA #IMPLIED
+ usemap %URI; #IMPLIED
+ onselect %Script; #IMPLIED
+ onchange %Script; #IMPLIED
+ accept %ContentTypes; #IMPLIED
+ align %ImgAlign; #IMPLIED
+ >
+
+<!ELEMENT select (optgroup|option)+> <!-- option selector -->
+<!ATTLIST select
+ %attrs;
+ name CDATA #IMPLIED
+ size %Number; #IMPLIED
+ multiple (multiple) #IMPLIED
+ disabled (disabled) #IMPLIED
+ tabindex %Number; #IMPLIED
+ onfocus %Script; #IMPLIED
+ onblur %Script; #IMPLIED
+ onchange %Script; #IMPLIED
+ >
+
+<!ELEMENT optgroup (option)+> <!-- option group -->
+<!ATTLIST optgroup
+ %attrs;
+ disabled (disabled) #IMPLIED
+ label %Text; #REQUIRED
+ >
+
+<!ELEMENT option (#PCDATA)> <!-- selectable choice -->
+<!ATTLIST option
+ %attrs;
+ selected (selected) #IMPLIED
+ disabled (disabled) #IMPLIED
+ label %Text; #IMPLIED
+ value CDATA #IMPLIED
+ >
+
+<!ELEMENT textarea (#PCDATA)> <!-- multi-line text field -->
+<!ATTLIST textarea
+ %attrs;
+ %focus;
+ name CDATA #IMPLIED
+ rows %Number; #REQUIRED
+ cols %Number; #REQUIRED
+ disabled (disabled) #IMPLIED
+ readonly (readonly) #IMPLIED
+ onselect %Script; #IMPLIED
+ onchange %Script; #IMPLIED
+ >
+
+<!--
+ The fieldset element is used to group form fields.
+ Only one legend element should occur in the content
+ and if present should only be preceded by whitespace.
+-->
+<!ELEMENT fieldset (#PCDATA | legend | %block; | form | %inline; | %misc;)*>
+<!ATTLIST fieldset
+ %attrs;
+ >
+
+<!ENTITY % LAlign "(top|bottom|left|right)">
+
+<!ELEMENT legend %Inline;> <!-- fieldset label -->
+<!ATTLIST legend
+ %attrs;
+ accesskey %Character; #IMPLIED
+ align %LAlign; #IMPLIED
+ >
+
+<!--
+ Content is %Flow; excluding a, form, form controls, iframe
+-->
+<!ELEMENT button %button.content;> <!-- push button -->
+<!ATTLIST button
+ %attrs;
+ %focus;
+ name CDATA #IMPLIED
+ value CDATA #IMPLIED
+ type (button|submit|reset) "submit"
+ disabled (disabled) #IMPLIED
+ >
+
+<!-- single-line text input control (DEPRECATED) -->
+<!ELEMENT isindex EMPTY>
+<!ATTLIST isindex
+ %coreattrs;
+ %i18n;
+ prompt %Text; #IMPLIED
+ >
+
+<!--======================= Tables =======================================-->
+
+<!-- Derived from IETF HTML table standard, see [RFC1942] -->
+
+<!--
+ The border attribute sets the thickness of the frame around the
+ table. The default units are screen pixels.
+
+ The frame attribute specifies which parts of the frame around
+ the table should be rendered. The values are not the same as
+ CALS to avoid a name clash with the valign attribute.
+-->
+<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
+
+<!--
+ The rules attribute defines which rules to draw between cells:
+
+ If rules is absent then assume:
+ "none" if border is absent or border="0" otherwise "all"
+-->
+
+<!ENTITY % TRules "(none | groups | rows | cols | all)">
+
+<!-- horizontal placement of table relative to document -->
+<!ENTITY % TAlign "(left|center|right)">
+
+<!-- horizontal alignment attributes for cell contents
+
+ char alignment char, e.g. char=":"
+ charoff offset for alignment char
+-->
+<!ENTITY % cellhalign
+ "align (left|center|right|justify|char) #IMPLIED
+ char %Character; #IMPLIED
+ charoff %Length; #IMPLIED"
+ >
+
+<!-- vertical alignment attributes for cell contents -->
+<!ENTITY % cellvalign
+ "valign (top|middle|bottom|baseline) #IMPLIED"
+ >
+
+<!ELEMENT table
+ (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>
+<!ELEMENT caption %Inline;>
+<!ELEMENT thead (tr)+>
+<!ELEMENT tfoot (tr)+>
+<!ELEMENT tbody (tr)+>
+<!ELEMENT colgroup (col)*>
+<!ELEMENT col EMPTY>
+<!ELEMENT tr (th|td)+>
+<!ELEMENT th %Flow;>
+<!ELEMENT td %Flow;>
+
+<!ATTLIST table
+ %attrs;
+ summary %Text; #IMPLIED
+ width %Length; #IMPLIED
+ border %Pixels; #IMPLIED
+ frame %TFrame; #IMPLIED
+ rules %TRules; #IMPLIED
+ cellspacing %Length; #IMPLIED
+ cellpadding %Length; #IMPLIED
+ align %TAlign; #IMPLIED
+ bgcolor %Color; #IMPLIED
+ >
+
+<!ENTITY % CAlign "(top|bottom|left|right)">
+
+<!ATTLIST caption
+ %attrs;
+ align %CAlign; #IMPLIED
+ >
+
+<!--
+colgroup groups a set of col elements. It allows you to group
+several semantically related columns together.
+-->
+<!ATTLIST colgroup
+ %attrs;
+ span %Number; "1"
+ width %MultiLength; #IMPLIED
+ %cellhalign;
+ %cellvalign;
+ >
+
+<!--
+ col elements define the alignment properties for cells in
+ one or more columns.
+
+ The width attribute specifies the width of the columns, e.g.
+
+ width=64 width in screen pixels
+ width=0.5* relative width of 0.5
+
+ The span attribute causes the attributes of one
+ col element to apply to more than one column.
+-->
+<!ATTLIST col
+ %attrs;
+ span %Number; "1"
+ width %MultiLength; #IMPLIED
+ %cellhalign;
+ %cellvalign;
+ >
+
+<!--
+ Use thead to duplicate headers when breaking table
+ across page boundaries, or for static headers when
+ tbody sections are rendered in scrolling panel.
+
+ Use tfoot to duplicate footers when breaking table
+ across page boundaries, or for static footers when
+ tbody sections are rendered in scrolling panel.
+
+ Use multiple tbody sections when rules are needed
+ between groups of table rows.
+-->
+<!ATTLIST thead
+ %attrs;
+ %cellhalign;
+ %cellvalign;
+ >
+
+<!ATTLIST tfoot
+ %attrs;
+ %cellhalign;
+ %cellvalign;
+ >
+
+<!ATTLIST tbody
+ %attrs;
+ %cellhalign;
+ %cellvalign;
+ >
+
+<!ATTLIST tr
+ %attrs;
+ %cellhalign;
+ %cellvalign;
+ bgcolor %Color; #IMPLIED
+ >
+
+<!-- Scope is simpler than headers attribute for common tables -->
+<!ENTITY % Scope "(row|col|rowgroup|colgroup)">
+
+<!-- th is for headers, td for data and for cells acting as both -->
+
+<!ATTLIST th
+ %attrs;
+ abbr %Text; #IMPLIED
+ axis CDATA #IMPLIED
+ headers IDREFS #IMPLIED
+ scope %Scope; #IMPLIED
+ rowspan %Number; "1"
+ colspan %Number; "1"
+ %cellhalign;
+ %cellvalign;
+ nowrap (nowrap) #IMPLIED
+ bgcolor %Color; #IMPLIED
+ width %Pixels; #IMPLIED
+ height %Pixels; #IMPLIED
+ >
+
+<!ATTLIST td
+ %attrs;
+ abbr %Text; #IMPLIED
+ axis CDATA #IMPLIED
+ headers IDREFS #IMPLIED
+ scope %Scope; #IMPLIED
+ rowspan %Number; "1"
+ colspan %Number; "1"
+ %cellhalign;
+ %cellvalign;
+ nowrap (nowrap) #IMPLIED
+ bgcolor %Color; #IMPLIED
+ width %Pixels; #IMPLIED
+ height %Pixels; #IMPLIED
+ >
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/xhtml1-strict.dtd b/dom/tests/mochitest/dom-level2-html/files/xhtml1-strict.dtd
new file mode 100644
index 000000000..06228785f
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/xhtml1-strict.dtd
@@ -0,0 +1,978 @@
+<!--
+ Extensible HTML version 1.0 Strict DTD
+
+ This is the same as HTML 4 Strict except for
+ changes due to the differences between XML and SGML.
+
+ Namespace = http://www.w3.org/1999/xhtml
+
+ For further information, see: http://www.w3.org/TR/xhtml1
+
+ Copyright (c) 1998-2002 W3C (MIT, INRIA, Keio),
+ All Rights Reserved.
+
+ This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
+
+ $Revision: 1.1 $
+ $Date: 2008/03/29 19:06:30 $
+
+-->
+
+<!--================ Character mnemonic entities =========================-->
+
+<!ENTITY % HTMLlat1 PUBLIC
+ "-//W3C//ENTITIES Latin 1 for XHTML//EN"
+ "xhtml-lat1.ent">
+%HTMLlat1;
+
+<!ENTITY % HTMLsymbol PUBLIC
+ "-//W3C//ENTITIES Symbols for XHTML//EN"
+ "xhtml-symbol.ent">
+%HTMLsymbol;
+
+<!ENTITY % HTMLspecial PUBLIC
+ "-//W3C//ENTITIES Special for XHTML//EN"
+ "xhtml-special.ent">
+%HTMLspecial;
+
+<!--================== Imported Names ====================================-->
+
+<!ENTITY % ContentType "CDATA">
+ <!-- media type, as per [RFC2045] -->
+
+<!ENTITY % ContentTypes "CDATA">
+ <!-- comma-separated list of media types, as per [RFC2045] -->
+
+<!ENTITY % Charset "CDATA">
+ <!-- a character encoding, as per [RFC2045] -->
+
+<!ENTITY % Charsets "CDATA">
+ <!-- a space separated list of character encodings, as per [RFC2045] -->
+
+<!ENTITY % LanguageCode "NMTOKEN">
+ <!-- a language code, as per [RFC3066] -->
+
+<!ENTITY % Character "CDATA">
+ <!-- a single character, as per section 2.2 of [XML] -->
+
+<!ENTITY % Number "CDATA">
+ <!-- one or more digits -->
+
+<!ENTITY % LinkTypes "CDATA">
+ <!-- space-separated list of link types -->
+
+<!ENTITY % MediaDesc "CDATA">
+ <!-- single or comma-separated list of media descriptors -->
+
+<!ENTITY % URI "CDATA">
+ <!-- a Uniform Resource Identifier, see [RFC2396] -->
+
+<!ENTITY % UriList "CDATA">
+ <!-- a space separated list of Uniform Resource Identifiers -->
+
+<!ENTITY % Datetime "CDATA">
+ <!-- date and time information. ISO date format -->
+
+<!ENTITY % Script "CDATA">
+ <!-- script expression -->
+
+<!ENTITY % StyleSheet "CDATA">
+ <!-- style sheet data -->
+
+<!ENTITY % Text "CDATA">
+ <!-- used for titles etc. -->
+
+<!ENTITY % Length "CDATA">
+ <!-- nn for pixels or nn% for percentage length -->
+
+<!ENTITY % MultiLength "CDATA">
+ <!-- pixel, percentage, or relative -->
+
+<!ENTITY % Pixels "CDATA">
+ <!-- integer representing length in pixels -->
+
+<!-- these are used for image maps -->
+
+<!ENTITY % Shape "(rect|circle|poly|default)">
+
+<!ENTITY % Coords "CDATA">
+ <!-- comma separated list of lengths -->
+
+<!--=================== Generic Attributes ===============================-->
+
+<!-- core attributes common to most elements
+ id document-wide unique id
+ class space separated list of classes
+ style associated style info
+ title advisory title/amplification
+-->
+<!ENTITY % coreattrs
+ "id ID #IMPLIED
+ class CDATA #IMPLIED
+ style %StyleSheet; #IMPLIED
+ title %Text; #IMPLIED"
+ >
+
+<!-- internationalization attributes
+ lang language code (backwards compatible)
+ xml:lang language code (as per XML 1.0 spec)
+ dir direction for weak/neutral text
+-->
+<!ENTITY % i18n
+ "lang %LanguageCode; #IMPLIED
+ xml:lang %LanguageCode; #IMPLIED
+ dir (ltr|rtl) #IMPLIED"
+ >
+
+<!-- attributes for common UI events
+ onclick a pointer button was clicked
+ ondblclick a pointer button was double clicked
+ onmousedown a pointer button was pressed down
+ onmouseup a pointer button was released
+ onmousemove a pointer was moved onto the element
+ onmouseout a pointer was moved away from the element
+ onkeypress a key was pressed and released
+ onkeydown a key was pressed down
+ onkeyup a key was released
+-->
+<!ENTITY % events
+ "onclick %Script; #IMPLIED
+ ondblclick %Script; #IMPLIED
+ onmousedown %Script; #IMPLIED
+ onmouseup %Script; #IMPLIED
+ onmouseover %Script; #IMPLIED
+ onmousemove %Script; #IMPLIED
+ onmouseout %Script; #IMPLIED
+ onkeypress %Script; #IMPLIED
+ onkeydown %Script; #IMPLIED
+ onkeyup %Script; #IMPLIED"
+ >
+
+<!-- attributes for elements that can get the focus
+ accesskey accessibility key character
+ tabindex position in tabbing order
+ onfocus the element got the focus
+ onblur the element lost the focus
+-->
+<!ENTITY % focus
+ "accesskey %Character; #IMPLIED
+ tabindex %Number; #IMPLIED
+ onfocus %Script; #IMPLIED
+ onblur %Script; #IMPLIED"
+ >
+
+<!ENTITY % attrs "%coreattrs; %i18n; %events;">
+
+<!--=================== Text Elements ====================================-->
+
+<!ENTITY % special.pre
+ "br | span | bdo | map">
+
+
+<!ENTITY % special
+ "%special.pre; | object | img ">
+
+<!ENTITY % fontstyle "tt | i | b | big | small ">
+
+<!ENTITY % phrase "em | strong | dfn | code | q |
+ samp | kbd | var | cite | abbr | acronym | sub | sup ">
+
+<!ENTITY % inline.forms "input | select | textarea | label | button">
+
+<!-- these can occur at block or inline level -->
+<!ENTITY % misc.inline "ins | del | script">
+
+<!-- these can only occur at block level -->
+<!ENTITY % misc "noscript | %misc.inline;">
+
+<!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;">
+
+<!-- %Inline; covers inline or "text-level" elements -->
+<!ENTITY % Inline "(#PCDATA | %inline; | %misc.inline;)*">
+
+<!--================== Block level elements ==============================-->
+
+<!ENTITY % heading "h1|h2|h3|h4|h5|h6">
+<!ENTITY % lists "ul | ol | dl">
+<!ENTITY % blocktext "pre | hr | blockquote | address">
+
+<!ENTITY % block
+ "p | %heading; | div | %lists; | %blocktext; | fieldset | table">
+
+<!ENTITY % Block "(%block; | form | %misc;)*">
+
+<!-- %Flow; mixes block and inline and is used for list items etc. -->
+<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">
+
+<!--================== Content models for exclusions =====================-->
+
+<!-- a elements use %Inline; excluding a -->
+
+<!ENTITY % a.content
+ "(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc.inline;)*">
+
+<!-- pre uses %Inline excluding big, small, sup or sup -->
+
+<!ENTITY % pre.content
+ "(#PCDATA | a | %fontstyle; | %phrase; | %special.pre; | %misc.inline;
+ | %inline.forms;)*">
+
+<!-- form uses %Block; excluding form -->
+
+<!ENTITY % form.content "(%block; | %misc;)*">
+
+<!-- button uses %Flow; but excludes a, form and form controls -->
+
+<!ENTITY % button.content
+ "(#PCDATA | p | %heading; | div | %lists; | %blocktext; |
+ table | %special; | %fontstyle; | %phrase; | %misc;)*">
+
+<!--================ Document Structure ==================================-->
+
+<!-- the namespace URI designates the document profile -->
+
+<!ELEMENT html (head, body)>
+<!ATTLIST html
+ %i18n;
+ id ID #IMPLIED
+ xmlns %URI; #FIXED 'http://www.w3.org/1999/xhtml'
+ >
+
+<!--================ Document Head =======================================-->
+
+<!ENTITY % head.misc "(script|style|meta|link|object)*">
+
+<!-- content model is %head.misc; combined with a single
+ title and an optional base element in any order -->
+
+<!ELEMENT head (%head.misc;,
+ ((title, %head.misc;, (base, %head.misc;)?) |
+ (base, %head.misc;, (title, %head.misc;))))>
+
+<!ATTLIST head
+ %i18n;
+ id ID #IMPLIED
+ profile %URI; #IMPLIED
+ >
+
+<!-- The title element is not considered part of the flow of text.
+ It should be displayed, for example as the page header or
+ window title. Exactly one title is required per document.
+ -->
+<!ELEMENT title (#PCDATA)>
+<!ATTLIST title
+ %i18n;
+ id ID #IMPLIED
+ >
+
+<!-- document base URI -->
+
+<!ELEMENT base EMPTY>
+<!ATTLIST base
+ href %URI; #REQUIRED
+ id ID #IMPLIED
+ >
+
+<!-- generic metainformation -->
+<!ELEMENT meta EMPTY>
+<!ATTLIST meta
+ %i18n;
+ id ID #IMPLIED
+ http-equiv CDATA #IMPLIED
+ name CDATA #IMPLIED
+ content CDATA #REQUIRED
+ scheme CDATA #IMPLIED
+ >
+
+<!--
+ Relationship values can be used in principle:
+
+ a) for document specific toolbars/menus when used
+ with the link element in document head e.g.
+ start, contents, previous, next, index, end, help
+ b) to link to a separate style sheet (rel="stylesheet")
+ c) to make a link to a script (rel="script")
+ d) by stylesheets to control how collections of
+ html nodes are rendered into printed documents
+ e) to make a link to a printable version of this document
+ e.g. a PostScript or PDF version (rel="alternate" media="print")
+-->
+
+<!ELEMENT link EMPTY>
+<!ATTLIST link
+ %attrs;
+ charset %Charset; #IMPLIED
+ href %URI; #IMPLIED
+ hreflang %LanguageCode; #IMPLIED
+ type %ContentType; #IMPLIED
+ rel %LinkTypes; #IMPLIED
+ rev %LinkTypes; #IMPLIED
+ media %MediaDesc; #IMPLIED
+ >
+
+<!-- style info, which may include CDATA sections -->
+<!ELEMENT style (#PCDATA)>
+<!ATTLIST style
+ %i18n;
+ id ID #IMPLIED
+ type %ContentType; #REQUIRED
+ media %MediaDesc; #IMPLIED
+ title %Text; #IMPLIED
+ xml:space (preserve) #FIXED 'preserve'
+ >
+
+<!-- script statements, which may include CDATA sections -->
+<!ELEMENT script (#PCDATA)>
+<!ATTLIST script
+ id ID #IMPLIED
+ charset %Charset; #IMPLIED
+ type %ContentType; #REQUIRED
+ src %URI; #IMPLIED
+ defer (defer) #IMPLIED
+ xml:space (preserve) #FIXED 'preserve'
+ >
+
+<!-- alternate content container for non script-based rendering -->
+
+<!ELEMENT noscript %Block;>
+<!ATTLIST noscript
+ %attrs;
+ >
+
+<!--=================== Document Body ====================================-->
+
+<!ELEMENT body %Block;>
+<!ATTLIST body
+ %attrs;
+ onload %Script; #IMPLIED
+ onunload %Script; #IMPLIED
+ >
+
+<!ELEMENT div %Flow;> <!-- generic language/style container -->
+<!ATTLIST div
+ %attrs;
+ >
+
+<!--=================== Paragraphs =======================================-->
+
+<!ELEMENT p %Inline;>
+<!ATTLIST p
+ %attrs;
+ >
+
+<!--=================== Headings =========================================-->
+
+<!--
+ There are six levels of headings from h1 (the most important)
+ to h6 (the least important).
+-->
+
+<!ELEMENT h1 %Inline;>
+<!ATTLIST h1
+ %attrs;
+ >
+
+<!ELEMENT h2 %Inline;>
+<!ATTLIST h2
+ %attrs;
+ >
+
+<!ELEMENT h3 %Inline;>
+<!ATTLIST h3
+ %attrs;
+ >
+
+<!ELEMENT h4 %Inline;>
+<!ATTLIST h4
+ %attrs;
+ >
+
+<!ELEMENT h5 %Inline;>
+<!ATTLIST h5
+ %attrs;
+ >
+
+<!ELEMENT h6 %Inline;>
+<!ATTLIST h6
+ %attrs;
+ >
+
+<!--=================== Lists ============================================-->
+
+<!-- Unordered list -->
+
+<!ELEMENT ul (li)+>
+<!ATTLIST ul
+ %attrs;
+ >
+
+<!-- Ordered (numbered) list -->
+
+<!ELEMENT ol (li)+>
+<!ATTLIST ol
+ %attrs;
+ >
+
+<!-- list item -->
+
+<!ELEMENT li %Flow;>
+<!ATTLIST li
+ %attrs;
+ >
+
+<!-- definition lists - dt for term, dd for its definition -->
+
+<!ELEMENT dl (dt|dd)+>
+<!ATTLIST dl
+ %attrs;
+ >
+
+<!ELEMENT dt %Inline;>
+<!ATTLIST dt
+ %attrs;
+ >
+
+<!ELEMENT dd %Flow;>
+<!ATTLIST dd
+ %attrs;
+ >
+
+<!--=================== Address ==========================================-->
+
+<!-- information on author -->
+
+<!ELEMENT address %Inline;>
+<!ATTLIST address
+ %attrs;
+ >
+
+<!--=================== Horizontal Rule ==================================-->
+
+<!ELEMENT hr EMPTY>
+<!ATTLIST hr
+ %attrs;
+ >
+
+<!--=================== Preformatted Text ================================-->
+
+<!-- content is %Inline; excluding "img|object|big|small|sub|sup" -->
+
+<!ELEMENT pre %pre.content;>
+<!ATTLIST pre
+ %attrs;
+ xml:space (preserve) #FIXED 'preserve'
+ >
+
+<!--=================== Block-like Quotes ================================-->
+
+<!ELEMENT blockquote %Block;>
+<!ATTLIST blockquote
+ %attrs;
+ cite %URI; #IMPLIED
+ >
+
+<!--=================== Inserted/Deleted Text ============================-->
+
+<!--
+ ins/del are allowed in block and inline content, but its
+ inappropriate to include block content within an ins element
+ occurring in inline content.
+-->
+<!ELEMENT ins %Flow;>
+<!ATTLIST ins
+ %attrs;
+ cite %URI; #IMPLIED
+ datetime %Datetime; #IMPLIED
+ >
+
+<!ELEMENT del %Flow;>
+<!ATTLIST del
+ %attrs;
+ cite %URI; #IMPLIED
+ datetime %Datetime; #IMPLIED
+ >
+
+<!--================== The Anchor Element ================================-->
+
+<!-- content is %Inline; except that anchors shouldn't be nested -->
+
+<!ELEMENT a %a.content;>
+<!ATTLIST a
+ %attrs;
+ %focus;
+ charset %Charset; #IMPLIED
+ type %ContentType; #IMPLIED
+ name NMTOKEN #IMPLIED
+ href %URI; #IMPLIED
+ hreflang %LanguageCode; #IMPLIED
+ rel %LinkTypes; #IMPLIED
+ rev %LinkTypes; #IMPLIED
+ shape %Shape; "rect"
+ coords %Coords; #IMPLIED
+ >
+
+<!--===================== Inline Elements ================================-->
+
+<!ELEMENT span %Inline;> <!-- generic language/style container -->
+<!ATTLIST span
+ %attrs;
+ >
+
+<!ELEMENT bdo %Inline;> <!-- I18N BiDi over-ride -->
+<!ATTLIST bdo
+ %coreattrs;
+ %events;
+ lang %LanguageCode; #IMPLIED
+ xml:lang %LanguageCode; #IMPLIED
+ dir (ltr|rtl) #REQUIRED
+ >
+
+<!ELEMENT br EMPTY> <!-- forced line break -->
+<!ATTLIST br
+ %coreattrs;
+ >
+
+<!ELEMENT em %Inline;> <!-- emphasis -->
+<!ATTLIST em %attrs;>
+
+<!ELEMENT strong %Inline;> <!-- strong emphasis -->
+<!ATTLIST strong %attrs;>
+
+<!ELEMENT dfn %Inline;> <!-- definitional -->
+<!ATTLIST dfn %attrs;>
+
+<!ELEMENT code %Inline;> <!-- program code -->
+<!ATTLIST code %attrs;>
+
+<!ELEMENT samp %Inline;> <!-- sample -->
+<!ATTLIST samp %attrs;>
+
+<!ELEMENT kbd %Inline;> <!-- something user would type -->
+<!ATTLIST kbd %attrs;>
+
+<!ELEMENT var %Inline;> <!-- variable -->
+<!ATTLIST var %attrs;>
+
+<!ELEMENT cite %Inline;> <!-- citation -->
+<!ATTLIST cite %attrs;>
+
+<!ELEMENT abbr %Inline;> <!-- abbreviation -->
+<!ATTLIST abbr %attrs;>
+
+<!ELEMENT acronym %Inline;> <!-- acronym -->
+<!ATTLIST acronym %attrs;>
+
+<!ELEMENT q %Inline;> <!-- inlined quote -->
+<!ATTLIST q
+ %attrs;
+ cite %URI; #IMPLIED
+ >
+
+<!ELEMENT sub %Inline;> <!-- subscript -->
+<!ATTLIST sub %attrs;>
+
+<!ELEMENT sup %Inline;> <!-- superscript -->
+<!ATTLIST sup %attrs;>
+
+<!ELEMENT tt %Inline;> <!-- fixed pitch font -->
+<!ATTLIST tt %attrs;>
+
+<!ELEMENT i %Inline;> <!-- italic font -->
+<!ATTLIST i %attrs;>
+
+<!ELEMENT b %Inline;> <!-- bold font -->
+<!ATTLIST b %attrs;>
+
+<!ELEMENT big %Inline;> <!-- bigger font -->
+<!ATTLIST big %attrs;>
+
+<!ELEMENT small %Inline;> <!-- smaller font -->
+<!ATTLIST small %attrs;>
+
+<!--==================== Object ======================================-->
+<!--
+ object is used to embed objects as part of HTML pages.
+ param elements should precede other content. Parameters
+ can also be expressed as attribute/value pairs on the
+ object element itself when brevity is desired.
+-->
+
+<!ELEMENT object (#PCDATA | param | %block; | form | %inline; | %misc;)*>
+<!ATTLIST object
+ %attrs;
+ declare (declare) #IMPLIED
+ classid %URI; #IMPLIED
+ codebase %URI; #IMPLIED
+ data %URI; #IMPLIED
+ type %ContentType; #IMPLIED
+ codetype %ContentType; #IMPLIED
+ archive %UriList; #IMPLIED
+ standby %Text; #IMPLIED
+ height %Length; #IMPLIED
+ width %Length; #IMPLIED
+ usemap %URI; #IMPLIED
+ name NMTOKEN #IMPLIED
+ tabindex %Number; #IMPLIED
+ >
+
+<!--
+ param is used to supply a named property value.
+ In XML it would seem natural to follow RDF and support an
+ abbreviated syntax where the param elements are replaced
+ by attribute value pairs on the object start tag.
+-->
+<!ELEMENT param EMPTY>
+<!ATTLIST param
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ value CDATA #IMPLIED
+ valuetype (data|ref|object) "data"
+ type %ContentType; #IMPLIED
+ >
+
+<!--=================== Images ===========================================-->
+
+<!--
+ To avoid accessibility problems for people who aren't
+ able to see the image, you should provide a text
+ description using the alt and longdesc attributes.
+ In addition, avoid the use of server-side image maps.
+ Note that in this DTD there is no name attribute. That
+ is only available in the transitional and frameset DTD.
+-->
+
+<!ELEMENT img EMPTY>
+<!ATTLIST img
+ %attrs;
+ src %URI; #REQUIRED
+ alt %Text; #REQUIRED
+ longdesc %URI; #IMPLIED
+ height %Length; #IMPLIED
+ width %Length; #IMPLIED
+ usemap %URI; #IMPLIED
+ ismap (ismap) #IMPLIED
+ >
+
+<!-- usemap points to a map element which may be in this document
+ or an external document, although the latter is not widely supported -->
+
+<!--================== Client-side image maps ============================-->
+
+<!-- These can be placed in the same document or grouped in a
+ separate document although this isn't yet widely supported -->
+
+<!ELEMENT map ((%block; | form | %misc;)+ | area+)>
+<!ATTLIST map
+ %i18n;
+ %events;
+ id ID #REQUIRED
+ class CDATA #IMPLIED
+ style %StyleSheet; #IMPLIED
+ title %Text; #IMPLIED
+ name NMTOKEN #IMPLIED
+ >
+
+<!ELEMENT area EMPTY>
+<!ATTLIST area
+ %attrs;
+ %focus;
+ shape %Shape; "rect"
+ coords %Coords; #IMPLIED
+ href %URI; #IMPLIED
+ nohref (nohref) #IMPLIED
+ alt %Text; #REQUIRED
+ >
+
+<!--================ Forms ===============================================-->
+<!ELEMENT form %form.content;> <!-- forms shouldn't be nested -->
+
+<!ATTLIST form
+ %attrs;
+ action %URI; #REQUIRED
+ method (get|post) "get"
+ enctype %ContentType; "application/x-www-form-urlencoded"
+ onsubmit %Script; #IMPLIED
+ onreset %Script; #IMPLIED
+ accept %ContentTypes; #IMPLIED
+ accept-charset %Charsets; #IMPLIED
+ >
+
+<!--
+ Each label must not contain more than ONE field
+ Label elements shouldn't be nested.
+-->
+<!ELEMENT label %Inline;>
+<!ATTLIST label
+ %attrs;
+ for IDREF #IMPLIED
+ accesskey %Character; #IMPLIED
+ onfocus %Script; #IMPLIED
+ onblur %Script; #IMPLIED
+ >
+
+<!ENTITY % InputType
+ "(text | password | checkbox |
+ radio | submit | reset |
+ file | hidden | image | button)"
+ >
+
+<!-- the name attribute is required for all but submit & reset -->
+
+<!ELEMENT input EMPTY> <!-- form control -->
+<!ATTLIST input
+ %attrs;
+ %focus;
+ type %InputType; "text"
+ name CDATA #IMPLIED
+ value CDATA #IMPLIED
+ checked (checked) #IMPLIED
+ disabled (disabled) #IMPLIED
+ readonly (readonly) #IMPLIED
+ size CDATA #IMPLIED
+ maxlength %Number; #IMPLIED
+ src %URI; #IMPLIED
+ alt CDATA #IMPLIED
+ usemap %URI; #IMPLIED
+ onselect %Script; #IMPLIED
+ onchange %Script; #IMPLIED
+ accept %ContentTypes; #IMPLIED
+ >
+
+<!ELEMENT select (optgroup|option)+> <!-- option selector -->
+<!ATTLIST select
+ %attrs;
+ name CDATA #IMPLIED
+ size %Number; #IMPLIED
+ multiple (multiple) #IMPLIED
+ disabled (disabled) #IMPLIED
+ tabindex %Number; #IMPLIED
+ onfocus %Script; #IMPLIED
+ onblur %Script; #IMPLIED
+ onchange %Script; #IMPLIED
+ >
+
+<!ELEMENT optgroup (option)+> <!-- option group -->
+<!ATTLIST optgroup
+ %attrs;
+ disabled (disabled) #IMPLIED
+ label %Text; #REQUIRED
+ >
+
+<!ELEMENT option (#PCDATA)> <!-- selectable choice -->
+<!ATTLIST option
+ %attrs;
+ selected (selected) #IMPLIED
+ disabled (disabled) #IMPLIED
+ label %Text; #IMPLIED
+ value CDATA #IMPLIED
+ >
+
+<!ELEMENT textarea (#PCDATA)> <!-- multi-line text field -->
+<!ATTLIST textarea
+ %attrs;
+ %focus;
+ name CDATA #IMPLIED
+ rows %Number; #REQUIRED
+ cols %Number; #REQUIRED
+ disabled (disabled) #IMPLIED
+ readonly (readonly) #IMPLIED
+ onselect %Script; #IMPLIED
+ onchange %Script; #IMPLIED
+ >
+
+<!--
+ The fieldset element is used to group form fields.
+ Only one legend element should occur in the content
+ and if present should only be preceded by whitespace.
+-->
+<!ELEMENT fieldset (#PCDATA | legend | %block; | form | %inline; | %misc;)*>
+<!ATTLIST fieldset
+ %attrs;
+ >
+
+<!ELEMENT legend %Inline;> <!-- fieldset label -->
+<!ATTLIST legend
+ %attrs;
+ accesskey %Character; #IMPLIED
+ >
+
+<!--
+ Content is %Flow; excluding a, form and form controls
+-->
+<!ELEMENT button %button.content;> <!-- push button -->
+<!ATTLIST button
+ %attrs;
+ %focus;
+ name CDATA #IMPLIED
+ value CDATA #IMPLIED
+ type (button|submit|reset) "submit"
+ disabled (disabled) #IMPLIED
+ >
+
+<!--======================= Tables =======================================-->
+
+<!-- Derived from IETF HTML table standard, see [RFC1942] -->
+
+<!--
+ The border attribute sets the thickness of the frame around the
+ table. The default units are screen pixels.
+
+ The frame attribute specifies which parts of the frame around
+ the table should be rendered. The values are not the same as
+ CALS to avoid a name clash with the valign attribute.
+-->
+<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
+
+<!--
+ The rules attribute defines which rules to draw between cells:
+
+ If rules is absent then assume:
+ "none" if border is absent or border="0" otherwise "all"
+-->
+
+<!ENTITY % TRules "(none | groups | rows | cols | all)">
+
+<!-- horizontal alignment attributes for cell contents
+
+ char alignment char, e.g. char=':'
+ charoff offset for alignment char
+-->
+<!ENTITY % cellhalign
+ "align (left|center|right|justify|char) #IMPLIED
+ char %Character; #IMPLIED
+ charoff %Length; #IMPLIED"
+ >
+
+<!-- vertical alignment attributes for cell contents -->
+<!ENTITY % cellvalign
+ "valign (top|middle|bottom|baseline) #IMPLIED"
+ >
+
+<!ELEMENT table
+ (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>
+<!ELEMENT caption %Inline;>
+<!ELEMENT thead (tr)+>
+<!ELEMENT tfoot (tr)+>
+<!ELEMENT tbody (tr)+>
+<!ELEMENT colgroup (col)*>
+<!ELEMENT col EMPTY>
+<!ELEMENT tr (th|td)+>
+<!ELEMENT th %Flow;>
+<!ELEMENT td %Flow;>
+
+<!ATTLIST table
+ %attrs;
+ summary %Text; #IMPLIED
+ width %Length; #IMPLIED
+ border %Pixels; #IMPLIED
+ frame %TFrame; #IMPLIED
+ rules %TRules; #IMPLIED
+ cellspacing %Length; #IMPLIED
+ cellpadding %Length; #IMPLIED
+ >
+
+<!ATTLIST caption
+ %attrs;
+ >
+
+<!--
+colgroup groups a set of col elements. It allows you to group
+several semantically related columns together.
+-->
+<!ATTLIST colgroup
+ %attrs;
+ span %Number; "1"
+ width %MultiLength; #IMPLIED
+ %cellhalign;
+ %cellvalign;
+ >
+
+<!--
+ col elements define the alignment properties for cells in
+ one or more columns.
+
+ The width attribute specifies the width of the columns, e.g.
+
+ width=64 width in screen pixels
+ width=0.5* relative width of 0.5
+
+ The span attribute causes the attributes of one
+ col element to apply to more than one column.
+-->
+<!ATTLIST col
+ %attrs;
+ span %Number; "1"
+ width %MultiLength; #IMPLIED
+ %cellhalign;
+ %cellvalign;
+ >
+
+<!--
+ Use thead to duplicate headers when breaking table
+ across page boundaries, or for static headers when
+ tbody sections are rendered in scrolling panel.
+
+ Use tfoot to duplicate footers when breaking table
+ across page boundaries, or for static footers when
+ tbody sections are rendered in scrolling panel.
+
+ Use multiple tbody sections when rules are needed
+ between groups of table rows.
+-->
+<!ATTLIST thead
+ %attrs;
+ %cellhalign;
+ %cellvalign;
+ >
+
+<!ATTLIST tfoot
+ %attrs;
+ %cellhalign;
+ %cellvalign;
+ >
+
+<!ATTLIST tbody
+ %attrs;
+ %cellhalign;
+ %cellvalign;
+ >
+
+<!ATTLIST tr
+ %attrs;
+ %cellhalign;
+ %cellvalign;
+ >
+
+
+<!-- Scope is simpler than headers attribute for common tables -->
+<!ENTITY % Scope "(row|col|rowgroup|colgroup)">
+
+<!-- th is for headers, td for data and for cells acting as both -->
+
+<!ATTLIST th
+ %attrs;
+ abbr %Text; #IMPLIED
+ axis CDATA #IMPLIED
+ headers IDREFS #IMPLIED
+ scope %Scope; #IMPLIED
+ rowspan %Number; "1"
+ colspan %Number; "1"
+ %cellhalign;
+ %cellvalign;
+ >
+
+<!ATTLIST td
+ %attrs;
+ abbr %Text; #IMPLIED
+ axis CDATA #IMPLIED
+ headers IDREFS #IMPLIED
+ scope %Scope; #IMPLIED
+ rowspan %Number; "1"
+ colspan %Number; "1"
+ %cellhalign;
+ %cellvalign;
+ >
+
diff --git a/dom/tests/mochitest/dom-level2-html/files/xhtml1-transitional.dtd b/dom/tests/mochitest/dom-level2-html/files/xhtml1-transitional.dtd
new file mode 100644
index 000000000..215a4b078
--- /dev/null
+++ b/dom/tests/mochitest/dom-level2-html/files/xhtml1-transitional.dtd
@@ -0,0 +1,1201 @@
+<!--
+ Extensible HTML version 1.0 Transitional DTD
+
+ This is the same as HTML 4 Transitional except for
+ changes due to the differences between XML and SGML.
+
+ Namespace = http://www.w3.org/1999/xhtml
+
+ For further information, see: http://www.w3.org/TR/xhtml1
+
+ Copyright (c) 1998-2002 W3C (MIT, INRIA, Keio),
+ All Rights Reserved.
+
+ This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
+
+ $Revision: 1.1 $
+ $Date: 2008/03/29 19:06:30 $
+
+-->
+
+<!--================ Character mnemonic entities =========================-->
+
+<!ENTITY % HTMLlat1 PUBLIC
+ "-//W3C//ENTITIES Latin 1 for XHTML//EN"
+ "xhtml-lat1.ent">
+%HTMLlat1;
+
+<!ENTITY % HTMLsymbol PUBLIC
+ "-//W3C//ENTITIES Symbols for XHTML//EN"
+ "xhtml-symbol.ent">
+%HTMLsymbol;
+
+<!ENTITY % HTMLspecial PUBLIC
+ "-//W3C//ENTITIES Special for XHTML//EN"
+ "xhtml-special.ent">
+%HTMLspecial;
+
+<!--================== Imported Names ====================================-->
+
+<!ENTITY % ContentType "CDATA">
+ <!-- media type, as per [RFC2045] -->
+
+<!ENTITY % ContentTypes "CDATA">
+ <!-- comma-separated list of media types, as per [RFC2045] -->
+
+<!ENTITY % Charset "CDATA">
+ <!-- a character encoding, as per [RFC2045] -->
+
+<!ENTITY % Charsets "CDATA">
+ <!-- a space separated list of character encodings, as per [RFC2045] -->
+
+<!ENTITY % LanguageCode "NMTOKEN">
+ <!-- a language code, as per [RFC3066] -->
+
+<!ENTITY % Character "CDATA">
+ <!-- a single character, as per section 2.2 of [XML] -->
+
+<!ENTITY % Number "CDATA">
+ <!-- one or more digits -->
+
+<!ENTITY % LinkTypes "CDATA">
+ <!-- space-separated list of link types -->
+
+<!ENTITY % MediaDesc "CDATA">
+ <!-- single or comma-separated list of media descriptors -->
+
+<!ENTITY % URI "CDATA">
+ <!-- a Uniform Resource Identifier, see [RFC2396] -->
+
+<!ENTITY % UriList "CDATA">
+ <!-- a space separated list of Uniform Resource Identifiers -->
+
+<!ENTITY % Datetime "CDATA">
+ <!-- date and time information. ISO date format -->
+
+<!ENTITY % Script "CDATA">
+ <!-- script expression -->
+
+<!ENTITY % StyleSheet "CDATA">
+ <!-- style sheet data -->
+
+<!ENTITY % Text "CDATA">
+ <!-- used for titles etc. -->
+
+<!ENTITY % FrameTarget "NMTOKEN">
+ <!-- render in this frame -->
+
+<!ENTITY % Length "CDATA">
+ <!-- nn for pixels or nn% for percentage length -->
+
+<!ENTITY % MultiLength "CDATA">
+ <!-- pixel, percentage, or relative -->
+
+<!ENTITY % Pixels "CDATA">
+ <!-- integer representing length in pixels -->
+
+<!-- these are used for image maps -->
+
+<!ENTITY % Shape "(rect|circle|poly|default)">
+
+<!ENTITY % Coords "CDATA">
+ <!-- comma separated list of lengths -->
+
+<!-- used for object, applet, img, input and iframe -->
+<!ENTITY % ImgAlign "(top|middle|bottom|left|right)">
+
+<!-- a color using sRGB: #RRGGBB as Hex values -->
+<!ENTITY % Color "CDATA">
+
+<!-- There are also 16 widely known color names with their sRGB values:
+
+ Black = #000000 Green = #008000
+ Silver = #C0C0C0 Lime = #00FF00
+ Gray = #808080 Olive = #808000
+ White = #FFFFFF Yellow = #FFFF00
+ Maroon = #800000 Navy = #000080
+ Red = #FF0000 Blue = #0000FF
+ Purple = #800080 Teal = #008080
+ Fuchsia= #FF00FF Aqua = #00FFFF
+-->
+
+<!--=================== Generic Attributes ===============================-->
+
+<!-- core attributes common to most elements
+ id document-wide unique id
+ class space separated list of classes
+ style associated style info
+ title advisory title/amplification
+-->
+<!ENTITY % coreattrs
+ "id ID #IMPLIED
+ class CDATA #IMPLIED
+ style %StyleSheet; #IMPLIED
+ title %Text; #IMPLIED"
+ >
+
+<!-- internationalization attributes
+ lang language code (backwards compatible)
+ xml:lang language code (as per XML 1.0 spec)
+ dir direction for weak/neutral text
+-->
+<!ENTITY % i18n
+ "lang %LanguageCode; #IMPLIED
+ xml:lang %LanguageCode; #IMPLIED
+ dir (ltr|rtl) #IMPLIED"
+ >
+
+<!-- attributes for common UI events
+ onclick a pointer button was clicked
+ ondblclick a pointer button was double clicked
+ onmousedown a pointer button was pressed down
+ onmouseup a pointer button was released
+ onmousemove a pointer was moved onto the element
+ onmouseout a pointer was moved away from the element
+ onkeypress a key was pressed and released
+ onkeydown a key was pressed down
+ onkeyup a key was released
+-->
+<!ENTITY % events
+ "onclick %Script; #IMPLIED
+ ondblclick %Script; #IMPLIED
+ onmousedown %Script; #IMPLIED
+ onmouseup %Script; #IMPLIED
+ onmouseover %Script; #IMPLIED
+ onmousemove %Script; #IMPLIED
+ onmouseout %Script; #IMPLIED
+ onkeypress %Script; #IMPLIED
+ onkeydown %Script; #IMPLIED
+ onkeyup %Script; #IMPLIED"
+ >
+
+<!-- attributes for elements that can get the focus
+ accesskey accessibility key character
+ tabindex position in tabbing order
+ onfocus the element got the focus
+ onblur the element lost the focus
+-->
+<!ENTITY % focus
+ "accesskey %Character; #IMPLIED
+ tabindex %Number; #IMPLIED
+ onfocus %Script; #IMPLIED
+ onblur %Script; #IMPLIED"
+ >
+
+<!ENTITY % attrs "%coreattrs; %i18n; %events;">
+
+<!-- text alignment for p, div, h1-h6. The default is
+ align="left" for ltr headings, "right" for rtl -->
+
+<!ENTITY % TextAlign "align (left|center|right|justify) #IMPLIED">
+
+<!--=================== Text Elements ====================================-->
+
+<!ENTITY % special.extra
+ "object | applet | img | map | iframe">
+
+<!ENTITY % special.basic
+ "br | span | bdo">
+
+<!ENTITY % special
+ "%special.basic; | %special.extra;">
+
+<!ENTITY % fontstyle.extra "big | small | font | basefont">
+
+<!ENTITY % fontstyle.basic "tt | i | b | u
+ | s | strike ">
+
+<!ENTITY % fontstyle "%fontstyle.basic; | %fontstyle.extra;">
+
+<!ENTITY % phrase.extra "sub | sup">
+<!ENTITY % phrase.basic "em | strong | dfn | code | q |
+ samp | kbd | var | cite | abbr | acronym">
+
+<!ENTITY % phrase "%phrase.basic; | %phrase.extra;">
+
+<!ENTITY % inline.forms "input | select | textarea | label | button">
+
+<!-- these can occur at block or inline level -->
+<!ENTITY % misc.inline "ins | del | script">
+
+<!-- these can only occur at block level -->
+<!ENTITY % misc "noscript | %misc.inline;">
+
+<!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;">
+
+<!-- %Inline; covers inline or "text-level" elements -->
+<!ENTITY % Inline "(#PCDATA | %inline; | %misc.inline;)*">
+
+<!--================== Block level elements ==============================-->
+
+<!ENTITY % heading "h1|h2|h3|h4|h5|h6">
+<!ENTITY % lists "ul | ol | dl | menu | dir">
+<!ENTITY % blocktext "pre | hr | blockquote | address | center | noframes">
+
+<!ENTITY % block
+ "p | %heading; | div | %lists; | %blocktext; | isindex |fieldset | table">
+
+<!-- %Flow; mixes block and inline and is used for list items etc. -->
+<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">
+
+<!--================== Content models for exclusions =====================-->
+
+<!-- a elements use %Inline; excluding a -->
+
+<!ENTITY % a.content
+ "(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc.inline;)*">
+
+<!-- pre uses %Inline excluding img, object, applet, big, small,
+ font, or basefont -->
+
+<!ENTITY % pre.content
+ "(#PCDATA | a | %special.basic; | %fontstyle.basic; | %phrase.basic; |
+ %inline.forms; | %misc.inline;)*">
+
+<!-- form uses %Flow; excluding form -->
+
+<!ENTITY % form.content "(#PCDATA | %block; | %inline; | %misc;)*">
+
+<!-- button uses %Flow; but excludes a, form, form controls, iframe -->
+
+<!ENTITY % button.content
+ "(#PCDATA | p | %heading; | div | %lists; | %blocktext; |
+ table | br | span | bdo | object | applet | img | map |
+ %fontstyle; | %phrase; | %misc;)*">
+
+<!--================ Document Structure ==================================-->
+
+<!-- the namespace URI designates the document profile -->
+
+<!ELEMENT html (head, body)>
+<!ATTLIST html
+ %i18n;
+ id ID #IMPLIED
+ xmlns %URI; #FIXED 'http://www.w3.org/1999/xhtml'
+ >
+
+<!--================ Document Head =======================================-->
+
+<!ENTITY % head.misc "(script|style|meta|link|object|isindex)*">
+
+<!-- content model is %head.misc; combined with a single
+ title and an optional base element in any order -->
+
+<!ELEMENT head (%head.misc;,
+ ((title, %head.misc;, (base, %head.misc;)?) |
+ (base, %head.misc;, (title, %head.misc;))))>
+
+<!ATTLIST head
+ %i18n;
+ id ID #IMPLIED
+ profile %URI; #IMPLIED
+ >
+
+<!-- The title element is not considered part of the flow of text.
+ It should be displayed, for example as the page header or
+ window title. Exactly one title is required per document.
+ -->
+<!ELEMENT title (#PCDATA)>
+<!ATTLIST title
+ %i18n;
+ id ID #IMPLIED
+ >
+
+<!-- document base URI -->
+
+<!ELEMENT base EMPTY>
+<!ATTLIST base
+ id ID #IMPLIED
+ href %URI; #IMPLIED
+ target %FrameTarget; #IMPLIED
+ >
+
+<!-- generic metainformation -->
+<!ELEMENT meta EMPTY>
+<!ATTLIST meta
+ %i18n;
+ id ID #IMPLIED
+ http-equiv CDATA #IMPLIED
+ name CDATA #IMPLIED
+ content CDATA #REQUIRED
+ scheme CDATA #IMPLIED
+ >
+
+<!--
+ Relationship values can be used in principle:
+
+ a) for document specific toolbars/menus when used
+ with the link element in document head e.g.
+ start, contents, previous, next, index, end, help
+ b) to link to a separate style sheet (rel="stylesheet")
+ c) to make a link to a script (rel="script")
+ d) by stylesheets to control how collections of
+ html nodes are rendered into printed documents
+ e) to make a link to a printable version of this document
+ e.g. a PostScript or PDF version (rel="alternate" media="print")
+-->
+
+<!ELEMENT link EMPTY>
+<!ATTLIST link
+ %attrs;
+ charset %Charset; #IMPLIED
+ href %URI; #IMPLIED
+ hreflang %LanguageCode; #IMPLIED
+ type %ContentType; #IMPLIED
+ rel %LinkTypes; #IMPLIED
+ rev %LinkTypes; #IMPLIED
+ media %MediaDesc; #IMPLIED
+ target %FrameTarget; #IMPLIED
+ >
+
+<!-- style info, which may include CDATA sections -->
+<!ELEMENT style (#PCDATA)>
+<!ATTLIST style
+ %i18n;
+ id ID #IMPLIED
+ type %ContentType; #REQUIRED
+ media %MediaDesc; #IMPLIED
+ title %Text; #IMPLIED
+ xml:space (preserve) #FIXED 'preserve'
+ >
+
+<!-- script statements, which may include CDATA sections -->
+<!ELEMENT script (#PCDATA)>
+<!ATTLIST script
+ id ID #IMPLIED
+ charset %Charset; #IMPLIED
+ type %ContentType; #REQUIRED
+ language CDATA #IMPLIED
+ src %URI; #IMPLIED
+ defer (defer) #IMPLIED
+ xml:space (preserve) #FIXED 'preserve'
+ >
+
+<!-- alternate content container for non script-based rendering -->
+
+<!ELEMENT noscript %Flow;>
+<!ATTLIST noscript
+ %attrs;
+ >
+
+<!--======================= Frames =======================================-->
+
+<!-- inline subwindow -->
+
+<!ELEMENT iframe %Flow;>
+<!ATTLIST iframe
+ %coreattrs;
+ longdesc %URI; #IMPLIED
+ name NMTOKEN #IMPLIED
+ src %URI; #IMPLIED
+ frameborder (1|0) "1"
+ marginwidth %Pixels; #IMPLIED
+ marginheight %Pixels; #IMPLIED
+ scrolling (yes|no|auto) "auto"
+ align %ImgAlign; #IMPLIED
+ height %Length; #IMPLIED
+ width %Length; #IMPLIED
+ >
+
+<!-- alternate content container for non frame-based rendering -->
+
+<!ELEMENT noframes %Flow;>
+<!ATTLIST noframes
+ %attrs;
+ >
+
+<!--=================== Document Body ====================================-->
+
+<!ELEMENT body %Flow;>
+<!ATTLIST body
+ %attrs;
+ onload %Script; #IMPLIED
+ onunload %Script; #IMPLIED
+ background %URI; #IMPLIED
+ bgcolor %Color; #IMPLIED
+ text %Color; #IMPLIED
+ link %Color; #IMPLIED
+ vlink %Color; #IMPLIED
+ alink %Color; #IMPLIED
+ >
+
+<!ELEMENT div %Flow;> <!-- generic language/style container -->
+<!ATTLIST div
+ %attrs;
+ %TextAlign;
+ >
+
+<!--=================== Paragraphs =======================================-->
+
+<!ELEMENT p %Inline;>
+<!ATTLIST p
+ %attrs;
+ %TextAlign;
+ >
+
+<!--=================== Headings =========================================-->
+
+<!--
+ There are six levels of headings from h1 (the most important)
+ to h6 (the least important).
+-->
+
+<!ELEMENT h1 %Inline;>
+<!ATTLIST h1
+ %attrs;
+ %TextAlign;
+ >
+
+<!ELEMENT h2 %Inline;>
+<!ATTLIST h2
+ %attrs;
+ %TextAlign;
+ >
+
+<!ELEMENT h3 %Inline;>
+<!ATTLIST h3
+ %attrs;
+ %TextAlign;
+ >
+
+<!ELEMENT h4 %Inline;>
+<!ATTLIST h4
+ %attrs;
+ %TextAlign;
+ >
+
+<!ELEMENT h5 %Inline;>
+<!ATTLIST h5
+ %attrs;
+ %TextAlign;
+ >
+
+<!ELEMENT h6 %Inline;>
+<!ATTLIST h6
+ %attrs;
+ %TextAlign;
+ >
+
+<!--=================== Lists ============================================-->
+
+<!-- Unordered list bullet styles -->
+
+<!ENTITY % ULStyle "(disc|square|circle)">
+
+<!-- Unordered list -->
+
+<!ELEMENT ul (li)+>
+<!ATTLIST ul
+ %attrs;
+ type %ULStyle; #IMPLIED
+ compact (compact) #IMPLIED
+ >
+
+<!-- Ordered list numbering style
+
+ 1 arabic numbers 1, 2, 3, ...
+ a lower alpha a, b, c, ...
+ A upper alpha A, B, C, ...
+ i lower roman i, ii, iii, ...
+ I upper roman I, II, III, ...
+
+ The style is applied to the sequence number which by default
+ is reset to 1 for the first list item in an ordered list.
+-->
+<!ENTITY % OLStyle "CDATA">
+
+<!-- Ordered (numbered) list -->
+
+<!ELEMENT ol (li)+>
+<!ATTLIST ol
+ %attrs;
+ type %OLStyle; #IMPLIED
+ compact (compact) #IMPLIED
+ start %Number; #IMPLIED
+ >
+
+<!-- single column list (DEPRECATED) -->
+<!ELEMENT menu (li)+>
+<!ATTLIST menu
+ %attrs;
+ compact (compact) #IMPLIED
+ >
+
+<!-- multiple column list (DEPRECATED) -->
+<!ELEMENT dir (li)+>
+<!ATTLIST dir
+ %attrs;
+ compact (compact) #IMPLIED
+ >
+
+<!-- LIStyle is constrained to: "(%ULStyle;|%OLStyle;)" -->
+<!ENTITY % LIStyle "CDATA">
+
+<!-- list item -->
+
+<!ELEMENT li %Flow;>
+<!ATTLIST li
+ %attrs;
+ type %LIStyle; #IMPLIED
+ value %Number; #IMPLIED
+ >
+
+<!-- definition lists - dt for term, dd for its definition -->
+
+<!ELEMENT dl (dt|dd)+>
+<!ATTLIST dl
+ %attrs;
+ compact (compact) #IMPLIED
+ >
+
+<!ELEMENT dt %Inline;>
+<!ATTLIST dt
+ %attrs;
+ >
+
+<!ELEMENT dd %Flow;>
+<!ATTLIST dd
+ %attrs;
+ >
+
+<!--=================== Address ==========================================-->
+
+<!-- information on author -->
+
+<!ELEMENT address (#PCDATA | %inline; | %misc.inline; | p)*>
+<!ATTLIST address
+ %attrs;
+ >
+
+<!--=================== Horizontal Rule ==================================-->
+
+<!ELEMENT hr EMPTY>
+<!ATTLIST hr
+ %attrs;
+ align (left|center|right) #IMPLIED
+ noshade (noshade) #IMPLIED
+ size %Pixels; #IMPLIED
+ width %Length; #IMPLIED
+ >
+
+<!--=================== Preformatted Text ================================-->
+
+<!-- content is %Inline; excluding
+ "img|object|applet|big|small|sub|sup|font|basefont" -->
+
+<!ELEMENT pre %pre.content;>
+<!ATTLIST pre
+ %attrs;
+ width %Number; #IMPLIED
+ xml:space (preserve) #FIXED 'preserve'
+ >
+
+<!--=================== Block-like Quotes ================================-->
+
+<!ELEMENT blockquote %Flow;>
+<!ATTLIST blockquote
+ %attrs;
+ cite %URI; #IMPLIED
+ >
+
+<!--=================== Text alignment ===================================-->
+
+<!-- center content -->
+<!ELEMENT center %Flow;>
+<!ATTLIST center
+ %attrs;
+ >
+
+<!--=================== Inserted/Deleted Text ============================-->
+
+<!--
+ ins/del are allowed in block and inline content, but its
+ inappropriate to include block content within an ins element
+ occurring in inline content.
+-->
+<!ELEMENT ins %Flow;>
+<!ATTLIST ins
+ %attrs;
+ cite %URI; #IMPLIED
+ datetime %Datetime; #IMPLIED
+ >
+
+<!ELEMENT del %Flow;>
+<!ATTLIST del
+ %attrs;
+ cite %URI; #IMPLIED
+ datetime %Datetime; #IMPLIED
+ >
+
+<!--================== The Anchor Element ================================-->
+
+<!-- content is %Inline; except that anchors shouldn't be nested -->
+
+<!ELEMENT a %a.content;>
+<!ATTLIST a
+ %attrs;
+ %focus;
+ charset %Charset; #IMPLIED
+ type %ContentType; #IMPLIED
+ name NMTOKEN #IMPLIED
+ href %URI; #IMPLIED
+ hreflang %LanguageCode; #IMPLIED
+ rel %LinkTypes; #IMPLIED
+ rev %LinkTypes; #IMPLIED
+ shape %Shape; "rect"
+ coords %Coords; #IMPLIED
+ target %FrameTarget; #IMPLIED
+ >
+
+<!--===================== Inline Elements ================================-->
+
+<!ELEMENT span %Inline;> <!-- generic language/style container -->
+<!ATTLIST span
+ %attrs;
+ >
+
+<!ELEMENT bdo %Inline;> <!-- I18N BiDi over-ride -->
+<!ATTLIST bdo
+ %coreattrs;
+ %events;
+ lang %LanguageCode; #IMPLIED
+ xml:lang %LanguageCode; #IMPLIED
+ dir (ltr|rtl) #REQUIRED
+ >
+
+<!ELEMENT br EMPTY> <!-- forced line break -->
+<!ATTLIST br
+ %coreattrs;
+ clear (left|all|right|none) "none"
+ >
+
+<!ELEMENT em %Inline;> <!-- emphasis -->
+<!ATTLIST em %attrs;>
+
+<!ELEMENT strong %Inline;> <!-- strong emphasis -->
+<!ATTLIST strong %attrs;>
+
+<!ELEMENT dfn %Inline;> <!-- definitional -->
+<!ATTLIST dfn %attrs;>
+
+<!ELEMENT code %Inline;> <!-- program code -->
+<!ATTLIST code %attrs;>
+
+<!ELEMENT samp %Inline;> <!-- sample -->
+<!ATTLIST samp %attrs;>
+
+<!ELEMENT kbd %Inline;> <!-- something user would type -->
+<!ATTLIST kbd %attrs;>
+
+<!ELEMENT var %Inline;> <!-- variable -->
+<!ATTLIST var %attrs;>
+
+<!ELEMENT cite %Inline;> <!-- citation -->
+<!ATTLIST cite %attrs;>
+
+<!ELEMENT abbr %Inline;> <!-- abbreviation -->
+<!ATTLIST abbr %attrs;>
+
+<!ELEMENT acronym %Inline;> <!-- acronym -->
+<!ATTLIST acronym %attrs;>
+
+<!ELEMENT q %Inline;> <!-- inlined quote -->
+<!ATTLIST q
+ %attrs;
+ cite %URI; #IMPLIED
+ >
+
+<!ELEMENT sub %Inline;> <!-- subscript -->
+<!ATTLIST sub %attrs;>
+
+<!ELEMENT sup %Inline;> <!-- superscript -->
+<!ATTLIST sup %attrs;>
+
+<!ELEMENT tt %Inline;> <!-- fixed pitch font -->
+<!ATTLIST tt %attrs;>
+
+<!ELEMENT i %Inline;> <!-- italic font -->
+<!ATTLIST i %attrs;>
+
+<!ELEMENT b %Inline;> <!-- bold font -->
+<!ATTLIST b %attrs;>
+
+<!ELEMENT big %Inline;> <!-- bigger font -->
+<!ATTLIST big %attrs;>
+
+<!ELEMENT small %Inline;> <!-- smaller font -->
+<!ATTLIST small %attrs;>
+
+<!ELEMENT u %Inline;> <!-- underline -->
+<!ATTLIST u %attrs;>
+
+<!ELEMENT s %Inline;> <!-- strike-through -->
+<!ATTLIST s %attrs;>
+
+<!ELEMENT strike %Inline;> <!-- strike-through -->
+<!ATTLIST strike %attrs;>
+
+<!ELEMENT basefont EMPTY> <!-- base font size -->
+<!ATTLIST basefont
+ id ID #IMPLIED
+ size CDATA #REQUIRED
+ color %Color; #IMPLIED
+ face CDATA #IMPLIED
+ >
+
+<!ELEMENT font %Inline;> <!-- local change to font -->
+<!ATTLIST font
+ %coreattrs;
+ %i18n;
+ size CDATA #IMPLIED
+ color %Color; #IMPLIED
+ face CDATA #IMPLIED
+ >
+
+<!--==================== Object ======================================-->
+<!--
+ object is used to embed objects as part of HTML pages.
+ param elements should precede other content. Parameters
+ can also be expressed as attribute/value pairs on the
+ object element itself when brevity is desired.
+-->
+
+<!ELEMENT object (#PCDATA | param | %block; | form | %inline; | %misc;)*>
+<!ATTLIST object
+ %attrs;
+ declare (declare) #IMPLIED
+ classid %URI; #IMPLIED
+ codebase %URI; #IMPLIED
+ data %URI; #IMPLIED
+ type %ContentType; #IMPLIED
+ codetype %ContentType; #IMPLIED
+ archive %UriList; #IMPLIED
+ standby %Text; #IMPLIED
+ height %Length; #IMPLIED
+ width %Length; #IMPLIED
+ usemap %URI; #IMPLIED
+ name NMTOKEN #IMPLIED
+ tabindex %Number; #IMPLIED
+ align %ImgAlign; #IMPLIED
+ border %Pixels; #IMPLIED
+ hspace %Pixels; #IMPLIED
+ vspace %Pixels; #IMPLIED
+ >
+
+<!--
+ param is used to supply a named property value.
+ In XML it would seem natural to follow RDF and support an
+ abbreviated syntax where the param elements are replaced
+ by attribute value pairs on the object start tag.
+-->
+<!ELEMENT param EMPTY>
+<!ATTLIST param
+ id ID #IMPLIED
+ name CDATA #REQUIRED
+ value CDATA #IMPLIED
+ valuetype (data|ref|object) "data"
+ type %ContentType; #IMPLIED
+ >
+
+<!--=================== Java applet ==================================-->
+<!--
+ One of code or object attributes must be present.
+ Place param elements before other content.
+-->
+<!ELEMENT applet (#PCDATA | param | %block; | form | %inline; | %misc;)*>
+<!ATTLIST applet
+ %coreattrs;
+ codebase %URI; #IMPLIED
+ archive CDATA #IMPLIED
+ code CDATA #IMPLIED
+ object CDATA #IMPLIED
+ alt %Text; #IMPLIED
+ name NMTOKEN #IMPLIED
+ width %Length; #REQUIRED
+ height %Length; #REQUIRED
+ align %ImgAlign; #IMPLIED
+ hspace %Pixels; #IMPLIED
+ vspace %Pixels; #IMPLIED
+ >
+
+<!--=================== Images ===========================================-->
+
+<!--
+ To avoid accessibility problems for people who aren't
+ able to see the image, you should provide a text
+ description using the alt and longdesc attributes.
+ In addition, avoid the use of server-side image maps.
+-->
+
+<!ELEMENT img EMPTY>
+<!ATTLIST img
+ %attrs;
+ src %URI; #REQUIRED
+ alt %Text; #REQUIRED
+ name NMTOKEN #IMPLIED
+ longdesc %URI; #IMPLIED
+ height %Length; #IMPLIED
+ width %Length; #IMPLIED
+ usemap %URI; #IMPLIED
+ ismap (ismap) #IMPLIED
+ align %ImgAlign; #IMPLIED
+ border %Length; #IMPLIED
+ hspace %Pixels; #IMPLIED
+ vspace %Pixels; #IMPLIED
+ >
+
+<!-- usemap points to a map element which may be in this document
+ or an external document, although the latter is not widely supported -->
+
+<!--================== Client-side image maps ============================-->
+
+<!-- These can be placed in the same document or grouped in a
+ separate document although this isn't yet widely supported -->
+
+<!ELEMENT map ((%block; | form | %misc;)+ | area+)>
+<!ATTLIST map
+ %i18n;
+ %events;
+ id ID #REQUIRED
+ class CDATA #IMPLIED
+ style %StyleSheet; #IMPLIED
+ title %Text; #IMPLIED
+ name CDATA #IMPLIED
+ >
+
+<!ELEMENT area EMPTY>
+<!ATTLIST area
+ %attrs;
+ %focus;
+ shape %Shape; "rect"
+ coords %Coords; #IMPLIED
+ href %URI; #IMPLIED
+ nohref (nohref) #IMPLIED
+ alt %Text; #REQUIRED
+ target %FrameTarget; #IMPLIED
+ >
+
+<!--================ Forms ===============================================-->
+
+<!ELEMENT form %form.content;> <!-- forms shouldn't be nested -->
+
+<!ATTLIST form
+ %attrs;
+ action %URI; #REQUIRED
+ method (get|post) "get"
+ name NMTOKEN #IMPLIED
+ enctype %ContentType; "application/x-www-form-urlencoded"
+ onsubmit %Script; #IMPLIED
+ onreset %Script; #IMPLIED
+ accept %ContentTypes; #IMPLIED
+ accept-charset %Charsets; #IMPLIED
+ target %FrameTarget; #IMPLIED
+ >
+
+<!--
+ Each label must not contain more than ONE field
+ Label elements shouldn't be nested.
+-->
+<!ELEMENT label %Inline;>
+<!ATTLIST label
+ %attrs;
+ for IDREF #IMPLIED
+ accesskey %Character; #IMPLIED
+ onfocus %Script; #IMPLIED
+ onblur %Script; #IMPLIED
+ >
+
+<!ENTITY % InputType
+ "(text | password | checkbox |
+ radio | submit | reset |
+ file | hidden | image | button)"
+ >
+
+<!-- the name attribute is required for all but submit & reset -->
+
+<!ELEMENT input EMPTY> <!-- form control -->
+<!ATTLIST input
+ %attrs;
+ %focus;
+ type %InputType; "text"
+ name CDATA #IMPLIED
+ value CDATA #IMPLIED
+ checked (checked) #IMPLIED
+ disabled (disabled) #IMPLIED
+ readonly (readonly) #IMPLIED
+ size CDATA #IMPLIED
+ maxlength %Number; #IMPLIED
+ src %URI; #IMPLIED
+ alt CDATA #IMPLIED
+ usemap %URI; #IMPLIED
+ onselect %Script; #IMPLIED
+ onchange %Script; #IMPLIED
+ accept %ContentTypes; #IMPLIED
+ align %ImgAlign; #IMPLIED
+ >
+
+<!ELEMENT select (optgroup|option)+> <!-- option selector -->
+<!ATTLIST select
+ %attrs;
+ name CDATA #IMPLIED
+ size %Number; #IMPLIED
+ multiple (multiple) #IMPLIED
+ disabled (disabled) #IMPLIED
+ tabindex %Number; #IMPLIED
+ onfocus %Script; #IMPLIED
+ onblur %Script; #IMPLIED
+ onchange %Script; #IMPLIED
+ >
+
+<!ELEMENT optgroup (option)+> <!-- option group -->
+<!ATTLIST optgroup
+ %attrs;
+ disabled (disabled) #IMPLIED
+ label %Text; #REQUIRED
+ >
+
+<!ELEMENT option (#PCDATA)> <!-- selectable choice -->
+<!ATTLIST option
+ %attrs;
+ selected (selected) #IMPLIED
+ disabled (disabled) #IMPLIED
+ label %Text; #IMPLIED
+ value CDATA #IMPLIED
+ >
+
+<!ELEMENT textarea (#PCDATA)> <!-- multi-line text field -->
+<!ATTLIST textarea
+ %attrs;
+ %focus;
+ name CDATA #IMPLIED
+ rows %Number; #REQUIRED
+ cols %Number; #REQUIRED
+ disabled (disabled) #IMPLIED
+ readonly (readonly) #IMPLIED
+ onselect %Script; #IMPLIED
+ onchange %Script; #IMPLIED
+ >
+
+<!--
+ The fieldset element is used to group form fields.
+ Only one legend element should occur in the content
+ and if present should only be preceded by whitespace.
+-->
+<!ELEMENT fieldset (#PCDATA | legend | %block; | form | %inline; | %misc;)*>
+<!ATTLIST fieldset
+ %attrs;
+ >
+
+<!ENTITY % LAlign "(top|bottom|left|right)">
+
+<!ELEMENT legend %Inline;> <!-- fieldset label -->
+<!ATTLIST legend
+ %attrs;
+ accesskey %Character; #IMPLIED
+ align %LAlign; #IMPLIED
+ >
+
+<!--
+ Content is %Flow; excluding a, form, form controls, iframe
+-->
+<!ELEMENT button %button.content;> <!-- push button -->
+<!ATTLIST button
+ %attrs;
+ %focus;
+ name CDATA #IMPLIED
+ value CDATA #IMPLIED
+ type (button|submit|reset) "submit"
+ disabled (disabled) #IMPLIED
+ >
+
+<!-- single-line text input control (DEPRECATED) -->
+<!ELEMENT isindex EMPTY>
+<!ATTLIST isindex
+ %coreattrs;
+ %i18n;
+ prompt %Text; #IMPLIED
+ >
+
+<!--======================= Tables =======================================-->
+
+<!-- Derived from IETF HTML table standard, see [RFC1942] -->
+
+<!--
+ The border attribute sets the thickness of the frame around the
+ table. The default units are screen pixels.
+
+ The frame attribute specifies which parts of the frame around
+ the table should be rendered. The values are not the same as
+ CALS to avoid a name clash with the valign attribute.
+-->
+<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
+
+<!--
+ The rules attribute defines which rules to draw between cells:
+
+ If rules is absent then assume:
+ "none" if border is absent or border="0" otherwise "all"
+-->
+
+<!ENTITY % TRules "(none | groups | rows | cols | all)">
+
+<!-- horizontal placement of table relative to document -->
+<!ENTITY % TAlign "(left|center|right)">
+
+<!-- horizontal alignment attributes for cell contents
+
+ char alignment char, e.g. char=':'
+ charoff offset for alignment char
+-->
+<!ENTITY % cellhalign
+ "align (left|center|right|justify|char) #IMPLIED
+ char %Character; #IMPLIED
+ charoff %Length; #IMPLIED"
+ >
+
+<!-- vertical alignment attributes for cell contents -->
+<!ENTITY % cellvalign
+ "valign (top|middle|bottom|baseline) #IMPLIED"
+ >
+
+<!ELEMENT table
+ (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>
+<!ELEMENT caption %Inline;>
+<!ELEMENT thead (tr)+>
+<!ELEMENT tfoot (tr)+>
+<!ELEMENT tbody (tr)+>
+<!ELEMENT colgroup (col)*>
+<!ELEMENT col EMPTY>
+<!ELEMENT tr (th|td)+>
+<!ELEMENT th %Flow;>
+<!ELEMENT td %Flow;>
+
+<!ATTLIST table
+ %attrs;
+ summary %Text; #IMPLIED
+ width %Length; #IMPLIED
+ border %Pixels; #IMPLIED
+ frame %TFrame; #IMPLIED
+ rules %TRules; #IMPLIED
+ cellspacing %Length; #IMPLIED
+ cellpadding %Length; #IMPLIED
+ align %TAlign; #IMPLIED
+ bgcolor %Color; #IMPLIED
+ >
+
+<!ENTITY % CAlign "(top|bottom|left|right)">
+
+<!ATTLIST caption
+ %attrs;
+ align %CAlign; #IMPLIED
+ >
+
+<!--
+colgroup groups a set of col elements. It allows you to group
+several semantically related columns together.
+-->
+<!ATTLIST colgroup
+ %attrs;
+ span %Number; "1"
+ width %MultiLength; #IMPLIED
+ %cellhalign;
+ %cellvalign;
+ >
+
+<!--
+ col elements define the alignment properties for cells in
+ one or more columns.
+
+ The width attribute specifies the width of the columns, e.g.
+
+ width=64 width in screen pixels
+ width=0.5* relative width of 0.5
+
+ The span attribute causes the attributes of one
+ col element to apply to more than one column.
+-->
+<!ATTLIST col
+ %attrs;
+ span %Number; "1"
+ width %MultiLength; #IMPLIED
+ %cellhalign;
+ %cellvalign;
+ >
+
+<!--
+ Use thead to duplicate headers when breaking table
+ across page boundaries, or for static headers when
+ tbody sections are rendered in scrolling panel.
+
+ Use tfoot to duplicate footers when breaking table
+ across page boundaries, or for static footers when
+ tbody sections are rendered in scrolling panel.
+
+ Use multiple tbody sections when rules are needed
+ between groups of table rows.
+-->
+<!ATTLIST thead
+ %attrs;
+ %cellhalign;
+ %cellvalign;
+ >
+
+<!ATTLIST tfoot
+ %attrs;
+ %cellhalign;
+ %cellvalign;
+ >
+
+<!ATTLIST tbody
+ %attrs;
+ %cellhalign;
+ %cellvalign;
+ >
+
+<!ATTLIST tr
+ %attrs;
+ %cellhalign;
+ %cellvalign;
+ bgcolor %Color; #IMPLIED
+ >
+
+<!-- Scope is simpler than headers attribute for common tables -->
+<!ENTITY % Scope "(row|col|rowgroup|colgroup)">
+
+<!-- th is for headers, td for data and for cells acting as both -->
+
+<!ATTLIST th
+ %attrs;
+ abbr %Text; #IMPLIED
+ axis CDATA #IMPLIED
+ headers IDREFS #IMPLIED
+ scope %Scope; #IMPLIED
+ rowspan %Number; "1"
+ colspan %Number; "1"
+ %cellhalign;
+ %cellvalign;
+ nowrap (nowrap) #IMPLIED
+ bgcolor %Color; #IMPLIED
+ width %Length; #IMPLIED
+ height %Length; #IMPLIED
+ >
+
+<!ATTLIST td
+ %attrs;
+ abbr %Text; #IMPLIED
+ axis CDATA #IMPLIED
+ headers IDREFS #IMPLIED
+ scope %Scope; #IMPLIED
+ rowspan %Number; "1"
+ colspan %Number; "1"
+ %cellhalign;
+ %cellvalign;
+ nowrap (nowrap) #IMPLIED
+ bgcolor %Color; #IMPLIED
+ width %Length; #IMPLIED
+ height %Length; #IMPLIED
+ >
+