Space Before Closing Slash? Space Before Closing Slash? xml xml

Space Before Closing Slash?


The answer is people wish to adhere to Appendix C of the XHTML1.0 specification. Which you only need to do if you are serving XHTML as text/html. Which most people do, because XHTML's real MIME type (application/html+xml) does not work in Internet Explorer.

No current browser cares for the space. Browsers are very tolerant of these things.

The space used to be required to ensure HTML parsers treated the trailing slash as an unrecognised attribute.


Netscape 4.80 showing different behaviour of <br/> and <br /> in HTML

Supporting bobince's answer with screenshot of Netscape 4.80 showing documents

data:text/html,<title>space</title>foo<br />bar

(top left, linebreak rendered) and

data:text/html,<title>no space</title>foo<br/>bar

(bottom left, linebreak ignored).


Posting as answer to show the picture

Tangentially related: in fact I had a lengthy answer identifying the cause of such misbehaviour of ancient browsers (and resulting recommendation to include space) in misunderstood SGML specs, namely SGML Null End Tag (NET) (where 1<tag/2/3 equals 1<tag>2</tag>3 so 1<tag/>2 would actually mean 1<tag>>2), but not only I was unable to find good proof and concrete version of standard, I wasn't even able to grasp proper standard-complying behaviour. So few raw links for reference:

(Unable to reproduce there now, but supports Lee Kowalkowski's statement about multiple browsers affected by this.)


Are those issues still relevant or are we still adding extra spaces for the sake of, say, IE3 compatibility?

You were close - it is for Netscape 4.

It is interesting to see other rationalisations, but that's all it was meant for.