These are a little tricky, and might break some quick-and-dirty
implementations. But they must be parsed correctly by all minimally
conforming WWW implementations.
Some of these constructs are markup errors which are not handled
correctly by various browsers.
These constructs are not recommended.
Text Elements
Tags
The tags for this element have spaces in them.
Just in case it missed the H3 close tag:
Names
A name should be a letter followed by letter and/or numbers. Case is not significant.
h4 with different case in start and end tags
Normal Text Content
Delimiter Recognition
Character reference: 'SPACE;' and È and 'foo;'. The last one
is an error.
And character as data: &, and as markup: &.
And-hash as data: and as markup &#.
Less-thans as data: < <1 <-)
Less-than-slash as data: 1 -)
greater-than (pretty much always data): > abc> 0>
comment: The sample implementation
groks.
comment w/space between -- and >:
tags are fine!
& as long as it's not followed by a letter or '#', it's fine!
is even ok, unless it's followed by a letter or a number.
Line breaks are significant, and characters are rendered in a fixed-width font to preserve horizontal formatting.
This is literal text with tabs. THESE words
should line up under THESE words.
Other Elements
TITLE
The TITLE can actually be as long as you like. It can have all the
'>' you want too. It just can't have the ETAGO
delimiter-in-context, that is "</" followed by a letter. '&'
should be avoided, so that entities can be treated uniformly
throughout HTML.
Anchors
name implied
HREF implied
HREF before name
spaces around '='
single quoted value
character references
and entity references in attribute value literal
ID already in use