Search code examples
facebookhtmlw3cfacebook-opengraphrdfa

HTML5 and RDFa support


I'm about to introduce the Open Graph protocol to an existing HTML5 Web application and I'd like to include the necessary RDFa data without introducing any unnecessary crud.

I've looked at the HTML+RDFa 1.1 draft and comparing it with Facebook's Open Graph protocol documentation, I just need to set the lang attribute on the html element and it's HTML5 ready:

<html lang="en">
<head xmlns:og="http://opengraphprotocol.org/schema/">
    <title>The Rock (1996)</title>
    <meta property="og:title" content="The Rock"/>
    <meta property="og:type" content="movie"/>
    ...

Initially, I grew confused about RDFa support in HTML5 with so many sources claiming it cannot be done in a valid manner, until I finally landed on the draft. I'm no expert on the matters at hand, so I'd appreciate if someone could take a look at this and also comment about the support the draft enjoys in today's browsers.


Solution

  • The W3C validator moans about every

    <meta property="whatever" content...
    

    demanding that the property shall be

    <meta name="whatever ...
    

    instead, right? If facebook is, what you mostly care about, I am happy to tell, it tolerates the latter form, so just go for it:

    <meta name="og:title" content="My nice picture"/>
    <meta name="og:type" content="article"/>
    <meta name="og:url" content="http://foobar123.com/test/simple.php"/>
    

    When testing with FB: Beware, that FB caches page parsings (globally, facebook-side, hard reload won't help) so make sure to add a 'unique' (but pointless) path-info or GET Parameter to the url everytime you change something to test facebook-posting of it:

    mysite.com/test.php/bogusParam1
    mysite.com/test.php/bogusParam2
    mysite.com/test.php/bogusParam3
    ...
    mysite.com/test.php?foo=hello
    mysite.com/test.php?foo=howdy
    mysite.com/test.php?foo=aloha