Nach den 24 Beiträgen im Adventskalender vor Weihnachten, habe ich mir im Januar eine Auszeit genommen, um wieder Energie zu tanken und um weitere und andere Themen zu sammeln, über die ich schreiben möchte. Weil ich mich aktuell auf eine Zertifizierung für Barrierefreiheit vorbereite, möchte ich einige Blogbeiträge zu diesen Themen schreiben. Heute gibt es den ersten zu diesem Thema, ich werde zwischendurch aber vermutlich auch über andere Themen bloggen.
Einstellen einer Menü-Beschriftung bei einem Block-Theme
Wenn ihr eine Website mit nur einer Navigation habt, die den <nav>
Tag verwendet, dann seid ihr vielleicht noch auf der sicheren Seite. Es ist aber trotzdem eine gute Idee, der Navigation ein (gutes) Label für die Hauptnavigation zu vergeben. Wenn ihr aber zwei Menüs habt, dann müsst ihr auf jeden Fall Labels vergeben.
Viele Screenreader haben die Möglichkeit, zu „Landmarks“ auf eurer Website zu springen. Damit kann man die Navigationsmenüs auf der Seite leichter finden. In der Regel wird dabei aber nur angesagt, wie viele Links die einzelnen Menüs haben, nicht aber, wo sich das Menü befindet oder welchen „Zweck“ sie hat.
Das Standard-Navigationsmenü in Twenty Twenty-Five
Wenn ihr ein neues WordPress-Projekt mit dem Standard-Theme Twenty Twenty-Five erstellt, werdet ihr ein Navigationsmenü nur mit der „Sample Page“ als Eintrag bekommen. Es würde sogar ein aria-label
Attribut haben, das aber leer ist (alle anderen Attributwerte habe ich durch ...
ersetzt, da sie in diesem Codeschnipsel nicht wichtig sind):
<nav class="..." aria-label="" data-wp-interactive="..." data-wp-context="...">
Das Navigationsmenü hat allerdings einen „Namen“. Es heißt einfach „Navigation“. Wenn ihr zu „Design > Website-Editor > Navigation“ geht, sollten es bei euch ungefähr so aussehen:

Hier klickt ihr auf die drei Punkte neben dem Namen und dann auf „Umbenennen“. Jetzt könnt ihr z.B. „Hauptnavigation“ eingeben. Wenn wir jetzt die Seite im Frontend aktualisieren, sehen wir … keine Veränderung. Auch nach der Änderung des Namens ist das aria-abel
weiterhin leer.
Lösung: Ändern des Namens nach Duplizieren des Menüs
Ich weiß nicht genau, warum die Änderung des Namen keinen Wert für das aria-label
hinzufügt, aber ich habe einen Workaround gefunden. Statt „Umbenennen“ zu verwenden, könnt ihr „Duplizieren“ nutzen. Dadurch wird dem duplizierten Menü ein Suffix „(Kopie)“ hinzugefügt. Jetzt müsst ihr dieses neue Navigationsmenü nur noch an der gewünschten Stelle einsetzen. Navigiert dafür zum Beispiel zu „Design > Website-Editor > Vorlagen > Header“. Dort wählt ihr dann die Kopfzeile aus und klicken auf den Navigationsblock. In den Blockeinstellungen klickt ihr auf die drei Punkte rechts von „Menü“ und wählt dann das neue Menü aus, das ihr zuvor dupliziert und umbenannt habt:

Wenn wir nun die Kopfzeile mit diesem neuen Menü speichern und das Frontend aktualisieren, haben wir endlich unser aria-label
(hier im Code „Hauptnavigation“ statt „Main navigation“ wie im Screenshot):
<nav class="..." aria-label="Hauptnavigation" ... >
In der Auswahlliste im Screenshot oben gibt es auch die Option „Create new Menu“ (auf Deutsch: „Neues Menü erstellen“). Wenn ihr hier eine neue Navigation erstellt, würde diese einen Namen wie „Navigation 2“ erhalten. Dieser würde automatisch als Label verwendet werden. Um das zu ändern, müsstet ihr wieder zurück zum Website-Editor gehen, um es dort zu ändern. Es wäre schön, wenn das auch direkt hier in den Blockeinstellungen möglich wäre.
Hinzufügen eines Labels zu einem Classic Theme
Wenn ihr noch ein Classic Theme verwenden, müsst ihr das Label anders verwalten. Obwohl WordPress seit Version 5.5 Labels unterstützt, verwenden viele Themes diese noch nicht. Zumindest nicht mit dem neuen Parameter. So wird das Label z.B. in Twenty Twenty hinzugefügt:
<nav aria-label="<?php esc_attr_e( 'Footer', 'twentytwenty' ); ?>" ... >
Wenn ihr das Label hier ändern wollt, müsstet ihr die Datei selbst bearbeiten – in einem Child Theme. Nicht wirklich ideal, aber dennoch möglich. Wenn ihr also selbst Themes entwickelt, dann verwendet am besten den Parameter container_aria_label
der Funktion wp_nav_menu()
in eurem Code.
Fazit
Das Hinzufügen eines Labels zu jedem Navigationsmenü kann einen großen Unterschied für die Barrierefreiheit der Website machen. Wenn ihr ein Block-Theme verwendet, können ihr das ganz ohne Code direkt im Website-Editor anpassen. Wie ich euch gezeigt habe, sind die automatischen Namen der Navigationsmenüs nicht wirklich ideal. Ihr sollten also vielleicht mal die Labels eurer Website überprüfen und ihnen eventuell bessere Namen geben.