Make WordPress Core

Ticket #31527: 31527.twentythirteen.patch

File 31527.twentythirteen.patch, 1.8 KB (added by lancewillett, 10 years ago)

Add ARIA attribute toggle behavior to Twenty Thirteen

  • wp-content/themes/twentythirteen/js/functions.js

     
    66
    77( function( $ ) {
    88        var body    = $( 'body' ),
    9             _window = $( window );
     9            _window = $( window ),
     10                nav, button, menu, tertiary;
    1011
     12        nav = $( '#site-navigation' );
     13        button = nav.find( '.menu-toggle' );
     14        menu = nav.find( '.nav-menu' );
     15        tertiary = $( '#tertiary' );
     16
    1117        /**
    1218         * Adds a top margin to the footer if the sidebar widget area is higher
    1319         * than the rest of the page, to help the footer always visually clear
     
    2935         * Enables menu toggle for small screens.
    3036         */
    3137        ( function() {
    32                 var nav = $( '#site-navigation' ), button, menu;
    33                 if ( ! nav ) {
     38                if ( ! nav || ! button ) {
    3439                        return;
    3540                }
    3641
    37                 button = nav.find( '.menu-toggle' );
    38                 if ( ! button ) {
    39                         return;
    40                 }
    41 
    4242                // Hide button if menu is missing or empty.
    43                 menu = nav.find( '.nav-menu' );
    4443                if ( ! menu || ! menu.children().length ) {
    4544                        button.hide();
    4645                        return;
     
    6968                } );
    7069        } )();
    7170
     71        // Add or remove ARIA attributes.
     72        function onResizeARIA() {
     73                if ( 643 > _window.width() ) {
     74                        button.attr( 'aria-expanded', 'false' );
     75                        tertiary.attr( 'aria-expanded', 'false' );
     76                        button.attr( 'aria-controls', 'secondary' );
     77                } else {
     78                        button.removeAttr( 'aria-expanded' );
     79                        tertiary.removeAttr( 'aria-expanded' );
     80                        button.removeAttr( 'aria-controls' );
     81                }
     82        }
     83
     84        _window
     85                .on( 'load.twentythirteen', onResizeARIA )
     86                .on( 'resize.twentythirteen', function() {
     87                        onResizeARIA();
     88        } );
     89
    7290        /**
    7391         * Makes "skip to content" link work correctly in IE9 and Chrome for better
    7492         * accessibility.