|
1 /******/ // The require scope |
|
2 /******/ var __webpack_require__ = {}; |
|
3 /******/ |
|
4 /************************************************************************/ |
|
5 /******/ /* webpack/runtime/define property getters */ |
|
6 /******/ (() => { |
|
7 /******/ // define getter functions for harmony exports |
|
8 /******/ __webpack_require__.d = (exports, definition) => { |
|
9 /******/ for(var key in definition) { |
|
10 /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { |
|
11 /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); |
|
12 /******/ } |
|
13 /******/ } |
|
14 /******/ }; |
|
15 /******/ })(); |
|
16 /******/ |
|
17 /******/ /* webpack/runtime/hasOwnProperty shorthand */ |
|
18 /******/ (() => { |
|
19 /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) |
|
20 /******/ })(); |
|
21 /******/ |
|
22 /************************************************************************/ |
|
23 var __webpack_exports__ = {}; |
|
24 |
|
25 // EXPORTS |
|
26 __webpack_require__.d(__webpack_exports__, { |
|
27 m: () => (/* binding */ setup), |
|
28 L: () => (/* reexport */ speak) |
|
29 }); |
|
30 |
|
31 ;// ./node_modules/@wordpress/a11y/build-module/shared/clear.js |
|
32 /** |
|
33 * Clears the a11y-speak-region elements and hides the explanatory text. |
|
34 */ |
|
35 function clear() { |
|
36 const regions = document.getElementsByClassName('a11y-speak-region'); |
|
37 const introText = document.getElementById('a11y-speak-intro-text'); |
|
38 for (let i = 0; i < regions.length; i++) { |
|
39 regions[i].textContent = ''; |
|
40 } |
|
41 |
|
42 // Make sure the explanatory text is hidden from assistive technologies. |
|
43 if (introText) { |
|
44 introText.setAttribute('hidden', 'hidden'); |
|
45 } |
|
46 } |
|
47 |
|
48 ;// ./node_modules/@wordpress/a11y/build-module/shared/filter-message.js |
|
49 let previousMessage = ''; |
|
50 |
|
51 /** |
|
52 * Filter the message to be announced to the screenreader. |
|
53 * |
|
54 * @param {string} message The message to be announced. |
|
55 * |
|
56 * @return {string} The filtered message. |
|
57 */ |
|
58 function filterMessage(message) { |
|
59 /* |
|
60 * Strip HTML tags (if any) from the message string. Ideally, messages should |
|
61 * be simple strings, carefully crafted for specific use with A11ySpeak. |
|
62 * When re-using already existing strings this will ensure simple HTML to be |
|
63 * stripped out and replaced with a space. Browsers will collapse multiple |
|
64 * spaces natively. |
|
65 */ |
|
66 message = message.replace(/<[^<>]+>/g, ' '); |
|
67 |
|
68 /* |
|
69 * Safari + VoiceOver don't announce repeated, identical strings. We use |
|
70 * a `no-break space` to force them to think identical strings are different. |
|
71 */ |
|
72 if (previousMessage === message) { |
|
73 message += '\u00A0'; |
|
74 } |
|
75 previousMessage = message; |
|
76 return message; |
|
77 } |
|
78 |
|
79 ;// ./node_modules/@wordpress/a11y/build-module/shared/index.js |
|
80 /** |
|
81 * Internal dependencies |
|
82 */ |
|
83 |
|
84 |
|
85 |
|
86 /** |
|
87 * Allows you to easily announce dynamic interface updates to screen readers using ARIA live regions. |
|
88 * This module is inspired by the `speak` function in `wp-a11y.js`. |
|
89 * |
|
90 * @param {string} message The message to be announced by assistive technologies. |
|
91 * @param {'polite'|'assertive'} [ariaLive] The politeness level for aria-live; default: 'polite'. |
|
92 * |
|
93 * @example |
|
94 * ```js |
|
95 * import { speak } from '@wordpress/a11y'; |
|
96 * |
|
97 * // For polite messages that shouldn't interrupt what screen readers are currently announcing. |
|
98 * speak( 'The message you want to send to the ARIA live region' ); |
|
99 * |
|
100 * // For assertive messages that should interrupt what screen readers are currently announcing. |
|
101 * speak( 'The message you want to send to the ARIA live region', 'assertive' ); |
|
102 * ``` |
|
103 */ |
|
104 function speak(message, ariaLive) { |
|
105 /* |
|
106 * Clear previous messages to allow repeated strings being read out and hide |
|
107 * the explanatory text from assistive technologies. |
|
108 */ |
|
109 clear(); |
|
110 message = filterMessage(message); |
|
111 const introText = document.getElementById('a11y-speak-intro-text'); |
|
112 const containerAssertive = document.getElementById('a11y-speak-assertive'); |
|
113 const containerPolite = document.getElementById('a11y-speak-polite'); |
|
114 if (containerAssertive && ariaLive === 'assertive') { |
|
115 containerAssertive.textContent = message; |
|
116 } else if (containerPolite) { |
|
117 containerPolite.textContent = message; |
|
118 } |
|
119 |
|
120 /* |
|
121 * Make the explanatory text available to assistive technologies by removing |
|
122 * the 'hidden' HTML attribute. |
|
123 */ |
|
124 if (introText) { |
|
125 introText.removeAttribute('hidden'); |
|
126 } |
|
127 } |
|
128 |
|
129 ;// ./node_modules/@wordpress/a11y/build-module/module/index.js |
|
130 /** |
|
131 * Internal dependencies |
|
132 */ |
|
133 |
|
134 |
|
135 /** |
|
136 * This no-op function is exported to provide compatibility with the `wp-a11y` Script. |
|
137 * |
|
138 * Filters should inject the relevant HTML on page load instead of requiring setup. |
|
139 */ |
|
140 const setup = () => {}; |
|
141 |
|
142 var __webpack_exports__setup = __webpack_exports__.m; |
|
143 var __webpack_exports__speak = __webpack_exports__.L; |
|
144 export { __webpack_exports__setup as setup, __webpack_exports__speak as speak }; |