Make WordPress Core

Ticket #31527: 31527.2.patch

File 31527.2.patch, 2.6 KB (added by lancewillett, 10 years ago)
  • wp-content/themes/twentyfifteen/js/functions.js

     
    88( function( $ ) {
    99        var $body, $window, $sidebar, adminbarOffset, top = false,
    1010            bottom = false, windowWidth, windowHeight, lastWindowPos = 0,
    11             topOffset = 0, bodyHeight, sidebarHeight, resizeTimer;
     11            topOffset = 0, bodyHeight, sidebarHeight, resizeTimer,
     12                secondary, button;
    1213
    1314        // Add dropdown toggle that display child menu items.
    1415        $( '.main-navigation .menu-item-has-children > a' ).after( '<button class="dropdown-toggle" aria-expanded="false">' + screenReaderText.expand + '</button>' );
     
    2627                _this.html( _this.html() === screenReaderText.expand ? screenReaderText.collapse : screenReaderText.expand );
    2728        } );
    2829
     30        secondary = $( '#secondary' );
     31        button = $( '.site-branding' ).find( '.secondary-toggle' );
     32
    2933        // Enable menu toggle for small screens.
    3034        ( function() {
    31                 var secondary = $( '#secondary' ), button, menu, widgets, social;
     35                var menu, widgets, social;
    3236                if ( ! secondary ) {
    3337                        return;
    3438                }
    3539
    36                 button = $( '.site-branding' ).find( '.secondary-toggle' );
    3740                if ( ! button ) {
    3841                        return;
    3942                }
     
    5154                        secondary.toggleClass( 'toggled-on' );
    5255                        secondary.trigger( 'resize' );
    5356                        $( this ).toggleClass( 'toggled-on' );
     57                        if ( $( this, secondary ).hasClass( 'toggled-on' ) ) {
     58                                $( this ).attr( 'aria-expanded', 'true' );
     59                                secondary.attr( 'aria-expanded', 'true' );
     60                        } else {
     61                                $( this ).attr( 'aria-expanded', 'false' );
     62                                secondary.attr( 'aria-expanded', 'false' );
     63                        }
    5464                } );
    5565        } )();
    5666
     67        // Add or remove ARIA attributes.
     68        function onResizeARIA() {
     69                if ( 955 > $window.width() ) {
     70                        button.attr( 'aria-expanded', 'false' );
     71                        secondary.attr( 'aria-expanded', 'false' );
     72                        button.attr( 'aria-controls', 'secondary' );
     73                } else {
     74                        button.removeAttr( 'aria-expanded' );
     75                        secondary.removeAttr( 'aria-expanded' );
     76                        button.removeAttr( 'aria-controls' );
     77                }
     78        }
     79
    5780        // Sidebar scrolling.
    5881        function resize() {
    5982                windowWidth   = $window.width();
     
    119142
    120143                $window
    121144                        .on( 'scroll.twentyfifteen', scroll )
     145                        .on( 'load.twentyfifteen', onResizeARIA )
    122146                        .on( 'resize.twentyfifteen', function() {
    123147                                clearTimeout( resizeTimer );
    124148                                resizeTimer = setTimeout( resizeAndScroll, 500 );
     149                                onResizeARIA();
    125150                        } );
    126                 $sidebar.on( 'click keydown', 'button', resizeAndScroll );
     151                $sidebar.on( 'click.twentyfifteen keydown.twentyfifteen', 'button', resizeAndScroll );
    127152
    128153                resizeAndScroll();
    129154