Re: Use cases

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