@@einsiedler
.js-enabled [aria-expanded="false"] + .nav-group { display:none !important;}
.js-disabled [aria-expanded="false"] + .nav-group { display:block !important;}
Zwischen diesen beiden classes möchte ich umzwitschen
Nei-en. Letzteres ist wohl grundverkehrt, wenn .navgroup sichtbar ist, aber das aria-expanded-Attribut des zugehörigen Buttons angibt, dass es nicht sichtbar ist. Das dürfte etliche Screenreader-Nutzer verwirren.
Wenn JavaScript nicht ausgeführt wird, sollte das aria-expanded-Attribut nicht den Wert "false" haben, sondern "undefined". [WAI-ARIA] Oder gar nicht vorhanden sein. Das hieße also: aria-expanded erst mit JavaScript auf "true" setzen.
Allerdings sind die Buttons, wenn JavaScript nicht ausgeführt wird, ohne Funktion. Dann sollten sie aber gar nicht zu sehen sein: <button hidden="">. (Wenn die Buttons hidden sind, könnten sie auch aria-expanded="true" haben.) Mit JavaScript wird das hidden-Attribut entfernt.
Oder die Buttons werden mit CSS display: none ausgeblendet (und wenn JavaScript läuft, eingeblendet).
Was du nicht brauchst: zwei Klassen js-enabled und js-disabled. Eine reicht. Mit JavaScript setzst du js-enabled. Ohne JavaScript ist die Klasse nicht da.
.js-enabled [aria-expanded="false"] + .nav-group { display:none !important;} wie gehabt. Die andere Regel brauchst du nicht.
LLAP 🖖
-- 
„Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann