Name is coming from the initial DOM 0 (DOM Zero Level) interface
model. In this model form controls are identified by name or by index
in elements collection:
Only controls having name attribute set are being submitted, this rule
is in effect since then and forever.
id attribute was introduced only in DOM 1. As other poster pointed out
ID supposed to be unique for the given document, while name can be the
same for many elements (think of radio buttons group for instance).
This is why say accesskey is attached to ID and not to name. That is
not the only neither the main reason but it gives the idea why
sometimes it is useful to set both id and name for a form control,
<input type=”radio” value=”yes” name=”rdg” id=”rd01″>
<input type=”radio” value=”no” name=”rdg” id=”rd02″>
For anchors and links collections name attribute usage is deprecated
and rarely used.
document.images[“ImageName”] is still pretty much in use.