Ticket #32715: 32715.9.diff
| File 32715.9.diff, 10.1 KB (added by , 11 years ago) |
|---|
-
src/wp-admin/css/customize-nav-menus.css
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 … … 644 665 #available-menu-items .accordion-section-title button { 645 666 display: block; 646 667 width: 28px; 647 height: 3 2px;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 { … … 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 686 #available-menu-items-search.cannot-expand .accordion-section-title .spinner { 687 display: block; 688 } 689 663 690 #available-menu-items .cannot-expand .accordion-section-title .no-items { 664 691 display: block; 665 692 color: #777; … … 777 804 778 805 #available-menu-items-search .spinner { 779 806 position: absolute; 780 top: 18px;807 top: 20px; 781 808 margin: 0 !important; 782 809 right: 20px; 783 810 } -
src/wp-admin/js/accordion.js
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); -
src/wp-admin/js/customize-nav-menus.js
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; … … 1991 1995 */ 1992 1996 toggleReordering: function( showOrHide ) { 1993 1997 var addNewItemBtn = this.container.find( '.add-new-menu-item' ), 1994 reorderBtn = this.container.find( '.reorder-toggle' ); 1998 reorderBtn = this.container.find( '.reorder-toggle' ), 1999 itemsTitle = this.$sectionContent.find( '.item-title' ); 1995 2000 1996 2001 showOrHide = Boolean( showOrHide ); 1997 2002 … … 2003 2008 this.$sectionContent.toggleClass( 'reordering', showOrHide ); 2004 2009 this.$sectionContent.sortable( this.isReordering ? 'disable' : 'enable' ); 2005 2010 if ( this.isReordering ) { 2006 addNewItemBtn.attr( 'tabindex', '-1');2011 addNewItemBtn.attr({ 'tabindex': '-1', 'aria-hidden': 'true' }); 2007 2012 reorderBtn.attr( 'aria-label', api.Menus.data.l10n.reorderLabelOff ); 2008 2013 wp.a11y.speak( api.Menus.data.l10n.reorderModeOn ); 2014 itemsTitle.attr( 'aria-hidden', 'false' ); 2009 2015 } else { 2010 addNewItemBtn.removeAttr( 'tabindex ' );2016 addNewItemBtn.removeAttr( 'tabindex aria-hidden' ); 2011 2017 reorderBtn.attr( 'aria-label', api.Menus.data.l10n.reorderLabelOn ); 2012 2018 wp.a11y.speak( api.Menus.data.l10n.reorderModeOff ); 2019 itemsTitle.attr( 'aria-hidden', 'true' ); 2013 2020 } 2014 2021 2015 2022 if ( showOrHide ) { -
src/wp-includes/class-wp-customize-control.php
1679 1679 ?> 1680 1680 <div class="menu-item-bar"> 1681 1681 <div class="menu-item-handle"> 1682 <span class="item-type" >{{ data.item_type_label }}</span>1683 <span class="item-title" >1682 <span class="item-type" aria-hidden="true">{{ data.item_type_label }}</span> 1683 <span class="item-title" aria-hidden="true"> 1684 1684 <span class="spinner"></span> 1685 1685 <span class="menu-item-title<# if ( ! data.title ) { #> no-title<# } #>">{{ data.title || wp.customize.Menus.data.l10n.untitled }}</span> 1686 1686 </span> 1687 1687 <span class="item-controls"> 1688 <button type="button" class="not-a-button item-edit"><span class="screen-reader-text"><?php _e( 'Edit Menu Item' ); ?></span></button> 1689 <button type="button" class="not-a-button item-delete submitdelete deletion"><span class="screen-reader-text"><?php _e( 'Remove Menu Item' ); ?></span></button> 1688 <button type="button" class="not-a-button item-edit"><span class="screen-reader-text"><?php 1689 /* translators: 1: Title of a menu item, 2: Type of a menu item */ 1690 printf( __( 'Edit menu item: %1$s (%2$s)' ), '{{ data.title || wp.customize.Menus.data.l10n.untitled }}', '{{ data.item_type_label }}' ); 1691 ?></span></button> 1692 <button type="button" class="not-a-button item-delete submitdelete deletion"><span class="screen-reader-text"><?php 1693 /* translators: 1: Title of a menu item, 2: Type of a menu item */ 1694 printf( __( 'Remove Menu Item: %1$s (%2$s)' ), '{{ data.title || wp.customize.Menus.data.l10n.untitled }}', '{{ data.item_type_label }}' ); 1695 ?></span></button> 1690 1696 </span> 1691 1697 </div> 1692 1698 </div> -
src/wp-includes/class-wp-customize-nav-menus.php
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"> … … 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( $available_item_type['title'] ) ); ?></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