twitter や facebook のいいね ! ボタンを埋め込みたい場合、それぞれから提供されるタグでそのまま Valid とされることは経験上ほぼありません。(特に Another HTML Lint)
WordPress 向けに permalink() 等を含んでいますが、適時変更することで別の CMS や素の HTML5 でも Valid とされるコーディングをご紹介します。(twitter, facebook, Google+)
<div id="fb-root"></div>
<script type="text/javascript" src="http://platform.twitter.com/widgets.js" charset="utf-8"></script>
<script type="text/javascript" src="http://wg.drive.ne.jp/rose/wp-content/themes/Evander/js/wg.fb.js"></script>
<div>
<ul>
<li class="tweet"><a class="twitter-share-button" href="http://twitter.com/share?count=horizontal">Tweet</a></li>
<li class="like"><div id="fb-like" class="fb-like"></div></li>
<li class="plus"><div id="g-plusone" class="g-plusone"></div></li>
</ul>
</div>
<script type="text/javascript">
var fb = document.getElementById('fb-like');
fb.setAttribute('data-href', '<?php the_permalink(); ?>');
fb.setAttribute('data-send', 'false');
fb.setAttribute('data-layout', 'button_count');
fb.setAttribute('data-show-faces', 'true');
</script>
<script type="text/javascript">
var gp = document.getElementById('g-plusone');
gp.setAttribute('data-size', 'medium');
gp.setAttribute('data-href', '<?php the_permalink(); ?>');
window.___gcfg = { lang: 'ja' };
(function() {
var po = document.createElement('script');
po.type = 'text/javascript';
po.async = true;
po.src = 'https://apis.google.com/js/plusone.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(po, s);
})();
</script>
HTML5 向けのカスタムデータ属性は、setAttribute() で追加してチェッカーを迂回していることになりますが、draft 段階の現在、今後ソースの変更を迫られる場合もかつて HTML と CSS の分離が進んだ様に、JavaScript で汎用化して分離しておくと一斉変更が容易かもしれません。
# それより早くサイトのリニューアルが迫られる方が現実的かな
- WordPress HTML5, CSS3 Valid (No. 1)
- WordPress HTML5, CSS3 Valid (No. 2)
- WordPress HTML5, CSS3 Valid (No. 3)








