Make WordPress Core

Ticket #32600: 32600-alt.patch

File 32600-alt.patch, 1.8 KB (added by azaozz, 9 years ago)
  • src/wp-includes/js/wp-a11y.js

     
    33( function ( wp, $ ) {
    44        'use strict';
    55
    6         var $container;
     6        var $container, $body;
    77
    88        /**
    99         * Update the ARIA live notification area text node.
    1010         *
    1111         * @since 4.2.0
     12         * @since 4.3.0 Introduced the 'ariaLive' argument.
    1213         *
    13          * @param {String} message
     14         * @param {String} message  The message to be announced by Assistive Technologies.
     15         * @param {String} ariaLive Optional. The politeness level for aria-live. Possible values:
     16         *                            polite or assertive. Default polite.
    1417         */
    15         function speak( message ) {
    16                 if ( $container ) {
     18        function speak( message, ariaLive ) {
     19                // Clear previous messages to allow repeated strings being read out.
     20                $container.text( '' );
     21
     22                ariaLive = ariaLive || 'polite';
     23
     24                if ( $container.attr( 'aria-live' ) !== ariaLive ) {
     25                        $container.attr( 'aria-live', ariaLive );
     26                        $body.append( $container );
     27                }
     28
     29                window.setTimeout( function() {
    1730                        $container.text( message );
    18                 }
     31                }, 0 );
    1932        }
    2033
    2134        /**
     
    2538         */
    2639        $( document ).ready( function() {
    2740                $container = $( '#wp-a11y-speak' );
     41                $body = $( document.body );
    2842
    2943                if ( ! $container.length ) {
    3044                        $container = $( '<div>', {
     
    3145                                id: 'wp-a11y-speak',
    3246                                role: 'status',
    3347                                'aria-live': 'polite',
    34                                 'aria-relevant': 'all',
     48                                'aria-relevant': 'additions text',
    3549                                'aria-atomic': 'true',
    3650                                'class': 'screen-reader-text'
    37                         } );
    38 
    39                         $( document.body ).append( $container );
     51                        });
    4052                }
    41         } );
    4253
     54                $body.append( $container );
     55        });
     56
    4357        wp.a11y = wp.a11y || {};
    4458        wp.a11y.speak = speak;
    4559