Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

FaceBook Markup Language e validazione W3C

Link copiato negli appunti

Il FaceBook Markup Language (FBML) è un linguaggio di marcatura proposto da Facebook per estendere le funzionalità  del social network stesso. Nella sua forma più semplice, si tratta di semplici snippet di codice che, inserite nella marcatura della pagina, permettono di aggiungere widget e gadget di Facebook ai nostri documenti Web.

Quello che segue è un semplice snippet che permette di aggiungere un bottone "Like" alle nostre
pagine:

<fb:like href="http://www.sito.com/"></fb:like>

Purtroppo FBML non ci consente di superare la validazione del W3C se inserito direttamente nella marcatura.

A livello teorico questo problema dovrebbe presentarsi solo con HTML e non con XHTML: infatti HTML non è estendibile, e quindi la sua DTD è immutabile. Al contrario XHTML, qualora fosse servito come XHTML 1.1 e con una DTD "custom", potrebbe permetterci di usare FBML senza problemi.

Dico potrebbe, perché nel caso di XHTML 1.1 si deve:

  1. servire il documento come application/xhtml+xml;
  2. specificare il namespace di FBML nell'elemento root (HTML);
  3. creare una DTD custom;

Nella mia esperienza con XML e XHTML ho purtroppo constatato che nessuno di questi punti è facilmente
risolvibile (specie i punti 1 e 3), a meno di essere disposti a dedicare parecchie ore del nostro tempo allo studio della validazione, delle DTD, del parsing XML, dei namespace e delle caratteristiche peculiari di XHTML 1.1, tutte cose che, nel nostro lavoro quotidiano fatto di scadenze precise e implacabili, restano più a livello teorico che non pratico.

Esiste dunque una soluzione? Si, ma non è indolore: consiste nel creare gli snippet FBML in JavaScript e inserirli nel DOM come markup. Per esempio, ecco come si potrebbe svolgere questo compito tramite jQuery:

var $fbLike = '<fb:like href="http://www.sito.com/"></fb:like>';
$($fbLike).appendTo('body');

Ma a questo punto sorge un problema di accessibilità : come fare se JavaScript non è supportato o disabilitato?
Occorre usare il seguente sistema di compatibilità  a ritroso:

<noscript>
 <p><a href="http://www.facebook.com/plugins/like.php?href=http%253A%252F%252Fwww.sito.com">Like</a></p>
</noscript>

In questo caso abbiamo utilizzato un semplice link testuale all'interno di un elemento noscript.

Questo ci permette di supplire alle esigenze di chi ha JavaScript disabilitato o non supportato.

In definitiva, almeno fino a quando il validatore del W3C e il W3C in generale non cominceranno a indicare agli sviluppatori dei modi semplici per poter estendere la propria marcatura al fine di includere casi particolari come questo, queste soluzioni "quick-and-dirty" resteranno sempre quelle più usate dagli sviluppatori stessi. Peccato.

Ti consigliamo anche