HTML5 Видео тег без источника? - PullRequest
5 голосов
/ 22 декабря 2009

Есть ли определенное поведение, если у меня есть тег HTML5 VIDEO, но я не включаю ни атрибут SRC, ни теги SOURCE внутри элемента? Будет ли это все еще действительным HTML, и если да, то что должен делать браузер (с поддержкой HTML5) - игнорировать элемент или отображать его содержимое?

Ответы [ 2 ]

8 голосов
/ 22 декабря 2009

Да, есть определенное поведение; 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:

Контент может предоставляться внутри видео элемент. Пользовательские агенты не должны показать этот контент пользователю; это предназначен для старых веб-браузеров, которые не поддерживает видео, так что наследство видео плагины можно попробовать или показать текст для пользователей этих старше браузеры, информирующие их о том, как получить доступ к видео.

0 голосов
/ 22 декабря 2009

Полагаю, контент будет отображаться, если видео не найдено, а в вашем случае оно даже не указано. Но я также предполагаю, что атрибут src является обязательным для тега, чтобы иметь смысл, как тег img. Таким образом, без него не будет действительного , но по умолчанию можно будет связать несуществующее видео ..

Важно помнить, что браузеры будут реализовывать вещи по-разному, независимо от спецификаций, поэтому вам просто нужно подождать и посмотреть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...