【问题标题】:HTML5 Video Validation ErrorHTML5 视频验证错误
【发布时间】:2011-09-01 17:09:23
【问题描述】:

我有以下标记,使用VideoJS 播放器实现(如果需要,我也可以包含 js):

<video id="example_video_1" class="video-js" width="736" height="352" controls="controls" autoplay="autoplay" loop="loop"> 
    <source src="a/v/jt_homevid.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'>                         
    <source src="a/v/jt_homevid.ogg" type='video/ogg; codecs="theora, vorbis"'>         
    <object id="flash_fallback_1" class="vjs-flash-fallback" width="736" height="352" type="application/x-shockwave-flash"  data="http://releases.flowplayer.org/swf/flowplayer-3.2.1.swf"> 
        <param name="movie" value="http://releases.flowplayer.org/swf/flowplayer-3.2.1.swf" /> 
        <param name="allowfullscreen" value="true" /> 
        <param name="flashvars" value='config={"playlist":["<? echo $currurl; ?>/a/v/slide-1-joshtaerk-cdcover.jpg", {"url": "<? echo $currurl; ?>/a/v/jt_homevid.mp4","autoPlay":false,"autoBuffering":true}]}' />         
        <img src="a/v/slide-1-joshtaerk-cdcover.jpg" width="736" height="352" alt="Poster Image" title="No video playback capabilities." /> 
    </object> 
</video> 

这目前未能通过 HTML 验证,并显示以下错误消息:

第 152 行,第 82 列:在此上下文中,元素源不允许作为元素视频的子元素。 (抑制来自该子树的更多错误。)...
可以使用元素源的上下文:作为媒体元素的子元素,在任何流内容或轨道元素之前。元素视频的内容模型:如果元素具有 src 属性:零个或多个轨道元素,则透明,但具有没有媒体元素后代。如果元素没有 src 属性:零个或多个源元素,然后是零个或多个轨道元素,然后是透明的,但没有媒体元素后代。

我明白,在 W3C HTML5 验证器的开发过程中,我现在可能不应该信任它,但如果我编码错误,我想确定在哪里以及如何在未来防止它。另外,我想确保我正确解释了错误消息,我认为这应该会发生。

我看不出我是如何偏离该元素的允许上下文的。它是媒体元素的子元素(特别是 &lt;video&gt; 标签),它在我相信的任何“流内容”之前,因为我找不到在 W3C 上列为流内容的 &lt;source&gt; 元素(this link) ,而我目前没有任何 &lt;track&gt; 元素。

我不确定的一件事是&lt;video&gt; 元素的内容模型中“然后透明”的定义。据我了解,如果媒体元素中的元素在媒体元素的父元素中也有效(来自此线程:@ 987654323@),那么这可能是我走错的地方,因为我有@ &lt;div&gt; 父元素中的 987654329@ 元素?

谁能确认这是我的错误,或者我是否应该忽略验证消息?如果这是一个错误,我还应该如何布置我的内容?通过直接设置视频元素的样式?

提前致谢。

【问题讨论】:

    标签: javascript html video


    【解决方案1】:

    您的理解是正确的,这看起来确实是一个验证器错误。

    Validator.nu,它基于与 W3C 验证器相同的验证器引擎,但可能是更高版本,它通过了标记而没有任何错误。

    【讨论】:

      【解决方案2】:

      就我而言,我有这个错误

      使用此 html 代码:

      <video class="tab" controls>
          Your browser does not support the &lt;video&gt; tag.
          <source src="img/holsbeek-HD720p.mov" type="video/mp4" />
      </video>
      

      但如果顺序正确则不是:

      <video class="tab" controls>
          <source src="img/holsbeek-HD720p.mov" type="video/mp4" />
          Your browser does not support the &lt;video&gt; tag.
      </video>
      

      【讨论】:

        【解决方案3】:

        此错误现已在 HTML5 验证器中修复。

        【讨论】:

        • 显然不是。我在 2018 年遇到了同样的问题。
        • 我在 2020 年使用它,但仍然出现同样的问题。但是一切正常:)
        猜你喜欢
        • 2012-05-19
        • 1970-01-01
        • 2011-07-31
        • 2018-12-10
        • 1970-01-01
        • 1970-01-01
        • 2013-01-20
        • 1970-01-01
        • 2015-02-16
        相关资源
        最近更新 更多