foreach ( $menu as $key => $item ) {
$admin_is_parent = false;
$class = array();
- $aria_attributes = 'tabindex="1"';
+ $aria_attributes = '';
if ( $first ) {
$class[] = 'wp-first-item';
} else {
$class[] = 'wp-not-current-submenu';
if ( ! empty( $submenu_items ) )
- $aria_attributes .= ' aria-haspopup="true"';
+ $aria_attributes .= 'aria-haspopup="true"';
}
if ( ! empty( $item[4] ) )
$class = $class ? ' class="' . join( ' ', $class ) . '"' : '';
$id = ! empty( $item[5] ) ? ' id="' . preg_replace( '|[^a-zA-Z0-9_:.]|', '-', $item[5] ) . '"' : '';
$img = '';
+ // if the string 'none' (previously 'div') is passed instead of an URL, don't output the default menu image
+ // so an icon can be added to div.wp-menu-image as background with CSS.
if ( ! empty( $item[6] ) )
- $img = ( 'div' === $item[6] ) ? '<br />' : '<img src="' . $item[6] . '" alt="" />';
+ $img = ( 'none' === $item[6] || 'div' === $item[6] ) ? '<br />' : '<img src="' . $item[6] . '" alt="" />';
$arrow = '<div class="wp-menu-arrow"><div></div></div>';
$title = wptexturize( $item[0] );
+ $aria_label = esc_attr( strip_tags( $item[0] ) ); // strip the comment/plugins/updates bubbles spans but keep the pending number if any
echo "\n\t<li$class$id>";
$menu_file = substr( $menu_file, 0, $pos );
if ( ! empty( $menu_hook ) || ( ('index.php' != $submenu_items[0][2]) && file_exists( WP_PLUGIN_DIR . "/$menu_file" ) ) ) {
$admin_is_parent = true;
- echo "<div class='wp-menu-image'><a href='admin.php?page={$submenu_items[0][2]}'>$img</a></div>$arrow<a href='admin.php?page={$submenu_items[0][2]}'$class $aria_attributes>$title</a>";
+ echo "<a href='admin.php?page={$submenu_items[0][2]}'$class $aria_attributes>$arrow<div class='wp-menu-image'>$img</div><div class='wp-menu-name'>$title</div></a>";
} else {
- echo "\n\t<div class='wp-menu-image'><a href='{$submenu_items[0][2]}'>$img</a></div>$arrow<a href='{$submenu_items[0][2]}'$class $aria_attributes>$title</a>";
+ echo "\n\t<a href='{$submenu_items[0][2]}'$class $aria_attributes>$arrow<div class='wp-menu-image'>$img</div><div class='wp-menu-name'>$title</div></a>";
}
} elseif ( ! empty( $item[2] ) && current_user_can( $item[1] ) ) {
$menu_hook = get_plugin_page_hook( $item[2], 'admin.php' );
$menu_file = substr( $menu_file, 0, $pos );
if ( ! empty( $menu_hook ) || ( ('index.php' != $item[2]) && file_exists( WP_PLUGIN_DIR . "/$menu_file" ) ) ) {
$admin_is_parent = true;
- echo "\n\t<div class='wp-menu-image'><a href='admin.php?page={$item[2]}'>$img</a></div>$arrow<a href='admin.php?page={$item[2]}'$class $aria_attributes>{$item[0]}</a>";
+ echo "\n\t<a href='admin.php?page={$item[2]}'$class $aria_attributes>$arrow<div class='wp-menu-image'>$img</div><div class='wp-menu-name'>{$item[0]}</div></a>";
} else {
- echo "\n\t<div class='wp-menu-image'><a href='{$item[2]}'>$img</a></div>$arrow<a href='{$item[2]}'$class $aria_attributes>{$item[0]}</a>";
+ echo "\n\t<a href='{$item[2]}'$class $aria_attributes>$arrow<div class='wp-menu-image'>$img</div><div class='wp-menu-name'>{$item[0]}</div></a>";
}
}
if ( ! empty( $submenu_items ) ) {
- echo "\n\t<div class='wp-submenu'><div class='wp-submenu-wrap'>";
- echo "<div class='wp-submenu-head'>{$item[0]}</div><ul>";
+ echo "\n\t<ul class='wp-submenu wp-submenu-wrap'>";
+ echo "<li class='wp-submenu-head'>{$item[0]}</li>";
+
$first = true;
foreach ( $submenu_items as $sub_key => $sub_item ) {
if ( ! current_user_can( $sub_item[1] ) )
continue;
- $aria_attributes = 'tabindex="1"';
$class = array();
if ( $first ) {
$class[] = 'wp-first-item';
$sub_item_url = add_query_arg( array('page' => $sub_item[2]), 'admin.php' );
$sub_item_url = esc_url( $sub_item_url );
- echo "<li$class><a href='$sub_item_url'$class $aria_attributes>$title</a></li>";
+ echo "<li$class><a href='$sub_item_url'$class>$title</a></li>";
} else {
- echo "<li$class><a href='{$sub_item[2]}'$class $aria_attributes>$title</a></li>";
+ echo "<li$class><a href='{$sub_item[2]}'$class>$title</a></li>";
}
}
- echo "</ul></div></div>";
+ echo "</ul>";
}
echo "</li>";
}