| |

Warning: The navigation role is unnecessary for element nav

hiker 918473 1920

Mit WordPress 4.1 kamen die Funktionen get_the_posts_pagination() und the_posts_pagination(). Validiert man eine Seite die ein Theme mit dieser Funktion verwendet, wird Warning: The navigation role is unnecessary for element nav angezeigt.

validator warning

Wem das nicht gefällt, hier kommt die Lösung.

get_the_posts_pagination() verwendet paginate_links() und die von außen nicht zugängliche Funktion _navigation_markup für das Template.

Die Funktion ist in wp-includes/link-template.php

function _navigation_markup( $links, $class = 'posts-navigation', $screen_reader_text = '' ) { if ( empty( $screen_reader_text ) ) { $screen_reader_text = __( 'Posts navigation' ); } $template = ' <nav class="navigation %1$s" role="navigation"> <h2 class="screen-reader-text">%2$s</h2> <div class="nav-links">%3$s</div> </nav>'; /** * Filters the navigation markup template. * * Note: The filtered template HTML must contain specifiers for the navigation * class (%1$s), the screen-reader-text value (%2$s), and placement of the * navigation links (%3$s): * * <nav class="navigation %1$s" role="navigation"> * <h2 class="screen-reader-text">%2$s</h2> * <div class="nav-links">%3$s</div> * </nav> * * @since 4.4.0 * * @param string $template The default template. * @param string $class The class passed by the calling function. * @return string Navigation template. */ $template = apply_filters( 'navigation_markup_template', $template, $class ); return sprintf( $template, sanitize_html_class( $class ), esc_html( $screen_reader_text ), $links ); }
Code-Sprache: PHP (php)

Das Template ist jedoch über einen Filter modifizierbar:

$template = apply_filters( 'navigation_markup_template', $template, $class );
Code-Sprache: PHP (php)

.

Das role-Attribut aus dem Template entfernen

function flxo_validate_pagination( $template ) { return str_replace( 'role="navigation"', '', $template ); } add_filter( 'navigation_markup_template', 'flxo_validate_pagination' );
Code-Sprache: PHP (php)

Der Filter wirkt auch auf die Paginierung von Kommentaren, da sie dasselbe Template verwendet.

validator clean

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.