ほとんどのブラウザーでは、好きな要素タグを作成し、好きな属性名を要素に追加できるようです。例えば:
<!DOCTYPE html>
<html>
<body>
<div my-attribute="has no data- prefix, but seems to behave like an attribute should">
<br/>
<hello-world style="display:block;background:#eee">Hello Everybody</hello-world>
<goodby-world style="background:#faa">Default display is inline</goodbye-world>
</div>
</body>
</html>
上記は正常に表示されます。未定義の要素はスパンのように振る舞うようです。また、AngularJS はカスタム タグと属性をかなり活用しているように見えます。
しかし、私が理解している限り、「data-」プレフィックスを持つカスタム html5 属性の場合を除いて、そのようなことを行うことはノーノーでした。
それで、私の質問は: 独自のカスタム要素タグや属性名を作成することはもはやタブーではありませんか? 別の言い方をすれば、AngularJS は、実際には HTML5 仕様の一部ではなく、たまたま機能する非標準の癖に依存しているのでしょうか? Google の誰かが、長い間失われていた html5 仕様の秘密の章を発見しましたか? それとも私は何かを完全に誤解していますか?