In HTML 4.01 certain end tags are forbidden, that means it in not valid markup to have them, e.g.:
Invalid Valid
=================== =================
<BR/> <BR>
<BR></BR>
<IMG src="..."/> <IMG src="...">
<IMG ...></IMG>
<INPUT ... /> <INPUT ...>
<INPUT ...></INPUT>
In the HTML 4.01 specification the indication of an end tag being optional or forbidden is nicely summarized in the index of elements:
Name Start Tag End Tag
AREA F
BASE F
BASEFONT F
BODY O O
BR F
COL F
COLGROUP O
DD O
DT O
FRAME F
HEAD O O
HR F
HTML O O
IMG F
INPUT F
ISINDEX F
LI O
LINK F
META F
OPTION O
P O
PARAM F
TBODY O O
TD O
TFOOT O
TH O
THEAD O
TR O
Where is the HTML 5 equivalent of indicating which end tags are:
When and how optional end tags should behave, in HTML5 spec:
http://www.w3.org/TR/html5/syntax.html#void-elements
8.1.2 Elements
Void elements only have a start tag; end tags must not be specified for void elements.
Void Elements
- area
- base
- br
- col
- command
- embed
- hr
- img
- input
- keygen
- link
- meta
- param
- source
- track
- wbr
A more concise form:
Element Type Start Tag End Tag
=============== ========= =========
Normal - O (some)
html O* O*
head O* O*
body - O*
li - O*
dt - O*
dd - O*
p - O*
rt - O*
rp - O*
optgroup - O*
option - O*
colgroup O* O*
thead - O*
tbody - O*
tfoot - O*
tr - O*
td - O*
th - O*
otherwise - -
Raw text - -
script
style
RCDATA - -
textarea
title
Void - F
area
base
br
col
command
embed
hr
img
input
keygen
link
meta
param
source
track
wbr
Foreign - -
MathML
SVG