Make WordPress Core

Ticket #31527: 31527.twentyfourteen.2.patch

File 31527.twentyfourteen.2.patch, 2.8 KB (added by lancewillett, 10 years ago)

Second pass at Twenty Fourteen

  • wp-content/themes/twentyfourteen/header.php

     
    5151                        <nav id="primary-navigation" class="site-navigation primary-navigation" role="navigation">
    5252                                <button class="menu-toggle"><?php _e( 'Primary Menu', 'twentyfourteen' ); ?></button>
    5353                                <a class="screen-reader-text skip-link" href="#content"><?php _e( 'Skip to content', 'twentyfourteen' ); ?></a>
    54                                 <?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu_class' => 'nav-menu' ) ); ?>
     54                                <?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu_class' => 'nav-menu', 'menu_id' => 'primary-menu' ) ); ?>
    5555                        </nav>
    5656                </div>
    5757
  • wp-content/themes/twentyfourteen/js/functions.js

     
    77 */
    88( function( $ ) {
    99        var body    = $( 'body' ),
    10                 _window = $( window );
     10                _window = $( window ),
     11                nav, button, menu;
    1112
     13        nav = $( '#primary-navigation' );
     14        button = nav.find( '.menu-toggle' );
     15        menu = nav.find( '.nav-menu' );
     16
    1217        // Enable menu toggle for small screens.
    1318        ( function() {
    14                 var nav = $( '#primary-navigation' ), button, menu;
    15                 if ( ! nav ) {
     19                if ( ! nav || ! button ) {
    1620                        return;
    1721                }
    1822
    19                 button = nav.find( '.menu-toggle' );
    20                 if ( ! button ) {
    21                         return;
    22                 }
    23 
    2423                // Hide button if menu is missing or empty.
    25                 menu = nav.find( '.nav-menu' );
    2624                if ( ! menu || ! menu.children().length ) {
    2725                        button.hide();
    2826                        return;
    2927                }
    3028
    31                 $( '.menu-toggle' ).on( 'click.twentyfourteen', function() {
     29                button.on( 'click.twentyfourteen', function() {
    3230                        nav.toggleClass( 'toggled-on' );
     31                        if ( nav.hasClass( 'toggled-on' ) ) {
     32                                $( this ).attr( 'aria-expanded', 'true' );
     33                                menu.attr( 'aria-expanded', 'true' );
     34                        } else {
     35                                $( this ).attr( 'aria-expanded', 'false' );
     36                                menu.attr( 'aria-expanded', 'false' );
     37                        }
    3338                } );
    3439        } )();
    3540
     
    109114                } );
    110115        } );
    111116
     117        // Add or remove ARIA attributes.
     118        function onResizeARIA() {
     119                if ( 781 > _window.width() ) {
     120                        button.attr( 'aria-expanded', 'false' );
     121                        menu.attr( 'aria-expanded', 'false' );
     122                        button.attr( 'aria-controls', 'primary-menu' );
     123                } else {
     124                        button.removeAttr( 'aria-expanded' );
     125                        menu.removeAttr( 'aria-expanded' );
     126                        button.removeAttr( 'aria-controls' );
     127                }
     128        }
     129
     130        _window
     131                .on( 'load.twentyfourteen', onResizeARIA )
     132                .on( 'resize.twentyfourteen', function() {
     133                        onResizeARIA();
     134        } );
     135
    112136        _window.load( function() {
    113137                // Arrange footer widgets vertically.
    114138                if ( $.isFunction( $.fn.masonry ) ) {