Accessibility: Replace wp-a11y.js with @wordpress/a11y package

We've extracted wp-includes/wp-a11y.js to a reusable package wordpress/a11y which is published on NPM. Let's make sure this package is also used in WordPress core. Once all the JavaScript is built using webpack, we can also import this package wherever it is used and configure webpack to load is an external.

Props omarreiss, herregroen, desrosj, ocean90, afercia, sstoqnov


Built from https://develop.svn.wordpress.org/trunk@46167


git-svn-id: http://core.svn.wordpress.org/trunk@45979 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
whyisjake 2019-09-18 17:41:55 +00:00
parent 9ed7b79387
commit 08a077658d
4 changed files with 4 additions and 109 deletions

View File

@ -786,6 +786,9 @@ $_old_files = array(
// 5.1
'wp-includes/random_compat/random_bytes_openssl.php',
'wp-includes/js/tinymce/wp-tinymce.js.gz',
// 5.3
'wp-includes/js/wp-a11y.js', // Moved to: wp-includes/js/dist/a11y.js
'wp-includes/js/wp-a11y.min.js', // Moved to: wp-includes/js/dist/a11y.min.js
);
/**

View File

@ -1,107 +0,0 @@
/**
* @output wp-includes/js/wp-a11y.js
*/
/** @namespace wp */
window.wp = window.wp || {};
( function ( wp, $ ) {
'use strict';
var $containerPolite,
$containerAssertive,
previousMessage = '';
/**
* Update the ARIA live notification area text node.
*
* @since 4.2.0
* @since 4.3.0 Introduced the 'ariaLive' argument.
*
* @param {String} message The message to be announced by Assistive Technologies.
* @param {String} [ariaLive] The politeness level for aria-live. Possible values:
* polite or assertive. Default polite.
* @returns {void}
*/
function speak( message, ariaLive ) {
// Clear previous messages to allow repeated strings being read out.
clear();
// Remove HTML tags, ensuring only text is sent to screen readers.
message = wp.sanitize.stripTagsAndEncodeText( message );
/*
* Safari 10+VoiceOver don't announce repeated, identical strings. We use
* a `no-break space` to force them to think identical strings are different.
* See ticket #36853.
*/
if ( previousMessage === message ) {
message = message + '\u00A0';
}
previousMessage = message;
if ( $containerAssertive && 'assertive' === ariaLive ) {
$containerAssertive.text( message );
} else if ( $containerPolite ) {
$containerPolite.text( message );
}
}
/**
* Build the live regions markup.
*
* @since 4.3.0
*
* @param {String} ariaLive Optional. Value for the 'aria-live' attribute, default 'polite'.
*
* @return {Object} $container The ARIA live region jQuery object.
*/
function addContainer( ariaLive ) {
ariaLive = ariaLive || 'polite';
var $container = $( '<div>', {
'id': 'wp-a11y-speak-' + ariaLive,
'aria-live': ariaLive,
'aria-relevant': 'additions text',
'aria-atomic': 'true',
'class': 'screen-reader-text wp-a11y-speak-region'
});
$( document.body ).append( $container );
return $container;
}
/**
* Clear the live regions.
*
* @since 4.3.0
*/
function clear() {
$( '.wp-a11y-speak-region' ).text( '' );
}
/**
* Initialize wp.a11y and define ARIA live notification area.
*
* @since 4.2.0
* @since 4.3.0 Added the assertive live region.
*/
$( document ).ready( function() {
$containerPolite = $( '#wp-a11y-speak-polite' );
$containerAssertive = $( '#wp-a11y-speak-assertive' );
if ( ! $containerPolite.length ) {
$containerPolite = addContainer( 'polite' );
}
if ( ! $containerAssertive.length ) {
$containerAssertive = addContainer( 'assertive' );
}
});
/** @namespace wp.a11y */
wp.a11y = wp.a11y || {};
wp.a11y.speak = speak;
}( window.wp, window.jQuery ));

View File

@ -1 +0,0 @@
window.wp=window.wp||{},function(a,b){"use strict";function c(b,c){e(),b=a.sanitize.stripTagsAndEncodeText(b),h===b&&(b+="\xa0"),h=b,g&&"assertive"===c?g.text(b):f&&f.text(b)}function d(a){a=a||"polite";var c=b("<div>",{id:"wp-a11y-speak-"+a,"aria-live":a,"aria-relevant":"additions text","aria-atomic":"true","class":"screen-reader-text wp-a11y-speak-region"});return b(document.body).append(c),c}function e(){b(".wp-a11y-speak-region").text("")}var f,g,h="";b(document).ready(function(){f=b("#wp-a11y-speak-polite"),g=b("#wp-a11y-speak-assertive"),f.length||(f=d("polite")),g.length||(g=d("assertive"))}),a.a11y=a.a11y||{},a.a11y.speak=c}(window.wp,window.jQuery);

View File

@ -13,7 +13,7 @@
*
* @global string $wp_version
*/
$wp_version = '5.3-alpha-46166';
$wp_version = '5.3-alpha-46167';
/**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.