|
49 | 49 | height: 100%;
|
50 | 50 | justify-content: center;
|
51 | 51 | left: 0;
|
52 |
| - opacity: 1; |
| 52 | + opacity: 0; |
53 | 53 | overflow: auto;
|
54 | 54 | position: fixed;
|
55 | 55 | top: 0;
|
|
195 | 195 | <div class="modal-container">
|
196 | 196 | <div class="modal-header">
|
197 | 197 | <h3>Configuration Settings</h3>
|
198 |
| - <button class="close-modal">×</button> |
| 198 | + <button aria-label="Close" class="close-modal">×</button> |
199 | 199 | </div>
|
200 | 200 |
|
201 | 201 | <div class="modal-content">
|
|
282 | 282 | const openModalButton = document.getElementById('open-settings');
|
283 | 283 | const modalWindow = document.getElementById('profiler-settings');
|
284 | 284 | const closeModalButton = document.getElementsByClassName('close-modal')[0];
|
285 |
| - const modalWrapper = document.getElementsByClassName('modal-wrap')[0] |
| 285 | + const modalWrapper = document.getElementsByClassName('modal-wrap')[0]; |
| 286 | + const closeModal = () => { |
| 287 | + modalWindow.classList.remove('visible'); |
| 288 | + setTimeout(() => openModalButton.focus(), 30); |
| 289 | + }; |
286 | 290 |
|
287 | 291 | openModalButton.addEventListener('click', function(event) {
|
288 | 292 | document.getElementById('settings-' + (localStorage.getItem('symfony/profiler/theme') || 'theme-auto')).checked = 'checked';
|
289 | 293 | document.getElementById('settings-' + (localStorage.getItem('symfony/profiler/width') || 'width-normal')).checked = 'checked';
|
290 | 294 |
|
291 | 295 | modalWindow.classList.toggle('visible');
|
| 296 | + setTimeout(() => closeModalButton.focus(), 30); |
292 | 297 | event.preventDefault();
|
293 | 298 | });
|
294 | 299 |
|
295 |
| - closeModalButton.addEventListener('click', function() { |
296 |
| - modalWindow.classList.remove('visible'); |
297 |
| - }); |
| 300 | + closeModalButton.addEventListener('click', closeModal); |
298 | 301 | modalWrapper.addEventListener('click', function(event) {
|
299 | 302 | if (event.target == event.currentTarget) {
|
300 |
| - modalWindow.classList.remove('visible'); |
| 303 | + closeModal(); |
| 304 | + } |
| 305 | + }); |
| 306 | + modalWrapper.addEventListener('keydown', function(event) { |
| 307 | + if (event.key === 'Esc' || event.key === 'Escape') { |
| 308 | + closeModal(); |
301 | 309 | }
|
302 | 310 | });
|
303 | 311 | })();
|
|
0 commit comments