A user account is required in order to edit this wiki, but we've had to disable public user registrations due to spam.

To request an account, ask an autoconfirmed user on IRC (such as one of these permanent autoconfirmed members) or send an e-mail to admin@wiki.whatwg.org with your desired username and an explanation of the first edit you'd like to make. (Do not use this e-mail address for any other inquiries, as they will be ignored or politely declined.)


From WHATWG Wiki
Jump to: navigation, search

This document is obsolete.

For the current specification, see: HTML Standard: Embedding custom non-visible data with the data-* attributes

Here are some ideas for how to include custom data in HTML documents.


<span data-thing="50" data-doohickey="4,5,1,2">bla bla</span>

if (span.dataSet.thing > 10) { ... }
span.dataSet.doohickey = '1,2,3,4';


<span custom:my-thing="50" custom:my-other-thing="4,5,1,2">bla bla</span>
(rejected because colons have special meaning in XML and so this would lead to
the HTML and XML DOM representations differing, which violates our intent to
keep the DOM accessors serialisation-agnostic.)
<span><param name=my-thing value="50"><param name=my-other-thing value="4,5,1,2">bla bla</span>
(rejected because it's so verbose that people would likely just do what
they do now, violating the spec, instead of using it.)
<span custom-my-thing="50" custom-my-other-thing="4,5,1,2">bla bla</span>
(rejected because "custom-" is not as good a prefix as "data-".)

If "custom" was site-specific, then wouldn't, e.g. "markbaker-my-thing" be better than a global "data-my-thing"? Otherwise there's a pretty good chance of collisions. Much more author friendly than namespaces. "data-" suggests that a central registry/wiki would be required to avoid collision.

The whole feature is site-specific -- who are you going to collide with? In syndication environments, of course, you could provide per-site prefixes as a convention, e.g. data-markbaker-thing, but if you're syndicating Web apps you're much more likely to run into problems with JS globals first. --Hixie