- From: Leif Halvard Silli <xn--mlform-iua@xn--mlform-iua.no>
- Date: Wed, 16 Oct 2013 11:23:26 +0200
- To: "Michael[tm] Smith" <mike@w3.org>
- Cc: Steve Faulkner <faulkner.steve@gmail.com>, Silvia Pfeiffer <silviapfeiffer1@gmail.com>, public-html <public-html@w3.org>, Sam Ruby <rubys@intertwingly.net>
Michael[tm] Smith, Wed, 16 Oct 2013 17:16:25 +0900: > Well, after going back and actually reading the spec, I see I pretty much > was wrong about what the spec says. The spec says this: > > "JavaScript libraries may use the custom data attributes, as they are > considered to be part of the page on which they are used. The spec contradicts itself. First: “private to the page or application”.[1] Thus, not libraries: “These attributes are not intended for use by software that is independent of the site that uses the attributes”.[1] > For example, in the case of the Google Plus button markup, I see from > reading their documentation[*] that there are a discrete set of values > ("none", "bubble", and "inline") that the data-annotation attribute is > expected to have, and a specific datatype (integer) that the data-width > attribute is expected to be. > > [*] https://developers.google.com/+/web/+1button/#plusone-tag-attributes The specification of data-* talks of “custom data private to the page or application”.[1] I guess G+ can be seen as an application? It is *not*, quote: [1] ”generic software” (unlike e.g. JQuery.) Does G+ fall under the category of, quote [1] “software that is independent of the site that uses the attributes” ? In the end, it becomes a tad difficult to discern between private and not-private use. The spec ought to give a broader definition of data-* so that one could spend less time on the question of whether it the usage i private or not. > What I mean is, per the HTML spec, there are no invalid values for data-* > attributes, any more than there are invalid values for the class attribute. The definition of 'punch a whole in the spec'? > I'd argue that in order to do the right thing for authors, we should keep > it that way, and not have libraries and services like Google Plus relying > on content to use data-* values with particular datatypes. Then I think that the definition [1] of data-* should be updated. Currently, (and ignoring the contradiction that I pointed out above), its definition *prohibits* data-* from being used in 'generic software', such as libraries. So, in theory, the validator could, currently, do a negative validation - it could check that it is *not* used for generic software … For instance, when it comes to the class attribute, then there is no prohibition that generic software should not rely on particular classes …?! And I really beliwve that data-* was introduced as solution to the problem of <div customFoo="bar"> which up until data-* had to, unconveniently, be solved via class (if validity was important to you): <div class="foo=bar"> (For instance, Peter-Paul Koch, in his JavaScript book - issued before data-* was introduced, includes a discussion of whether to use @class or, the much simpler solution, a custom attribute. (As I remember, his example represented a data/info - it was not a custom class). [1] http://www.w3.org/TR/html5/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes [*] Btw the spec speak of 'they - the libraries' or 'they - the custom attributes'?) -- leif halvard silli
Received on Wednesday, 16 October 2013 09:23:59 UTC