2016-05-22 32 views
1

当我尝试validate具有自定义元素的HTML文件时,它会得到错误。HTML验证器失败,自定义html元素

任何人都可以解释为什么吗? 下面是一个例子:

<!DOCTYPE html> 
 
<html> 
 
\t <head> 
 
\t \t <title>Some app</title> 
 
\t </head> 
 
\t <body> 
 
\t \t <div data-wt="hmm"> 
 
\t \t \t <hello-world>Yes!</hello-world> 
 
\t \t </div> 
 
\t </body> 
 
</html>

然后它说,你好世界的元素无效。 但是自定义属性是有效的。

+0

自定义元素规范在草稿中,因此无法期望验证程序验证正在更改并且不适用于大多数浏览器的内容。 – Rob

回答

1

虽然你可以发明新的属性(通过使用data-...),你不能只发明新的元素 - 这将使HTML无效。

您可以注册新元素,如described here

var XFoo = document.registerElement('hello-world', { 
    prototype: Object.create(HTMLElement.prototype) 
}); 

但是,由于使用JavaScript,验证器仍然不能通过。

+0

是否需要注册自定义元素?我没有看到任何理由为什么我应该。 – Assassinbeast

+0

没关系,我刚刚发现它需要这样做。 https://www.smashingmagazine.com/2014/03/introduction-to-custom-elements/#what-about-accessibility – Assassinbeast