Gunnar Bittersmann: javascript Zugriff auf Element mit Attribut "id" ohne getElementById

Beitrag lesen

@@Gerrit

irgendwann habe ich mal eine Site gesehen, bei der ohne getElementById auf HTML-Elemente zugegriffen wurde. BSP:

HTML: <div id="test"></div>

JavaScript: test.onclick = …

Der IE hatte vor Urzeiten Elemente mit ID als Eigenschaft des window-Objekts angelegt. War mir gar nicht bewusst, dass andere Browser das nachmachen. Vielleicht ist das sogar jetzt so spezifiziert?

Seither verwende ich es ohne Probleme.

Du vielleicht; andere nicht.

Nun meine Frage: sollte / darf man das eigentlich so machen?

Nein. Man darf nicht auf click-Events von nicht-interaktiven Elementen (wie div) lauschen (bzw. nicht-interaktiven Elemente als target bei event delegation verwenden), wenn die Anwendung allgemein bedienbar sein soll.

Nicht-interaktive Elemente sind nicht in der Tab-Reihenfolge und prinzipiell nicht anclickbar. Sie mögen für einen Teil der Nutzer bedienbar sein, für einen anderen Teil aber unbedienbar. Verwende Buttons!

LLAP 🖖

--
“When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory