Make WordPress Core

Changeset 52166


Ignore:
Timestamp:
11/15/2021 07:58:04 PM (5 years ago)
Author:
joedolson
Message:

Menus: Add audible notice on menu item add or remove.

Call wp.a11y.speak() to add audible notification when a menu item is added or removed from a menu.

Props joedolson, costdev, hellofromTonya.
Fixes #53840.

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/js/_enqueues/lib/nav-menu.js

    r51010 r52166  
    312312                                prevItem = thisItem.prev(),
    313313                                prevItemDepth = parseInt( prevItem.menuItemDepth(), 10 ),
    314                                 prevItemId = prevItem.getItemData()['menu-item-db-id'];
     314                                prevItemId = prevItem.getItemData()['menu-item-db-id'],
     315                                a11ySpeech = menus[ 'moved' + dir.charAt(0).toUpperCase() + dir.slice(1) ];
    315316
    316317                        switch ( dir ) {
     
    400401                        api.refreshKeyboardAccessibility();
    401402                        api.refreshAdvancedAccessibility();
     403
     404                        if ( a11ySpeech ) {
     405                                wp.a11y.speak( a11ySpeech );
     406                        }
    402407                },
    403408
     
    12251230                        api.refreshKeyboardAccessibility();
    12261231                        api.refreshAdvancedAccessibility();
     1232                        wp.a11y.speak( menus.itemAdded );
    12271233                        $( document ).trigger( 'menu-item-added', [ $menuMarkup ] );
    12281234                },
     
    12401246                        api.refreshKeyboardAccessibility();
    12411247                        api.refreshAdvancedAccessibility();
     1248                        wp.a11y.speak( menus.itemAdded );
    12421249                        $( document ).trigger( 'menu-item-added', [ $menuMarkup ] );
    12431250                },
     
    15141521                                        }
    15151522                                        api.refreshAdvancedAccessibility();
     1523                                        wp.a11y.speak( menus.itemRemoved );
    15161524                                });
    15171525                },
  • trunk/src/wp-admin/nav-menus.php

    r51688 r52166  
    500500        /* translators: %s: Item name. */
    501501        'itemsDeleted'            => __( 'Deleted menu item: %s.' ),
     502        'itemAdded'               => __( 'Menu item added' ),
     503        'itemRemoved'             => __( 'Menu item removed' ),
     504        'movedUp'                 => __( 'Menu item moved up' ),
     505        'movedDown'               => __( 'Menu item moved down' ),
     506        'movedTop'                => __( 'Menu item moved to the top' ),
     507        'movedLeft'               => __( 'Menu item moved out of submenu' ),
     508        'movedRight'              => __( 'Menu item is now a sub-item' ),
    502509);
    503510wp_localize_script( 'nav-menu', 'menus', $nav_menus_l10n );
  • trunk/tests/qunit/wp-admin/js/nav-menu.js

    r47512 r52166  
    2323
    2424                var testString = '<div>Hello World</div>';
     25
     26                // Mock global menus.
     27                if ( ! window.hasOwnProperty( 'menus' ) ) {
     28                        window.menus = {
     29                                'itemAdded': false,
     30                                'itemDeleted': false
     31                        };
     32                }
     33
     34                // Mock global wp.a11y.
     35                window.wp = window.wp || {};
     36                window.wp.a11y = {
     37                        'speak': function() {}
     38                };
    2539
    2640                // Mock the internal function calls so the don't fail.
Note: See TracChangeset for help on using the changeset viewer.