Make WordPress Core


Ignore:
Timestamp:
10/21/2024 07:53:10 PM (16 months ago)
Author:
joedolson
Message:

Menus: A11y: Set the parent and order using select fields.

Add select inputs to allow users to set the parent and position of items in the menu settings. Fixes a significant problem for screen reader users that makes updating menus extremely tedious, since the options for moving items do not explicitly set a position. This is also a significant improvement for all users manipulating large menus.

This could easily be considered an enhancement, but while it is a minor enhancement for most users, it is transformative for screen reader users in managing menus, moving that interface from nearly unusable to very manageable.

Props javad2000, audrasjb, juliemoynat, williamalexander, rcreators, milamj, joedolson.
Fixes #43305.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-admin/includes/class-walker-nav-menu-edit.php

    r56586 r59265  
    219219                    </label>
    220220                </p>
    221                 <p class="field-css-classes description description-thin">
    222                     <label for="edit-menu-item-classes-<?php echo $item_id; ?>">
    223                         <?php _e( 'CSS Classes (optional)' ); ?><br />
    224                         <input type="text" id="edit-menu-item-classes-<?php echo $item_id; ?>" class="widefat code edit-menu-item-classes" name="menu-item-classes[<?php echo $item_id; ?>]" value="<?php echo esc_attr( implode( ' ', $menu_item->classes ) ); ?>" />
    225                     </label>
    226                 </p>
    227                 <p class="field-xfn description description-thin">
    228                     <label for="edit-menu-item-xfn-<?php echo $item_id; ?>">
    229                         <?php _e( 'Link Relationship (XFN)' ); ?><br />
    230                         <input type="text" id="edit-menu-item-xfn-<?php echo $item_id; ?>" class="widefat code edit-menu-item-xfn" name="menu-item-xfn[<?php echo $item_id; ?>]" value="<?php echo esc_attr( $menu_item->xfn ); ?>" />
    231                     </label>
    232                 </p>
     221                <div class="description-group">
     222                    <p class="field-css-classes description description-thin">
     223                        <label for="edit-menu-item-classes-<?php echo $item_id; ?>">
     224                            <?php _e( 'CSS Classes (optional)' ); ?><br />
     225                            <input type="text" id="edit-menu-item-classes-<?php echo $item_id; ?>" class="widefat code edit-menu-item-classes" name="menu-item-classes[<?php echo $item_id; ?>]" value="<?php echo esc_attr( implode( ' ', $menu_item->classes ) ); ?>" />
     226                        </label>
     227                    </p>
     228                    <p class="field-xfn description description-thin">
     229                        <label for="edit-menu-item-xfn-<?php echo $item_id; ?>">
     230                            <?php _e( 'Link Relationship (XFN)' ); ?><br />
     231                            <input type="text" id="edit-menu-item-xfn-<?php echo $item_id; ?>" class="widefat code edit-menu-item-xfn" name="menu-item-xfn[<?php echo $item_id; ?>]" value="<?php echo esc_attr( $menu_item->xfn ); ?>" />
     232                        </label>
     233                    </p>
     234                </div>
    233235                <p class="field-description description description-wide">
    234236                    <label for="edit-menu-item-description-<?php echo $item_id; ?>">
     
    238240                    </label>
    239241                </p>
     242
     243                <?php
     244                /**
     245                 * Update parent and order of menu item using select inputs.
     246                 *
     247                 * @since 6.7.0
     248                 */
     249                ?>
     250   
     251                <div class="field-move-combo description-group">
     252                    <p class="description description-wide">
     253                        <label for="edit-menu-item-parent-<?php echo $item_id; ?>">
     254                            <?php _e( 'Menu Parent' ); ?>
     255                        </label>
     256                        <select class="edit-menu-item-parent widefat" id="edit-menu-item-parent-<?php echo $item_id; ?>" name="menu-item-parent[<?php echo $item_id; ?>]">
     257                        </select>
     258                    </p>
     259                    <p class="description description-wide">
     260                        <label for="edit-menu-item-order-<?php echo $item_id; ?>">
     261                            <?php _e( 'Menu Order' ); ?>
     262                        </label>
     263                        <select class="edit-menu-item-order widefat" id="edit-menu-item-order-<?php echo $item_id; ?>" name="menu-item-order[<?php echo $item_id; ?>]">
     264                        </select>
     265                    </p>
     266                </div>
    240267
    241268                <?php
Note: See TracChangeset for help on using the changeset viewer.