Website-Logo-Funk­tion von WordPress ohne alt-Text für un­ver­link­tes Logo

Für WordPress-Themes (Classic, nicht Block-Themes) kann über einen add_theme_support()-Aufruf die Unterstützung für die Website-Logo-Funktion aktiviert werden. Dabei gibt es seit WordPress 5.5.0 die Option, das Logo auf der Startseite nicht zu verlinken, allerdings wird dann auch das alt-Attribut leer gelassen statt mit dem Website-Titel gefüllt. Das kann je nachdem, wie das Logo im Theme genutzt wird, Probleme mit der Barrierefreiheit bedeuten.

Wenn ich ein Logo auf einer Website einsetze, die auf der Startseite die letzten Beiträge anzeigt und keine andere h1 hat, wrappe ich das Logo in eine h1, denn der alt-Text vom Logo ist dann der Inhalt der Überschrift. Mit einem leeren alt-Attribut ergibt das natürlich wenig Sinn, aber verlinken möchte ich es auf der Startseite auch nicht, weil die User*innen sich ja schon auf der Startseite befinden.

Da WordPress aber zumindest bei seinen PHP-Funktionen so gut wie alles irgendwo filterbar macht, ist das kein großes Problem, denn mit dem Filter get_custom_logo_image_attributes lassen sich die Attribute für das Logo vor der Ausgabe verändern:

function slug_add_logo_alt( array $attrs ) { $alt = $attrs['alt'] ?? ''; if ( '' !== $alt ) { return $attrs; } $attrs['alt'] = get_bloginfo( 'name', 'display' ); return $attrs; } add_filter( 'get_custom_logo_image_attributes', 'slug_add_logo_alt' );
Code-Sprache: PHP (php)

Am Anfang der Funktion wird der Inhalt des alt-Attributs gespeichert. Wenn ein Alternativtext vorhanden ist, wird das Array mit den Attributen direkt zurückgegeben, andernfalls wird der Website-Titel im alt-Array-Key gespeichert und das veränderte Array zurückgegeben. Und schon hat das Logo auch auf der Startseite wieder einen alt-Text.

4 Reaktionen zu »Website-Logo-Funk­tion von WordPress ohne alt-Text für un­ver­link­tes Logo«

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert