# The following come from khtml's htmltags.in from 19oct2004
# From WebCore svn tree, 2006-04-18 (WebKit/WebCore/html/HTMLNames.h)

a
abbr
acronym
address
applet
area
b
base
basefont
bdo
big
blockquote
body
br
button
canvas
caption
center
cite
code
col
colgroup
dd
del
dfn
dir
div
dl
dt
em
embed
fieldset
font
form
frame
frameset
h1
h2
h3
h4
h5
h6
head
hr
html
i
iframe
image
img
input
ins
isindex
kbd
keygen
label
layer
legend
li
link
listing
map
marquee
menu
meta
nobr
noembed
noframes
nolayer
noscript
object
ol
optgroup
option
p
param
plaintext
pre
q
s
samp
script
select
small
span
strike
strong
style
sub
sup
table
tbody
td
textarea
tfoot
th
thead
title
tr
tt
u
ul
var
wbr
xmp

# This was in khtml in 10-2004
ilayer

# Additions from Mozilla CVS, 2006-04-18.
# mozilla/parser/htmlparser/public/nsHTMLTagList.h
bgsound
blink
multicol
spacer

# The following tags used to be in Mozilla in 10-2004, now removed
counter
endnote
parsererror
server
sound
sourcetext

# From Internet Explorer - http://msdn.microsoft.com/workshop/author/html/reference/elements.asp
xml
