Make WordPress Core

Ticket #32715: 32715.5.diff

File 32715.5.diff, 7.3 KB (added by westonruter, 11 years ago)

refresh patch

  • src/wp-admin/css/customize-nav-menus.css

    diff --git src/wp-admin/css/customize-nav-menus.css src/wp-admin/css/customize-nav-menus.css
    index 77a839c..a6df8a8 100644
     
    619619        background: #eee;
    620620}
    621621
    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 {
    623644        content: '\f142';
    624645}
    625646
    button.not-a-button { 
    644665#available-menu-items .accordion-section-title button {
    645666        display: block;
    646667        width: 28px;
    647         height: 32px;
     668        height: 35px;
    648669        position: absolute;
    649670        top: 5px;
    650671        right: 5px;
     672        cursor: pointer;
    651673}
    652674
    653675#available-menu-items .accordion-section-title button:focus {
  • src/wp-admin/js/accordion.js

    diff --git src/wp-admin/js/accordion.js src/wp-admin/js/accordion.js
    index 1769d27..bdd21ba 100644
     
    5353         */
    5454        function accordionSwitch ( el ) {
    5555                var section = el.closest( '.accordion-section' ),
     56                        sectionToggleControl = section.find( '[aria-expanded]' ).eq( 0 ),
    5657                        siblings = section.closest( '.accordion-container' ).find( '.open' ),
     58                        siblingsToggleControl = siblings.find( '[aria-expanded]' ).eq( 0 ),
    5759                        content = section.find( '.accordion-section-content' );
    5860
    5961                // This section has no content and cannot be expanded.
     
    6567                        section.toggleClass( 'open' );
    6668                        content.toggle( true ).slideToggle( 150 );
    6769                } else {
     70                        siblingsToggleControl.attr( 'aria-expanded', 'false' );
    6871                        siblings.removeClass( 'open' );
    6972                        siblings.find( '.accordion-section-content' ).show().slideUp( 150 );
    7073                        content.toggle( false ).slideToggle( 150 );
    7174                        section.toggleClass( 'open' );
    7275                }
     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                }
    7381        }
    7482
    7583})(jQuery);
  • src/wp-admin/js/customize-nav-menus.js

    diff --git src/wp-admin/js/customize-nav-menus.js src/wp-admin/js/customize-nav-menus.js
    index 58c27a8..75cd1f3 100644
     
    176176
    177177                // Search input change handler.
    178178                search: function( event ) {
     179                        var $searchSection = $( '#available-menu-items-search' ),
     180                                $openSections = $( '#available-menu-items .accordion-section.open' );
     181
    179182                        if ( ! event ) {
    180183                                return;
    181184                        }
    182185                        // Manual accordion-opening behavior.
    183                         if ( this.searchTerm && ! $( '#available-menu-items-search' ).hasClass( 'open' ) ) {
    184                                 $( '#available-menu-items .accordion-section-content' ).slideUp( 'fast' );
    185                                 $( '#available-menu-items-search .accordion-section-content' ).slideDown( 'fast' );
    186                                 $( '#available-menu-items .accordion-section.open' ).removeClass( 'open' );
    187                                 $( '#available-menu-items-search' ).addClass( 'open' );
     186                        if ( this.searchTerm && ! $searchSection.hasClass( 'open' ) ) {
     187                                $openSections.find( '.accordion-section-content' ).slideUp( 'fast' );
     188                                $searchSection.find( '.accordion-section-content' ).slideDown( 'fast' );
     189                                $openSections.find( '[aria-expanded]' ).eq( 0 ).attr( 'aria-expanded', 'false' );
     190                                $openSections.removeClass( 'open' );
     191                                $searchSection.addClass( 'open' );
    188192                        }
    189193                        if ( '' === event.target.value ) {
    190                                 $( '#available-menu-items-search' ).removeClass( 'open' );
     194                                $searchSection.removeClass( 'open' );
    191195                        }
    192196                        if ( this.searchTerm === event.target.value ) {
    193197                                return;
  • src/wp-includes/class-wp-customize-nav-menus.php

    diff --git src/wp-includes/class-wp-customize-nav-menus.php src/wp-includes/class-wp-customize-nav-menus.php
    index 502ad2b..cc0e4a1 100644
    final class WP_Customize_Nav_Menus { 
    692692                                <ul class="accordion-section-content" data-type="search"></ul>
    693693                        </div>
    694694                        <div id="new-custom-menu-item" class="accordion-section">
    695                                 <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>
     695                                <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>
    696696                                <div class="accordion-section-content">
    697697                                        <input type="hidden" value="custom" id="custom-menu-item-type" name="menu-item[-1][menu-item-type]" />
    698698                                        <p id="menu-item-url-wrap">
    final class WP_Customize_Nav_Menus { 
    724724                                foreach ( $post_types as $type ) :
    725725                                        ?>
    726726                                        <div id="available-menu-items-<?php echo esc_attr( $type->name ); ?>" class="accordion-section">
    727                                                 <h4 class="accordion-section-title"><?php echo esc_html( $type->label ); ?> <span class="spinner"></span> <span class="no-items"><?php _e( 'No items' ); ?></span> <button type="button" class="not-a-button"><span class="screen-reader-text"><?php _e( 'Toggle' ); ?></span></button></h4>
     727                                                <h4 class="accordion-section-title" role="presentation"><?php echo esc_html( $type->label ); ?> <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( $type->label ) ); ?></span><span class="toggle-indicator" aria-hidden="true"></span></button></h4>
    728728                                                <ul class="accordion-section-content" data-type="<?php echo esc_attr( $type->name ); ?>" data-obj_type="post_type"></ul>
    729729                                        </div>
    730730                                <?php
    final class WP_Customize_Nav_Menus { 
    736736                                foreach ( $taxonomies as $tax ) :
    737737                                        ?>
    738738                                        <div id="available-menu-items-<?php echo esc_attr( $tax->name ); ?>" class="accordion-section">
    739                                                 <h4 class="accordion-section-title"><?php echo esc_html( $tax->label ); ?> <span class="spinner"></span> <span class="no-items"><?php _e( 'No items' ); ?></span> <button type="button" class="not-a-button"><span class="screen-reader-text"><?php _e( 'Toggle' ); ?></span></button></h4>
     739                                                <h4 class="accordion-section-title" role="presentation"><?php echo esc_html( $tax->label ); ?> <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>
    740740                                                <ul class="accordion-section-content" data-type="<?php echo esc_attr( $tax->name ); ?>" data-obj_type="taxonomy"></ul>
    741741                                        </div>
    742742                                <?php