diff --git src/wp-admin/css/customize-nav-menus.css src/wp-admin/css/customize-nav-menus.css
index 77a839c..0d11b2d 100644
|
|
|
|
| 619 | 619 | background: #eee; |
| 620 | 620 | } |
| 621 | 621 | |
| 622 | | #available-menu-items .open .accordion-section-title:after { |
| | 622 | /* rework the arrow indicator implementation for NVDA bug see #32715 */ |
| | 623 | #available-menu-items .accordion-section-title:after { |
| | 624 | content: none !important; |
| | 625 | } |
| | 626 | |
| | 627 | #available-menu-items .accordion-section-title .toggle-indicator { |
| | 628 | display: inline-block; |
| | 629 | font-size: 20px; |
| | 630 | line-height: 1; |
| | 631 | } |
| | 632 | |
| | 633 | #available-menu-items .accordion-section-title .toggle-indicator:after { |
| | 634 | content: '\f140'; |
| | 635 | font: normal 20px/1 'dashicons'; |
| | 636 | vertical-align: top; |
| | 637 | speak: none; |
| | 638 | -webkit-font-smoothing: antialiased; |
| | 639 | -moz-osx-font-smoothing: grayscale; |
| | 640 | text-decoration: none !important; |
| | 641 | } |
| | 642 | |
| | 643 | #available-menu-items .open .accordion-section-title .toggle-indicator:after { |
| 623 | 644 | content: '\f142'; |
| 624 | 645 | } |
| 625 | 646 | |
| … |
… |
button.not-a-button { |
| 644 | 665 | #available-menu-items .accordion-section-title button { |
| 645 | 666 | display: block; |
| 646 | 667 | width: 28px; |
| 647 | | height: 32px; |
| | 668 | height: 35px; |
| 648 | 669 | position: absolute; |
| 649 | 670 | top: 5px; |
| 650 | 671 | right: 5px; |
| | 672 | cursor: pointer; |
| 651 | 673 | } |
| 652 | 674 | |
| 653 | 675 | #available-menu-items .accordion-section-title button:focus { |
| … |
… |
button.not-a-button { |
| 656 | 678 | } |
| 657 | 679 | |
| 658 | 680 | #available-menu-items .accordion-section-title .no-items, |
| 659 | | #available-menu-items .cannot-expand .accordion-section-title .spinner { |
| | 681 | #available-menu-items .cannot-expand .accordion-section-title .spinner, |
| | 682 | #available-menu-items .cannot-expand .accordion-section-title > button { |
| 660 | 683 | display: none; |
| 661 | 684 | } |
| 662 | 685 | |
diff --git src/wp-admin/js/accordion.js src/wp-admin/js/accordion.js
index 1769d27..bdd21ba 100644
|
|
|
|
| 53 | 53 | */ |
| 54 | 54 | function accordionSwitch ( el ) { |
| 55 | 55 | var section = el.closest( '.accordion-section' ), |
| | 56 | sectionToggleControl = section.find( '[aria-expanded]' ).eq( 0 ), |
| 56 | 57 | siblings = section.closest( '.accordion-container' ).find( '.open' ), |
| | 58 | siblingsToggleControl = siblings.find( '[aria-expanded]' ).eq( 0 ), |
| 57 | 59 | content = section.find( '.accordion-section-content' ); |
| 58 | 60 | |
| 59 | 61 | // This section has no content and cannot be expanded. |
| … |
… |
|
| 65 | 67 | section.toggleClass( 'open' ); |
| 66 | 68 | content.toggle( true ).slideToggle( 150 ); |
| 67 | 69 | } else { |
| | 70 | siblingsToggleControl.attr( 'aria-expanded', 'false' ); |
| 68 | 71 | siblings.removeClass( 'open' ); |
| 69 | 72 | siblings.find( '.accordion-section-content' ).show().slideUp( 150 ); |
| 70 | 73 | content.toggle( false ).slideToggle( 150 ); |
| 71 | 74 | section.toggleClass( 'open' ); |
| 72 | 75 | } |
| | 76 | |
| | 77 | // If there's an element with an aria-expanded attribute, assume it's a toggle control and toggle the aria-expanded value. |
| | 78 | if ( sectionToggleControl ) { |
| | 79 | sectionToggleControl.attr( 'aria-expanded', sectionToggleControl.attr( 'aria-expanded' ) === 'false' ? 'true' : 'false' ); |
| | 80 | } |
| 73 | 81 | } |
| 74 | 82 | |
| 75 | 83 | })(jQuery); |
diff --git src/wp-admin/js/customize-nav-menus.js src/wp-admin/js/customize-nav-menus.js
index 7b8fbf5..d14b700 100644
|
|
|
|
| 173 | 173 | |
| 174 | 174 | // Search input change handler. |
| 175 | 175 | search: function( event ) { |
| | 176 | var $searchSection = $( '#available-menu-items-search' ), |
| | 177 | $openSections = $( '#available-menu-items .accordion-section.open' ); |
| | 178 | |
| 176 | 179 | if ( ! event ) { |
| 177 | 180 | return; |
| 178 | 181 | } |
| 179 | 182 | // Manual accordion-opening behavior. |
| 180 | | if ( this.searchTerm && ! $( '#available-menu-items-search' ).hasClass( 'open' ) ) { |
| 181 | | $( '#available-menu-items .accordion-section-content' ).slideUp( 'fast' ); |
| 182 | | $( '#available-menu-items-search .accordion-section-content' ).slideDown( 'fast' ); |
| 183 | | $( '#available-menu-items .accordion-section.open' ).removeClass( 'open' ); |
| 184 | | $( '#available-menu-items-search' ).addClass( 'open' ); |
| | 183 | if ( this.searchTerm && ! $searchSection.hasClass( 'open' ) ) { |
| | 184 | $openSections.find( '.accordion-section-content' ).slideUp( 'fast' ); |
| | 185 | $searchSection.find( '.accordion-section-content' ).slideDown( 'fast' ); |
| | 186 | $openSections.find( '[aria-expanded]' ).eq( 0 ).attr( 'aria-expanded', 'false' ); |
| | 187 | $openSections.removeClass( 'open' ); |
| | 188 | $searchSection.addClass( 'open' ); |
| 185 | 189 | } |
| 186 | 190 | if ( '' === event.target.value ) { |
| 187 | | $( '#available-menu-items-search' ).removeClass( 'open' ); |
| | 191 | $searchSection.removeClass( 'open' ); |
| 188 | 192 | } |
| 189 | 193 | if ( this.searchTerm === event.target.value ) { |
| 190 | 194 | return; |
diff --git src/wp-includes/class-wp-customize-nav-menus.php src/wp-includes/class-wp-customize-nav-menus.php
index ce1a9be..4432659 100644
|
|
|
final class WP_Customize_Nav_Menus { |
| 721 | 721 | <ul class="accordion-section-content" data-type="search"></ul> |
| 722 | 722 | </div> |
| 723 | 723 | <div id="new-custom-menu-item" class="accordion-section"> |
| 724 | | <h4 class="accordion-section-title"><?php _e( 'Custom Links' ); ?><button type="button" class="not-a-button"><span class="screen-reader-text"><?php _e( 'Toggle' ); ?></span></button></h4> |
| | 724 | <h4 class="accordion-section-title" role="presentation"><?php _e( 'Custom Links' ); ?> <button type="button" class="not-a-button" aria-expanded="false"><span class="screen-reader-text"><?php _e( 'Toggle section: Custom Links' ); ?></span><span class="toggle-indicator" aria-hidden="true"></span></button></h4> |
| 725 | 725 | <div class="accordion-section-content"> |
| 726 | 726 | <input type="hidden" value="custom" id="custom-menu-item-type" name="menu-item[-1][menu-item-type]" /> |
| 727 | 727 | <p id="menu-item-url-wrap"> |
| … |
… |
final class WP_Customize_Nav_Menus { |
| 750 | 750 | $id = sprintf( 'available-menu-items-%s-%s', $available_item_type['type'], $available_item_type['object'] ); |
| 751 | 751 | ?> |
| 752 | 752 | <div id="<?php echo esc_attr( $id ); ?>" class="accordion-section"> |
| 753 | | <h4 class="accordion-section-title"><?php echo esc_html( $available_item_type['title'] ); ?> <span class="no-items"><?php _e( 'No items' ); ?></span><span class="spinner"></span> <button type="button" class="not-a-button"><span class="screen-reader-text"><?php _e( 'Toggle' ); ?></span></button></h4> |
| | 753 | <h4 class="accordion-section-title" role="presentation"><?php echo esc_html( $available_item_type['title'] ); ?> <span class="spinner"></span> <span class="no-items"><?php _e( 'No items' ); ?></span> <button type="button" class="not-a-button" aria-expanded="false"><span class="screen-reader-text"><?php printf( 'Toggle section: %s', esc_html( $tax->label ) ); ?></span><span class="toggle-indicator" aria-hidden="true"></span></button></h4> |
| 754 | 754 | <ul class="accordion-section-content" data-type="<?php echo esc_attr( $available_item_type['type'] ); ?>" data-object="<?php echo esc_attr( $available_item_type['object'] ); ?>"></ul> |
| 755 | 755 | </div> |
| 756 | 756 | <?php |