WordPress.org

Make WordPress Core

Ticket #31368: 31368.2.patch

File 31368.2.patch, 7.5 KB (added by afercia, 5 years ago)
  • src/wp-admin/admin-header.php

     
    189189}
    190190?>
    191191
     192<div id="wp-speak" role="status" aria-live="polite" aria-relevant="all" aria-atomic="true" class="screen-reader-text"></div>
     193
    192194<div id="wpwrap">
    193195<a tabindex="1" href="#wpbody-content" class="screen-reader-shortcut"><?php _e('Skip to main content'); ?></a>
    194196<?php require(ABSPATH . 'wp-admin/menu-header.php'); ?>
  • src/wp-admin/admin.php

     
    9393$time_format = get_option('time_format');
    9494
    9595wp_enqueue_script( 'common' );
     96wp_enqueue_script( 'a11y' );
    9697
    9798// $pagenow is set in vars.php
    9899// $wp_importers is sometimes set in wp-admin/includes/import.php
  • src/wp-admin/customize.php

     
    118118<body class="<?php echo esc_attr( $body_class ); ?>">
    119119<div class="wp-full-overlay expanded">
    120120        <form id="customize-controls" class="wrap wp-full-overlay-sidebar">
    121                 <div id="screen-reader-messages" role="status" aria-live="polite" aria-relevant="all" aria-atomic="true" class="screen-reader-text"></div>
     121                <div id="wp-speak" role="status" aria-live="polite" aria-relevant="all" aria-atomic="true" class="screen-reader-text"></div>
    122122
    123123                <div id="customize-header-actions" class="wp-full-overlay-header">
    124124                        <?php
  • src/wp-admin/js/customize-widgets.js

     
    685685
    686686                                        if ( isMoveUp ) {
    687687                                                self.moveUp();
    688                                                 $( '#screen-reader-messages' ).text( l10n.widgetMovedUp );
     688                                                wp.speak( l10n.widgetMovedUp );
    689689                                        } else {
    690690                                                self.moveDown();
    691                                                 $( '#screen-reader-messages' ).text( l10n.widgetMovedDown );
     691                                                wp.speak( l10n.widgetMovedDown );
    692692                                        }
    693693
    694694                                        $( this ).focus(); // re-focus after the container was moved
     
    19871987                return settingId;
    19881988        }
    19891989
     1990        wp.a11y.debug = true;
     1991
    19901992})( window.wp, jQuery );
  • src/wp-admin/js/updates.js

     
    107107
    108108                $message.addClass( 'updating-message' );
    109109                $message.text( wp.updates.l10n.updating );
     110                wp.speak( wp.updates.l10n.updatingMsg );
    110111
    111112                if ( wp.updates.updateLock ) {
    112113                        wp.updates.updateQueue.push( {
     
    153154
    154155                $message.removeClass( 'updating-message' ).addClass( 'updated-message' );
    155156                $message.text( wp.updates.l10n.updated );
     157                wp.speak( wp.updates.l10n.updatedMsg );
    156158
    157159                wp.updates.decrementCount( 'plugin' );
    158160        };
     
    173175                }
    174176                $message.removeClass( 'updating-message' );
    175177                $message.text( wp.updates.l10n.updateFailed );
     178                wp.speak( wp.updates.l10n.updateFailed );
    176179        };
    177180
    178181        /**
     
    198201
    199202                $message.addClass( 'updating-message' );
    200203                $message.text( wp.updates.l10n.installing );
     204                wp.speak( wp.updates.l10n.installingMsg );
    201205
    202206                if ( wp.updates.updateLock ) {
    203207                        wp.updates.updateQueue.push( {
     
    234238
    235239                $message.removeClass( 'updating-message' ).addClass( 'updated-message button-disabled' );
    236240                $message.text( wp.updates.l10n.installed );
     241                wp.speak( wp.updates.l10n.installedMsg );
    237242        };
    238243
    239244        /**
     
    316321                        }
    317322                        wp.updates.installPlugin( $button.data( 'slug' ) );
    318323                } );
     324
     325                wp.a11y.debug = true;
    319326        } );
    320327
    321328        $( window ).on( 'message', function( e ) {
  • src/wp-includes/js/wp-a11y.js

     
     1window.wp = window.wp || {};
     2
     3( function ( wp, $ ) {
     4        'use strict';
     5
     6        var a11y;
     7
     8        a11y = wp.a11y = wp.a11y || {};
     9
     10        /**
     11         * Flag to enable debug mode.
     12         * Set this to true in your script after wp.a11y is executed to have messages
     13         * printed out in your browser's console.
     14         *
     15         * @since 4.2.0
     16         *
     17         * @var bool
     18         */
     19        a11y.debug = false;
     20
     21        /**
     22         * wp.a11y.log
     23         *
     24         * A debugging utility. Works only when the debug flag is on and the browser
     25         * supports it.
     26         *
     27         * @since 4.2.0
     28         */
     29        a11y.log = function() {
     30                if ( window.console && a11y.debug ) {
     31                        window.console.log.apply( window.console, arguments );
     32                }
     33        };
     34
     35        /**
     36         * wp.a11y.speak
     37         *
     38         * Update the ARIA live notification area text node.
     39         *
     40         * @since 4.2.0
     41         *
     42         * @param {string} message
     43         */
     44        a11y.speak = function( message ) {
     45
     46                if ( 0 === a11y.liveContainer.length ) {
     47                        // No need to make this translatable, it's just for debugging.
     48                        a11y.log( 'WP speak can\'t speak: no live notification area present' );
     49                        return;
     50                }
     51
     52                // Log messages to the console when debugging.
     53                a11y.log( 'WP speak: ' + message );
     54
     55                // Make messages available to screen readers.
     56                a11y.liveContainer.text( message );
     57
     58        };
     59
     60        /**
     61         * Give developers an easy, handy, shortcut to send messages to screen readers.
     62         *
     63         * Usage: wp.speak( 'your text string here' );
     64         *
     65         * @since 4.2.0
     66         */
     67        wp.speak = a11y.speak;
     68
     69        /**
     70         * Initialize wp.a11y and define ARIA live notification area.
     71         *
     72         * @since 4.2.0
     73         */
     74        a11y.init = function() {
     75                a11y.liveContainer = $( '#wp-speak' );
     76        };
     77
     78        $( document ).ready( a11y.init );
     79
     80} ( window.wp, jQuery ) );
  • src/wp-includes/script-loader.php

     
    8282                'warnDelete' => __("You are about to permanently delete the selected items.\n  'Cancel' to stop, 'OK' to delete.")
    8383        ) );
    8484
     85        $scripts->add( 'a11y', "/wp-includes/js/wp-a11y$suffix.js", array( 'jquery' ), false, 1 );
     86
    8587        $scripts->add( 'sack', "/wp-includes/js/tw-sack$suffix.js", array(), '1.6.1', 1 );
    8688
    8789        $scripts->add( 'quicktags', "/wp-includes/js/quicktags$suffix.js", array(), false, 1 );
     
    379381
    380382        $scripts->add( 'hoverIntent', "/wp-includes/js/hoverIntent$suffix.js", array('jquery'), 'r7', 1 );
    381383
    382         $scripts->add( 'customize-base',     "/wp-includes/js/customize-base$suffix.js",     array( 'jquery', 'json2', 'underscore' ), false, 1 );
     384        $scripts->add( 'customize-base',     "/wp-includes/js/customize-base$suffix.js",     array( 'jquery', 'json2', 'underscore', 'a11y' ), false, 1 );
    383385        $scripts->add( 'customize-loader',   "/wp-includes/js/customize-loader$suffix.js",   array( 'customize-base' ), false, 1 );
    384386        $scripts->add( 'customize-preview',  "/wp-includes/js/customize-preview$suffix.js",  array( 'customize-base' ), false, 1 );
    385387        $scripts->add( 'customize-models',   "/wp-includes/js/customize-models.js", array( 'underscore', 'backbone' ), false, 1 );
     
    511513                                'installing'    => __( 'Installing...' ),
    512514                                'installed'     => __( 'Installed!' ),
    513515                                'installFailed' => __( 'Installation failed' ),
     516                                'updatingMsg'   => __( 'Updating... please wait.' ),
     517                                'installingMsg' => __( 'Installing... please wait.' ),
     518                                'updatedMsg'    => __( 'Update completed successfully.' ),
     519                                'installedMsg'  => __( 'Installation completed successfully.' ),
    514520                        )
    515521                ) );
    516522