Make WordPress Core

Changeset 52166


Ignore:
Timestamp:
11/15/2021 07:58:04 PM (2 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.