… weil nicht sein kann, was nicht sein darf⁉️
Es darf nicht, KANN aber schon - wie von mir oben beschrieben. Durch entsprechende Zugriffe kann man eine ID in einem bestimmten Scope suchen und dann mit mehrdeutigen IDs erfolgreich hantieren kommen. Der Gedanke der HTML Designer war aber durchaus ein anderer, was mann allein schon daran sieht, dass getElementById nur auf dem document definiert ist.
Browser sind recht tolerante Gesellen und akzeptieren vieles, was laut Spec nicht erlaubt ist. Deshalb funktionieren die von mir genannten Möglichkeiten, mit mehrdeutigen ID-Werten umzugehen. Aber man ist damit außerhalb der Spec, man ist auf die Toleranz des Browsers angewiesen, und sollte es deshalb sein lassen.
Abgesehen davon hab ich auf die Eindeutigkeit schon am 22.3. hingewiesen :)
Rolf