Да, есть определенное поведение; HTML5 пытается обеспечить определенное поведение для любого случая, в котором он может иметь значение для браузеров, чтобы уменьшить несовместимость, даже при работе с недействительными документами.
Из моего чтения спецификации похоже, что недопустимо отсутствие атрибута src
или source
элемента:
Модель содержимого:
Если
элемент имеет атрибут src:
прозрачный, но без медиа-элемента
потомки.
Если элемент не
иметь атрибут src: один или несколько
исходные элементы, то прозрачные,
но без медиа-элемента
потомки.
Мне кажется, это указывает на то, что он должен иметь либо атрибут src
, либо дочерний элемент source
. Но и Validator.nu , и W3C Validator , похоже, считают, что это действительный документ:
<!DOCTYPE html>
<title>Video test</title>
<video></video>
Независимо от того, допустимо ли это, поведение определяется в алгоритме выбора ресурса следующим образом:
⌛ В противном случае медиа-элемент имеет
ни атрибут src, ни источник
дочерний элемент: установите для networkState значение
NETWORK_EMPTY и прервать эти шаги;
синхронная секция заканчивается.
Это подразумевает состояние готовности HAVE_NOTHING
HAVE_NOTHING
(числовое значение 0)
Нет информации о СМИ
ресурс доступен. Нет данных для
текущая позиция воспроизведения
имеется в наличии. Медиа-элементы, чьи
атрибут networkState
NETWORK_EMPTY
всегда в
HAVE_NOTHING
Штат.
В этом состоянии видео представлено рамкой плаката или ничем:
Когда видеоданные недоступны (
атрибут элемента readyState
либо HAVE_NOTHING
, либо
HAVE_METADATA
но видеоданных нет
пока что получено вообще) видео
элемент представляет собой либо плакат
кадр или ничего.
Когда он ничем не представлен, это означает, что он выглядит как обычное поле; как div
, который может быть стилизован, но не имеет собственного собственного отображения, хотя это будут ширина и высота, определенные его атрибутами width
и height
. Например :
<!DOCTYPE html>
<video width=100 height=100
style="border-width: 1px; border-color:black; border-style: solid;
background: green">
foobar
</video>
Обратите внимание, что он не отображает свое содержимое в браузерах, которые поддерживают тег video
. Содержимое внутри тега video
, кроме элементов source
, предназначено для использования в качестве запасного содержимого, отображаемого только в старых браузерах, которые не поддерживают элемент video
:
Контент может предоставляться внутри
видео элемент. Пользовательские агенты не должны
показать этот контент пользователю; это
предназначен для старых веб-браузеров, которые
не поддерживает видео, так что наследство
видео плагины можно попробовать или показать
текст для пользователей этих старше
браузеры, информирующие их о том, как
получить доступ к видео.