How does AngularJS get away with using custom HTML5 element tags and
attributes?
Most browsers seem to allow you to create any element tag you like, and
add any attribute name you like to elements. For example:
<!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>
The above displays fine. It looks like undefined elements behave pretty
much like spans. It also looks like AngularJS takes advantage of custom
tags & attributes quite a lot - it pretty much depends on it.
But, as far as I understood, doing that sort of thing was a no-no, except
in the case of custom html5 attributes with the "data-" prefix.
So, my question is: Is it no longer taboo to make up your own custom
element tags and/or attribute names? Or put another way, does AngularJS
rely on non-standard quirks that are not really part of the HTML5 spec,
but just happen to work anyway? Did somebody at google discover a
long-lost secret chapter of the html5 spec? Or am I totally
misunderstanding something?
No comments:
Post a Comment