14.3. 2013

HTML5, Facebook a nevalidní XMLNS

HTML5, Facebook a nevalidní XMLNS

Možná jste se s tím již setkali. Snažíte se zvalidovat své stránky pomocí W3C validátoru a i přes to, že jsou napsány v nové specifikaci HTML5, objeví se problém s vloženým jmenným prostorem XFBML . Ten je nejčastěji využíván pro Facebook komponenty.  Důvod je poměrně jednoduchý: použitý XFBML namespace je ve standardním HTML5 dokumentu nevalidní, protože jmenný prostor jednoduše nemůže být používán v klasických text/html dokumentech. Pokud patříte mezi ortodoxní validáře a snažíte se mít svoji stránku validní jednak pro vyhledávače nebo z dalších důvodů, jedno řešení si ukážeme později. Jedno řešení se nabízí hned - a to neřešit jej. Validátor je skvělý nástroj, ovšem je to stále jen nástroj. Vyhledávače vědí, že tyto XFBML jmenné prostory slouží Facebook komponentám. Také vědí, že Facebook je důvěryhodný a že tyto komponenty takto používá spousta webových stránek. Proto by nebylo účelné penalizovat všechny tyto stránky, proto tuto chybu nebudou brát jako problém.

Jaké jsou tedy řešení?

1) Jedno elegantní řešení je použití tzv. metody prefix mapping. Použití by vypadalo následnovně:

<!DOCTYPE html> <html lang="en" prefix="fb: http://www.facebook.com/2008/fbml">

2) Druhou variantou je vynechání těchto jmenných prostorů v <html> tagu. Ve většině případů veškeré komponenty bez problémů fungují, ovšem tento způsob není vždy účelný. 3) Dalším řešením, pokud se to tak dá nazvat, je například rozšíření JavaScript API - pokud by někoho toto řešení zajímalo, je podrobně popsáno v tomto příspěvku.

Autor: Pavel Tlapák