Commit 08e44f61 authored by Jake Spurlock's avatar Jake Spurlock
Browse files

Accessibility: Themes: Only unlink custom logo on the home page if the theme...

Accessibility: Themes: Only unlink custom logo on the home page if the theme declares support for that.

To accommodate for the change, the custom-logo theme feature now accepts the unlink-homepage-logo parameter.

If and when the logo is linked on the home page, the link has the aria-current attribute for better accessibility.

Follow-up to [48039], [48283], see [48749].

This brings the changes to the 5.5 branch.

Props sabernhardt, audrasjb, johnstonphilip, demetris, SergeyBiryukov.
Fixes #37011.

Built from https://develop.svn.wordpress.org/branches/5.5@48755


git-svn-id: https://core.svn.wordpress.org/branches/5.5@48517 1a063a9b-81f0-0310-95a4-ce76da25c4cd
parent 2ea2fddc
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -1021,7 +1021,9 @@ function get_custom_logo( $blog_id = 0 ) {
			'class' => 'custom-logo',
		);

		if ( is_front_page() ) {
		$unlink_homepage_logo = (bool) get_theme_support( 'custom-logo', 'unlink-homepage-logo' );

		if ( $unlink_homepage_logo && is_front_page() && ! is_paged() ) {
			/*
			 * If on the home page, set the logo alt attribute to an empty string,
			 * as the image is decorative and doesn't need its purpose to be described.
@@ -1055,16 +1057,19 @@ function get_custom_logo( $blog_id = 0 ) {
		 */
		$image = wp_get_attachment_image( $custom_logo_id, 'full', false, $custom_logo_attr );

		if ( is_front_page() ) {
		if ( $unlink_homepage_logo && is_front_page() && ! is_paged() ) {
			// If on the home page, don't link the logo to home.
			$html = sprintf(
				'<span class="custom-logo-link">%1$s</span>',
				$image
			);
		} else {
			$aria_current = is_front_page() && ! is_paged() ? ' aria-current="page"' : '';

			$html = sprintf(
				'<a href="%1$s" class="custom-logo-link" rel="home">%2$s</a>',
				'<a href="%1$s" class="custom-logo-link" rel="home"%2$s>%3$s</a>',
				esc_url( home_url( '/' ) ),
				$aria_current,
				$image
			);
		}
+7 −5
Original line number Diff line number Diff line
@@ -2472,6 +2472,7 @@ function get_theme_starter_content() {
 * @since 5.3.0 Formalized the existing and already documented `...$args` parameter
 *              by adding it to the function signature.
 * @since 5.5.0 The `core-block-patterns` feature was added and is enabled by default.
 * @since 5.5.0 The `custom-logo` feature now also accepts 'unlink-homepage-logo'.
 *
 * @global array $_wp_theme_features
 *
@@ -2543,6 +2544,7 @@ function add_theme_support( $feature, ...$args ) {
				'flex-width'           => false,
				'flex-height'          => false,
				'header-text'          => '',
				'unlink-homepage-logo' => false,
			);
			$args[0]  = wp_parse_args( array_intersect_key( $args[0], $defaults ), $defaults );

+1 −1
Original line number Diff line number Diff line
@@ -13,7 +13,7 @@
 *
 * @global string $wp_version
 */
$wp_version = '5.5-RC2-48752';
$wp_version = '5.5-RC2-48755';

/**
 * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.