2016-05-22 89 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