Wie gestern gesagt möchtest du das nicht.
Okay, dann denk an Murphys law. Alles was schief gehen kann, wird schief gehen. Erster Hauptsatz der Software-Entwicklung.
Wie im Vorposting gesagt, funktioniert alles bestens, wenn die Regeln […] gleichzeitig gelten.
Wenn das Wörtchen „wenn“ nicht wäre. Genau diese Nebenbedingung ist unter leicht veränderten Umständen möglicherweise verletzt und Murphy sagt, dass genau dieser Fall eintreten wird. Und genau da meine ich, dass man die Navigation noch robuster gestalten könnte.
Für „konkret“ ist mir das zu unkonkret.
Besser? Man achte auf das aria-expanded
-Attribut, das jetzt immer mit dem tatsächlichen Zustand der Navigation übereinstimmt. Dass CSS vereinfacht sich insofern, als dass nun nur noch das aria-expandend
-Attribut relevant für die Anzeige der Unternavigation ist. JavaScript verkompliziert sich insofern, als dass man jetzt einen zweiten Event-Handler benötigt, ich habe dafür das drumherum ein wenig aufgeräumt, sodass der Code insgesamt hoffentlich trotzdem leichter zu verstehen ist.