HTML5验证错误:在此上下文中,元素源不允许作为音频的子元素

时间:2015-10-08 19:53:59

标签: html5 html5-audio w3c-validation

这是我的作业中的代码片段。我检查了w3样本http://www.w3schools.com/html/html5_audio.asp并且格式正确。我是因为这些错误而疯了还是我错过了什么?

我相信HTML5 source元素并不像编写类型的方式,但我还能怎么做呢?如果你们看到我遗失的任何东西,请告诉我。

<li>.ogg(HTML5 <code>audio</code> tag)
            <ul>
                <li style="list-style-type:none;">

                    <audio controls>
    `                   <source src="/audio1/horse.ogg" type="audio/ogg">
                        <!-- IE Support -->
                        <source src="http://itwp.macomb.edu/wannerj/itwp1000/sounds/horse.mp3" type="audio/mpeg">
                        Your browser does not support the audio element.
                    </audio>
                </li>
            </ul>
        </li>

1 个答案:

答案 0 :(得分:3)

W3C HTML Checker的维护者。问题是您的HTML中有一个迷路`(反引号)字符,位于<audio controls>开始标记之后和<source src="/audio1/horse.ogg" type="audio/ogg">开始标记之前的行。

删除`个字符,错误将消失。

解释

验证者在这种情况下显示错误消息的原因是当它看到`字符时,它将其解释为文本内容(后备内容),以便向不支持该用户的浏览器中的用户显示audio元素;也就是说,与问题代码段中的“Your browser does not support the audio element”文字相同。

但是如果audio元素具有此类文本内容,则HTML规范中的规则规定不允许任何元素遵循该文本内容。因此,当检查器在这种情况下看到source元素时,它会发出一条错误消息,指出不允许使用source元素。

对不起,检查员没有在此提供更好的错误消息,以帮助您查明问题;例如,如果它说的话会更好:

  

此处不允许使用source元素,因为此audio元素   已经有文字内容(`);删除文本内容或移动它   遵循source元素。

但是当前检查器代码的设计使得它很难产生更有用的详细错误消息。