- From: Benjamin Hawkes-Lewis <bhawkeslewis@googlemail.com>
- Date: Sat, 1 Jan 2011 15:57:00 +0000
- To: Julian Reschke <julian.reschke@gmx.de>
- Cc: Norman Walsh <ndw@nwalsh.com>, public-html-xml@w3.org
On Sat, Jan 1, 2011 at 2:40 PM, Julian Reschke <julian.reschke@gmx.de> wrote: >> Sprinkingly some namespaces around does not magically produce a >> document that software can turn into a human-friendly hypermedia >> interface. > It may or may not. Please detail when it would work and why? That is, how might it happen without the web's client software being updated to build interfaces on top of the semantics expressed by those namespaced vocabularies? My argument is not: namespaces make it impossible to build uniform hypermedia interfaces. My argument is: using arbitrary vocabularies to express renderable content, rather than merely annotate it with metadata, will break those interfaces, and namespaces do *nothing* to help with this situation. How could they? > How is this in any way different from using Microdata, RDFa, script elements > or data-* attributes, though? After all, it's just a different way of > embedding the information. It's different because in conforming HTML, the renderable content is marked up with generic document semantics on top of which the web's client software has been programmed to build hypermedia interfaces. This means any human being with access to such software can use your service. <button property="foo:bar" type="submit">Do something</p> is a button and will be represented as a button by the web's client software. Some gobbledygook is roundtripped as RDFa and some service somewhere might use it, but your user agent not representing this metadata this does not break the uniform, human-friendly hypermedia interface. On the other hand: <foo:whizzbangbutton foo:quux="Do something"></foo> is /just/ gobbledygook. This is bad HTML because the button has not been marked up with an appropriate element, so it cannot be recognized in the uniform interface. And you can't say people aren't already doing this. Witness Facebook's Hypertext Made Up Language, XFBML: <fb:login-button>Login with Facebook</fb:login-button> http://developers.facebook.com/docs/guides/web?_fb_noscript=1 No amount of clapping your hands and believing in namespaces is going to make "fb:login-button" be anything other than broken. Providing features to use arbitrary vocabularies for metadata only (RDFa, data-, etc.) steers service providers towards expressing their service in terms of /at least/ HTML semantics, which means it can participate in the RESTful hypermedia interface of the web. HTML semantics provide a lowest common denominator of meaning that offers a baseline of interoperability and accessibility. W3C should be encouraging providers like Facebook to progressively enhance from markup like: <a href="whatever">Login with Facebook</a> Now you could argue that in the absence of elements in arbitrary vocabularies people will just fake it with: <div property="foo:whizzbangbutton" content="Do something" data-foo-action="do-something"></div> But RDFa and friends don't provide any new abilities to break the web in this way, as it's trivial to do with the "class" attribute (witness divitis frameworks like Dojo). The spec rightly takes a dim view of such nonsense: "Authors are strongly encouraged to view the div element as an element of last resort, for when no other element is suitable. Use of the div element instead of more appropriate elements leads to poor accessibility for readers and poor maintainability for authors." http://dev.w3.org/html5/spec/grouping-content.html#the-div-element -- Benjamin Hawkes-Lewis
Received on Saturday, 1 January 2011 15:57:34 UTC