Servus!
Nur deine Namensgebung finde ich irreführend, du schreibst "var tabs = ..." - querySelector liefert aber immer nur ein Element, die Variable sollte also eher selectedTab heißen.
Stimmt, das werd' ich ändern!
Wenn Du davon ausgehst, dass mehrere Elemente ein aria-selected="true" haben und alle de-selektieren willst, brauchst Du querySelectorAll und eine Schleife, weil NodeList keine jQuery-artige setAttribute Methode hat.
Es geht um die zugänglichen Registerkarten.
Dort hatte ich (zu) viele DOM-Methoden, die hier zum Beispiel alle Tabs gefunden haben, um ihnen dann in einer Schleife ein mögliches aria-selected zu entfernen, bevor dann das geklickte eines erhält.
Im konkreten Fall sollte es aber wohl nie mehr als einen Treffer geben.
Genau aus diesem Grund habe ich dann gesucht und document.querySelector('[aria-selected="true"]');
gefunden - genial und viel kürzerer Code.
Oder habe ich die besondere Besonderheit deines Snippets übersehen?
Nein, ich bin oft froh, dass es überhaupt funktioniert und sehe später, dass der Code, die Auszeichnung von Variablen, etc stark verbesserungswürdig ist.
Am wochenende mach ich mich dann mal an die Verknüpfung von :focus (mit document.activeElement) und Enter-Eingabe über Tastatur.
Herzliche Grüße
Matthias Scharwies
Es gibt viel zu tun: ToDo-Liste