From af97f9d16bf8a4960167caddcb0c0b627aacffa6 Mon Sep 17 00:00:00 2001 From: Helen Hou-Sandi Date: Sat, 3 Dec 2016 03:40:13 +0000 Subject: [PATCH] Twenty Seventeen: Improve ARIA for the nav menu. The `onResizeARIA()` function was not very useful and buggy. props afercia. fixes #39029, #39026. git-svn-id: https://develop.svn.wordpress.org/trunk@39451 602fd350-edb4-49c9-b593-d223f7449a82 --- .../twentyseventeen/assets/js/navigation.js | 47 +++++-------------- 1 file changed, 11 insertions(+), 36 deletions(-) diff --git a/src/wp-content/themes/twentyseventeen/assets/js/navigation.js b/src/wp-content/themes/twentyseventeen/assets/js/navigation.js index da50e0fae1..f0fd65249a 100644 --- a/src/wp-content/themes/twentyseventeen/assets/js/navigation.js +++ b/src/wp-content/themes/twentyseventeen/assets/js/navigation.js @@ -17,8 +17,13 @@ container.find( '.menu-item-has-children > a, .page_item_has_children > a' ).after( dropdownToggle ); - // Toggle buttons and submenu items with active children menu items. - container.find( '.current-menu-ancestor > button' ).addClass( 'toggled-on' ); + // Set the active submenu dropdown toggle button initial state. + container.find( '.current-menu-ancestor > button' ) + .addClass( 'toggled-on' ) + .attr( 'aria-expanded', 'true' ) + .find( '.screen-reader-text' ) + .text( twentyseventeenScreenReaderText.collapse ); + // Set the active submenu initial state. container.find( '.current-menu-ancestor > .sub-menu' ).addClass( 'toggled-on' ); container.find( '.dropdown-toggle' ).click( function( e ) { @@ -50,15 +55,13 @@ return; } - // Add an initial values for the attribute. - menuToggle.add( siteNavigation ).attr( 'aria-expanded', 'false' ); + // Add an initial value for the attribute. + menuToggle.attr( 'aria-expanded', 'false' ); menuToggle.on( 'click.twentyseventeen', function() { - $( siteNavContain ).toggleClass( 'toggled-on' ); + siteNavContain.toggleClass( 'toggled-on' ); - $( this ) - .add( siteNavigation ) - .attr( 'aria-expanded', $( this ).add( siteNavigation ).attr( 'aria-expanded' ) === 'false' ? 'true' : 'false' ); + $( this ).attr( 'aria-expanded', siteNavContain.hasClass( 'toggled-on' ) ); }); })(); @@ -103,32 +106,4 @@ $( this ).parents( '.menu-item, .page_item' ).toggleClass( 'focus' ); }); })(); - - // Add the default ARIA attributes for the menu toggle and the navigations. - function onResizeARIA() { - if ( 'block' === $( '.menu-toggle' ).css( 'display' ) ) { - - if ( menuToggle.hasClass( 'toggled-on' ) ) { - menuToggle.attr( 'aria-expanded', 'true' ); - } else { - menuToggle.attr( 'aria-expanded', 'false' ); - } - - if ( siteNavigation.closest( '.main-navigation' ).hasClass( 'toggled-on' ) ) { - siteNavigation.attr( 'aria-expanded', 'true' ); - } else { - siteNavigation.attr( 'aria-expanded', 'false' ); - } - } else { - menuToggle.removeAttr( 'aria-expanded' ); - siteNavigation.removeAttr( 'aria-expanded' ); - menuToggle.removeAttr( 'aria-controls' ); - } - } - - $( document ).ready( function() { - $( window ).on( 'load.twentyseventeen', onResizeARIA ); - $( window ).on( 'resize.twentyseventeen', onResizeARIA ); - }); - })( jQuery );