WordPress.org

Make WordPress Core

Ticket #48894: 48894.diff

File 48894.diff, 1.9 KB (added by audrasjb, 17 months ago)

Toolbar: Accessibility: Make the ”Howdy” menu open only when clicking

  • src/js/_enqueues/lib/admin-bar.js

    diff --git a/src/js/_enqueues/lib/admin-bar.js b/src/js/_enqueues/lib/admin-bar.js
    index 537df2d98f..eb203b154a 100644
    a b  
    3434                allMenuItems = adminBar.querySelectorAll( '.ab-item' );
    3535                adminBarLogout = document.getElementById( 'wp-admin-bar-logout' );
    3636                adminBarSearchForm = document.getElementById( 'adminbarsearch' );
     37                adminBarMyAccount = document.getElementById( 'wp-admin-bar-my-account' );
    3738                shortlink = document.getElementById( 'wp-admin-bar-get-shortlink' );
    3839                skipLink = adminBar.querySelector( '.screen-reader-shortcut' );
    3940                mobileEvent = /Mobile\/.+Safari/.test( navigator.userAgent ) ? 'touchstart' : 'click';
     
    6566                adminBar.addEventListener( 'click', scrollToTop );
    6667
    6768                for ( i = 0; i < topMenuItems.length; i++ ) {
    68                         // Adds or removes the hover class based on the hover intent.
    69                         window.hoverintent(
    70                                 topMenuItems[i],
    71                                 addClass.bind( null, topMenuItems[i], 'hover' ),
    72                                 removeClass.bind( null, topMenuItems[i], 'hover' )
    73                         ).options( {
    74                                 timeout: 180
    75                         } );
     69                        if ( topMenuItems[i].id !== 'wp-admin-bar-my-account' ) {
     70                                // Adds or removes the hover class based on the hover intent, except for My Account menu.
     71                                window.hoverintent(
     72                                        topMenuItems[i],
     73                                        addClass.bind( null, topMenuItems[i], 'hover' ),
     74                                        removeClass.bind( null, topMenuItems[i], 'hover' )
     75                                ).options( {
     76                                        timeout: 180
     77                                } );
     78                        }
    7679
    7780                        // Toggle hover class if the enter key is pressed.
    7881                        topMenuItems[i].addEventListener( 'keydown', toggleHoverIfEnter );
    7982                }
    8083
     84                // Toggle hover class on My Account menu.
     85                adminBarMyAccount.addEventListener( 'click', function( event ) {
     86                        event.preventDefault();
     87                        adminBarMyAccount.classList.toggle( 'hover' );
     88                } );
     89
    8190                // Remove hover class if the escape key is pressed.
    8291                for ( i = 0; i < allMenuItems.length; i++ ) {
    8392                        allMenuItems[i].addEventListener( 'keydown', removeHoverIfEscape );