Make WordPress Core

Ticket #31527: 31527.twentythirteen.2.patch

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

Second pass at Twenty Thirteen

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

     
    4242                                <nav id="site-navigation" class="navigation main-navigation" role="navigation">
    4343                                        <button class="menu-toggle"><?php _e( 'Menu', 'twentythirteen' ); ?></button>
    4444                                        <a class="screen-reader-text skip-link" href="#content" title="<?php esc_attr_e( 'Skip to content', 'twentythirteen' ); ?>"><?php _e( 'Skip to content', 'twentythirteen' ); ?></a>
    45                                         <?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu_class' => 'nav-menu' ) ); ?>
     45                                        <?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu_class' => 'nav-menu', 'menu_id' => 'primary-menu' ) ); ?>
    4646                                        <?php get_search_form(); ?>
    4747                                </nav><!-- #site-navigation -->
    4848                        </div><!-- #navbar -->
  • 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
    1116        /**
    1217         * Adds a top margin to the footer if the sidebar widget area is higher
    1318         * than the rest of the page, to help the footer always visually clear
     
    2934         * Enables menu toggle for small screens.
    3035         */
    3136        ( function() {
    32                 var nav = $( '#site-navigation' ), button, menu;
    33                 if ( ! nav ) {
     37                if ( ! nav || ! button ) {
    3438                        return;
    3539                }
    3640
    37                 button = nav.find( '.menu-toggle' );
    38                 if ( ! button ) {
    39                         return;
    40                 }
    41 
    4241                // Hide button if menu is missing or empty.
    43                 menu = nav.find( '.nav-menu' );
    4442                if ( ! menu || ! menu.children().length ) {
    4543                        button.hide();
    4644                        return;
     
    4846
    4947                button.on( 'click.twentythirteen', function() {
    5048                        nav.toggleClass( 'toggled-on' );
     49                        if ( nav.hasClass( 'toggled-on' ) ) {
     50                                $( this ).attr( 'aria-expanded', 'true' );
     51                                menu.attr( 'aria-expanded', 'true' );
     52                        } else {
     53                                $( this ).attr( 'aria-expanded', 'false' );
     54                                menu.attr( 'aria-expanded', 'false' );
     55                        }
    5156                } );
    5257
    5358                // Fix sub-menus for touch devices.
     
    6974                } );
    7075        } )();
    7176
     77        // Add or remove ARIA attributes.
     78        function onResizeARIA() {
     79                if ( 643 > _window.width() ) {
     80                        button.attr( 'aria-expanded', 'false' );
     81                        menu.attr( 'aria-expanded', 'false' );
     82                        button.attr( 'aria-controls', 'primary-menu' );
     83                } else {
     84                        button.removeAttr( 'aria-expanded' );
     85                        menu.removeAttr( 'aria-expanded' );
     86                        button.removeAttr( 'aria-controls' );
     87                }
     88        }
     89
     90        _window
     91                .on( 'load.twentythirteen', onResizeARIA )
     92                .on( 'resize.twentythirteen', function() {
     93                        onResizeARIA();
     94        } );
     95
    7296        /**
    7397         * Makes "skip to content" link work correctly in IE9 and Chrome for better
    7498         * accessibility.