One of those cases where IE doesn’t follow the standards, you design for IE and it dies in all the other browsers. Another example, according to the standards, class and ID names are case sensitive.
ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens (“-”), underscores (“_”), colons (“:”), and periods (“.”).
<a name=“foo”>some anchor</a>
this is not a NAME token?
Does this rule not hold even though names are cdata?
So name=“” is not the same thing as NAME? And then id = name but not NAME? Bizarre and interesting. They expected regular human beings to read this?
In HTML5 name=“” is obsolete (you should use id=“” instead, can be used on any element).
Man developers haven’t used name on anchors since XHTML said it should be removed (was deprecated in 1.1? which people writing 1.0 wanted to emulate wherever possible), which is where I started before moving to HTML4.
My own weird interpretation was; the Anchor NAME is loosely taking the same space as the ID anyway. So if they both happen appear in the anchor then the ID wins the fight and forces the NAME into complicit submission regarding the values.