improve a11y of video dialog
This commit is contained in:
		
							parent
							
								
									5a11eeea31
								
							
						
					
					
						commit
						aa888500ec
					
				
					 3 changed files with 23 additions and 16 deletions
				
			
		|  | @ -98,7 +98,7 @@ | |||
|   const DEFAULT_MEDIA_WIDTH = 300 | ||||
|   const DEFAULT_MEDIA_HEIGHT = 200 | ||||
| 
 | ||||
|   import VideoDialog from './VideoDialog.html' | ||||
|   import { showVideoDialog } from '../_utils/showVideoDialog' | ||||
| 
 | ||||
|   export default { | ||||
|     helpers: { | ||||
|  | @ -111,20 +111,7 @@ | |||
|     }, | ||||
|     methods: { | ||||
|       async onClickPlayVideoButton(media, width, height) { | ||||
|         let dialog = document.createElement('dialog') | ||||
|         dialog.classList.add('video-dialog') | ||||
|         document.body.appendChild(dialog) | ||||
|         let videoDialog = new VideoDialog({ | ||||
|           target: dialog, | ||||
|           data: { | ||||
|             poster: media.preview_url, | ||||
|             src: media.url, | ||||
|             dialog: dialog, | ||||
|             width: width, | ||||
|             height: height | ||||
|           } | ||||
|         }) | ||||
|         videoDialog.showModal() | ||||
|         showVideoDialog(media.preview_url, media.url, width, height) | ||||
|       } | ||||
|     } | ||||
|   } | ||||
|  |  | |||
|  | @ -1,6 +1,6 @@ | |||
| <div class="video-dialog-wrapper"> | ||||
|   <div class="close-video-button-wrapper"> | ||||
|     <button class="close-video-button" aria-label="Close video" on:click="onCloseButtonClicked()"> | ||||
|     <button class="close-video-button" aria-label="Close dialog" on:click="onCloseButtonClicked()"> | ||||
|       <span aria-hidden="true">×</span> | ||||
|     </button> | ||||
|   </div> | ||||
|  | @ -18,6 +18,7 @@ | |||
|     transform: translate(0, -50%); | ||||
|     background: #000; | ||||
|     padding: 0; | ||||
|     border: 3px solid var(--main-border); | ||||
|   } | ||||
|   :global(.video-dialog-wrapper) { | ||||
|     display: flex; | ||||
|  |  | |||
							
								
								
									
										19
									
								
								routes/_utils/showVideoDialog.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								routes/_utils/showVideoDialog.js
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,19 @@ | |||
| import VideoDialog from '../_components/VideoDialog.html' | ||||
| 
 | ||||
| export function showVideoDialog(poster, src, width, height) { | ||||
|   let dialog = document.createElement('dialog') | ||||
|   dialog.classList.add('video-dialog') | ||||
|   dialog.setAttribute('aria-label', 'Video dialog') | ||||
|   document.body.appendChild(dialog) | ||||
|   let videoDialog = new VideoDialog({ | ||||
|     target: dialog, | ||||
|     data: { | ||||
|       poster: poster, | ||||
|       src: src, | ||||
|       dialog: dialog, | ||||
|       width: width, | ||||
|       height: height | ||||
|     } | ||||
|   }) | ||||
|   videoDialog.showModal() | ||||
| } | ||||
		Loading…
	
	Add table
		
		Reference in a new issue