Themes: Improve the theme Custom Logo accessibility.
Uses the Site title as fallback value for the Custom Logo alt attribute when the original alt attribute is empty. Props sami.keijonen, joedolson, sstoqnov, nobremarcos, gma992, LiamMcArthur, jjcomack. Fixes #38768. git-svn-id: https://develop.svn.wordpress.org/trunk@40817 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
9e969efb89
commit
181ecf1ec3
@ -888,12 +888,27 @@ function get_custom_logo( $blog_id = 0 ) {
|
||||
|
||||
// We have a logo. Logo is go.
|
||||
if ( $custom_logo_id ) {
|
||||
$custom_logo_attr = array(
|
||||
'class' => 'custom-logo',
|
||||
'itemprop' => 'logo',
|
||||
);
|
||||
|
||||
/*
|
||||
* If the logo alt attribute is empty, get the site title and explicitly
|
||||
* pass it to the attributes used by wp_get_attachment_image().
|
||||
*/
|
||||
$image_alt = get_post_meta( $custom_logo_id, '_wp_attachment_image_alt', true );
|
||||
if ( empty( $image_alt ) ) {
|
||||
$custom_logo_attr['alt'] = get_bloginfo( 'name', 'display' );
|
||||
}
|
||||
|
||||
/*
|
||||
* If the alt attribute is not empty, there's no need to explicitly pass
|
||||
* it because wp_get_attachment_image() already adds the alt attribute.
|
||||
*/
|
||||
$html = sprintf( '<a href="%1$s" class="custom-logo-link" rel="home" itemprop="url">%2$s</a>',
|
||||
esc_url( home_url( '/' ) ),
|
||||
wp_get_attachment_image( $custom_logo_id, 'full', false, array(
|
||||
'class' => 'custom-logo',
|
||||
'itemprop' => 'logo',
|
||||
) )
|
||||
wp_get_attachment_image( $custom_logo_id, 'full', false, $custom_logo_attr )
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -307,11 +307,20 @@ class Tests_General_Template extends WP_UnitTestCase {
|
||||
switch_to_blog( $blog_id );
|
||||
|
||||
$this->_set_custom_logo();
|
||||
|
||||
$custom_logo_attr = array(
|
||||
'class' => 'custom-logo',
|
||||
'itemprop' => 'logo',
|
||||
);
|
||||
|
||||
// If the logo alt attribute is empty, use the site title.
|
||||
$image_alt = get_post_meta( $this->custom_logo_id, '_wp_attachment_image_alt', true );
|
||||
if ( empty( $image_alt ) ) {
|
||||
$custom_logo_attr['alt'] = get_bloginfo( 'name', 'display' );
|
||||
}
|
||||
|
||||
$home_url = get_home_url( $blog_id, '/' );
|
||||
$image = wp_get_attachment_image( $this->custom_logo_id, 'full', false, array(
|
||||
'class' => 'custom-logo',
|
||||
'itemprop' => 'logo',
|
||||
) );
|
||||
$image = wp_get_attachment_image( $this->custom_logo_id, 'full', false, $custom_logo_attr );
|
||||
restore_current_blog();
|
||||
|
||||
$expected_custom_logo = '<a href="' . $home_url . '" class="custom-logo-link" rel="home" itemprop="url">' . $image . '</a>';
|
||||
@ -328,9 +337,38 @@ class Tests_General_Template extends WP_UnitTestCase {
|
||||
the_custom_logo();
|
||||
|
||||
$this->_set_custom_logo();
|
||||
|
||||
$custom_logo_attr = array(
|
||||
'class' => 'custom-logo',
|
||||
'itemprop' => 'logo',
|
||||
);
|
||||
|
||||
// If the logo alt attribute is empty, use the site title.
|
||||
$image_alt = get_post_meta( $this->custom_logo_id, '_wp_attachment_image_alt', true );
|
||||
if ( empty( $image_alt ) ) {
|
||||
$custom_logo_attr['alt'] = get_bloginfo( 'name', 'display' );
|
||||
}
|
||||
|
||||
$image = wp_get_attachment_image( $this->custom_logo_id, 'full', false, $custom_logo_attr );
|
||||
|
||||
$this->expectOutputString( '<a href="http://' . WP_TESTS_DOMAIN . '/" class="custom-logo-link" rel="home" itemprop="url">' . $image . '</a>' );
|
||||
the_custom_logo();
|
||||
}
|
||||
|
||||
/**
|
||||
* @group custom_logo
|
||||
* @ticket 38768
|
||||
*/
|
||||
function test_the_custom_logo_with_alt() {
|
||||
$this->_set_custom_logo();
|
||||
|
||||
$image_alt = 'My alt attribute';
|
||||
|
||||
update_post_meta( $this->custom_logo_id, '_wp_attachment_image_alt', $image_alt );
|
||||
|
||||
$image = wp_get_attachment_image( $this->custom_logo_id, 'full', false, array(
|
||||
'class' => 'custom-logo',
|
||||
'itemprop' => 'logo',
|
||||
'class' => 'custom-logo',
|
||||
'itemprop' => 'logo',
|
||||
) );
|
||||
|
||||
$this->expectOutputString( '<a href="http://' . WP_TESTS_DOMAIN . '/" class="custom-logo-link" rel="home" itemprop="url">' . $image . '</a>' );
|
||||
|
Loading…
Reference in New Issue
Block a user