私のサイトにはFacebookの「いいね」ボタンがあり、そのためxmlns:fb
属性の<html>
鬼ごっこ:
<!DOCTYPE html>
<html lang="en" xmlns:fb="http://www.facebook.com/2008/fbml">
ただし、W3Cバリデーターを介してサイトを実行すると、次のエラーが発生します。
行2、列61:属性xmlns:fbはここでは許可されていません。
行2、列61:ローカル名がxmlns:fbの属性は、XML 1.0としてシリアル化できません。
行222、列72:属性fb:like:layoutはXML 1.0としてシリアル化できません。
行222、列72:属性fb:like:layoutは、この時点では要素aでは許可されていません。
xmlns:fb
属性はfb
をドキュメントの名前空間に追加するため、<fb:
要素は有効です。そうではありませんか? HTML5の問題ですか?
Twitterボタンにも同様の検証エラーがありますが、それらも修正できますか?
行223、列53:属性tw:viaはXML 1.0としてシリアル化できません。
行223、列53:属性tw:viaは、この時点では要素aで許可されていません。
検証する方法はありませんxmlns:fb
HTML5。
ただし、新しいdata-...
-属性。Facebookによって追加され、有効なHTML5です ここ で説明されています。
これは、HTML5でこの拡張機能を使用する方法の例です(すべてのコードがbody要素にあると想定しています)。
<h3>Members</h3>
<embed data-fb="login-button" data-show-faces="true" />
<h3>Recent activity</h3>
<embed data-fb="activity" data-site="***" data-width="200" data-header="false"
data-border_color="#fff" data-recommendations="false" />
<div id="fb-root"></div>
<!-- the JavaScript API -->
<script src="http://connect.facebook.net/en_US/all.js"></script>
<!-- the extention script from this article -->
<script src="/scripts/fb.js"></script>
<script>
//<![CDATA[
FB.init({apiKey: '***', appId: '***', status: true, cookie: true, fbml5: true});
//]]>
</script>
これは同等のXHTMLコードです。
<h3>Members</h3>
<fb:login-button show-faces="true" />
<h3>Recent activity</h3>
<fb:activity site="***" width="200" header="false"
border_color="#fff" recommendations="false" />
<div id="fb-root"></div>
<!-- the JavaScript API -->
<script src="http://connect.facebook.net/en_US/all.js"></script>
<!-- the extention script from this article -->
<script src="/scripts/fb.js"></script>
<script>
//<![CDATA[
FB.init({apiKey: '***', appId: '***', status: true, cookie: true, fbml5: true});
//]]>
</script>
または、 プレフィックスマッピング を使用できます。
<!DOCTYPE html>
<html lang="en" prefix="fb: http://www.facebook.com/2008/fbml">