Skip to content

Commit db97a05

Browse files
committed
Accessibility: hide admin menu separators from screen readers.
props afercia. fixes #30010. git-svn-id: https://develop.svn.wordpress.org/trunk@30393 602fd350-edb4-49c9-b593-d223f7449a82
1 parent c002bcf commit db97a05

1 file changed

Lines changed: 13 additions & 2 deletions

File tree

src/wp-admin/menu-header.php

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ function _wp_menu_output( $menu, $submenu, $submenu_as_parent = true ) {
5252
$admin_is_parent = false;
5353
$class = array();
5454
$aria_attributes = '';
55+
$aria_hidden = '';
56+
$is_separator = false;
5557

5658
if ( $first ) {
5759
$class[] = 'wp-first-item';
@@ -80,6 +82,10 @@ function _wp_menu_output( $menu, $submenu, $submenu_as_parent = true ) {
8082
$img = $img_style = '';
8183
$img_class = ' dashicons-before';
8284

85+
if ( false !== strpos( $class, 'wp-menu-separator' ) ) {
86+
$is_separator = true;
87+
}
88+
8389
/*
8490
* If the string 'none' (previously 'div') is passed instead of an URL, don't output
8591
* the default menu image so an icon can be added to div.wp-menu-image as background
@@ -104,9 +110,14 @@ function _wp_menu_output( $menu, $submenu, $submenu_as_parent = true ) {
104110

105111
$title = wptexturize( $item[0] );
106112

107-
echo "\n\t<li$class$id>";
113+
// hide separators from screen readers
114+
if ( $is_separator ) {
115+
$aria_hidden = ' aria-hidden="true"';
116+
}
108117

109-
if ( false !== strpos( $class, 'wp-menu-separator' ) ) {
118+
echo "\n\t<li$class$id$aria_hidden>";
119+
120+
if ( $is_separator ) {
110121
echo '<div class="separator"></div>';
111122
} elseif ( $submenu_as_parent && ! empty( $submenu_items ) ) {
112123
$submenu_items = array_values( $submenu_items ); // Re-index.

0 commit comments

Comments
 (0)