The html5 spec states that

Custom data attributes <http://dev.w3.org/html5/spec/elements.html#custom-data-attribute> are intended to store custom data private to the page or application, for which there are no more appropriate attributes or elements.

These attributes are not intended for use by software that is independent of the site that uses the attributes.

and further

It would be inappropriate, however, for the user to use _generic software not associated with_ that music site to search for tracks of a certain length by looking at this data.

This is because these attributes are intended for use by the site's own scripts, and are not a generic extension mechanism for publicly-usable metadata.


As I interpret these words, data- attributes are intended to be delivered by a server for use by the javascript code that server delivers with the page.

The exhibit attributes are not associated with any server, and are not associated with any particular data items being delivered by any server. Rather, they are part of "generic software not associated with" the server (see quote above) and handle _presentation_ of the content on the page.

So, while it might be technically valid to use data- prefixes, it doesn't seem to fit the intention.


On 7/18/2011 8:53 PM, Tab Atkins Jr. wrote:
On Mon, Jul 18, 2011 at 7:33 AM, David Karger<[email protected]>  wrote:
Yes, we could,  but it doesn't address the two objections I raised to data-
prefix:
1.  it isn't actually a data attribute, so prefixing with data seems odd
(appearance; minor)
You seem to have mentally associated the data-* attributes with
Microdata.  There is no connection between them.  In fact, it's
impossible for Microdata to use the data-* attributes at all.

data-* attributes are for private script data that is, for whatever
reason, more convenient to attach directly to a DOM node than to hold
in a JS structure.  Wanting the data's link to DOM nodes to survive
serialization is a good reason.


2.  there's no way to guarantee someone else won't use the same data-exhibit
prefix, causing incompatibilities (functionality; major)
In practice, the risk of prefix collisions has turned out to be
minimal in many real-world collections, such as jQuery plugins.  We
expect the same to apply here.  For maximum robustness, simply write
your library with the ability to accept a different prefix, so that if
a collision does occur the author can work around it.

~TJ

Reply via email to