Анатомия React компонента
Моё видение того, как должен выглядеть React компонент
96
7 мин.
27
3 мин.
Стандарт SSV определяет требования к семантике, доступности и логике работы видео.
Используется строгий набор атрибутов:
autoplay и muted - необходимы для автовоспроизведения, особенно это важно в Safari, который блокирует любое автовоспроизведение со звуком;loop - обеспечивает зацикливание ролика;playsinline - критически важен для iOS, чтобы видео воспроизводилось на странице, а не в полноэкранном режиме плеера.Дополнительные атрибуты, такие как disablePictureInPicture и preload="auto", помогают точнее контролировать поведение и улучшить пользовательский опыт:
<video autoplay muted loop playsinline disablePictureInPicture preload="auto" poster="preview.jpg" aria-hidden="true" > <source src="bg.webm" type="video/webm"> <source src="bg.mp4" type="video/mp4"> <p> Ваш браузер не поддерживает видео. <a href="bg.mp4">Скачать видео</a> </p> </video>
Если видео это основной контент, то управление должно полностью отдаваться пользователю, здесь нужны атрибуты controls для отображения стандартного интерфейса плеера и preload="metadata", который экономит трафик, загружая только информацию о продолжительности и первом кадре, а звук можно включить только после явного действия пользователя (например, клика по кнопке воспроизведения):
<video controls preload="metadata" poster="preview.jpg" > <source src="content.webm" type="video/webm"> <source src="content.mp4" type="video/mp4"> </video>
Политика большинства браузеров запрещает автоматическое воспроизведение звука!
Не все форматы видео одинаково хорошо поддерживаются браузерами, нужно использовать комбинацию из WebM, современный формат с хорошим сжатием и MP4 как запасной вариант.
Формат MOV (QuickTime) стоит избегать из-за проблем с кодеками и воспроизведением вне экосистемы Apple.
Видео должно быть доступно для всех пользователей, включая тех, кто использует скринридеры или имеет нарушения слуха, для этого используются субтитры, aria-атрибуты и текст внутри <video> если браузер не поддерживает видео(что бывает крайне редко):
<track kind="captions" src="captions.vtt" srclang="ru" label="Субтитры" default >
Чтобы пользователь мог быстро и понятно заимодействовать с видео оно не должно много весить, не больше 5 МБ, при условии что сайт не является видеохостингом, также можно добавить постер с помощью атрибута poster="preview.jpg" и сделать видео адаптивным:
.bg-video { inline-size: 100%; block-size: 100%; object-fit: cover; /* Обрезает видео, сохраняя пропорции */ object-position: center; }
Safari имеет строгую политику автовоспроизведения, для фонового видео всегда используйте связку muted + playsinline, если вам нужно автовоспроизведение со звуком (что редко бывает оправдано), его можно запустить только программно, в ответ на действие пользователя (клик, прокрутку).
<video class="bg-video" autoplay muted loop playsinline poster="sunset-preview.jpg" aria-hidden="true" > <source src="header-bg.webm" type="video/webm"> <source src="header-bg.mp4" type="video/mp4"> </video>
<div class="tutorial"> <video controls preload="metadata" aria-label="Инструкция по сборке скейтборда" aria-describedby="video-description" > <source src="tutorial.webm" type="video/webm"> <source src="tutorial.mp4" type="video/mp4"> <track label="Субтитры" kind="captions" srclang="ru" src="tutorial-captions.vtt" default> <p> Ваш браузер не поддерживает элемент видео. <a href="tutorial.mp4">Скачать инструкцию</a>. </p> </video> <p class="sr-only" id="video-description"> Пятиминутный ролик, в котором наш мастер показывает, как собрать скейтборд из готовых компонентов: подвесок, колес и деки. </p> </div>
Похожие категории:
Моё видение того, как должен выглядеть React компонент
96
7 мин.
Стандарт SSF-U определяет требования к семантике, доступности и логике работы фуллскрина
31
2 мин.
Стандарт SSA определяет требования к семантике, доступности и логике работы аккордеона
43
2 мин.
Разбор критических ошибок веб-дизайна. Почему слайдеры, автоплей и тяжёлые страницы снижают конверсию и позиции в Google и Yandex
43
1 мин.
Стандарт SSP определяет требования к семантике, доступности и логике работы пагинации
49
1 мин.
Стандарт SSPS определяет требования к структуре и наименованию файлов и папок в проекте
161
2 мин.