XHTML 1.0 StrictでYoutubeの埋め込みタグをValidにする

自分のホームページにYoutubeを埋め込むとき、W3CのチェッカーでValidがでずに色々試行錯誤することになったので、忘れないためのメモ書きとしてここに残す。

そもそも、HTML 5にさえなってしまえばYoutubeの埋め込みコードである「iframe」が準拠となるためこんな厄介なことをする必要はないのだが、とりあえずXHTML 1.0 Strictで準拠させる方法を以下に解説する。

●結論から。

  • <p>
  • <object data="http://www.youtube.com/v/wXTcV0F4Dm0?rel=0" type="application/x-shockwave-flash" width="420" height="315">
  • <param name="movie" value="http://www.youtube.com/v/wXTcV0F4Dm0?rel=0" />
  • <param name="wmode" value="transparent" />
  • </object>
  • </p>

赤字の部分を適宜変更してください

こんな感じになります↓

●解説。

まず、Youtubeの動画をホームページに埋め込むタグの取得方法についてですが、これは他のサイトにいくらでも情報があるのでググってください。

2012年11月現在、埋め込みタグは2種類がYoutube側で用意されています。

一つ目は「iframe」タグを利用した以下のようなもの。

  • <iframe width="420" height="315" src="http://www.youtube.com/embed/wXTcV0F4Dm0"
     frameborder="0" allowfullscreen></iframe>

「iframe」タグ自体を非推奨タグとしないHTML 5などなら、これを埋め込みすれば問題ありません。(問題があるとすれば、frameborder属性の設定だけCSSのほうに持っていく必要くらい。)

ただし、XHTML 1.0 Strictを宣言しているこのakotaiのようなページでは、「iframe」タグ自体が非推奨であり、W3Cのチェッカーではinvalidだと一蹴されます。

そこで、もう一つの埋め込みタグを引っ張ってみます。Youtubeの埋め込みコードを取得する画面で「以前の埋め込みコードを利用する」にチェックをいれると、以下のようなコードに変わります。

  • <object width="420" height="315">
  • <param name="movie" value="http://www.youtube.com/v/wXTcV0F4Dm0?version=3&hl=ja_JP"></param>
  • <param name="allowFullScreen" value="true"></param>
  • <param name="allowscriptaccess" value="always"></param>
  • <embed src="http://www.youtube.com/v/wXTcV0F4Dm0?version=3&hl=ja_JP" type="application/x-shockwave-flash" width="420" height="315" allowscriptaccess="always" allowfullscreen="true"></embed>
  • </object>

で、このソースで埋め込みをしてみるのですが、今度は「embed」タグが非推奨。

そもそも「embed」タグっていうのは出来の悪いブラウザとして有名なInternet Explolerでしか認められていないとか。


というわけで、いろいろと試行錯誤した結果、「embed」タグをはずして「object」内にdata属性としてurlを記載。

ちなみに、このurlは「http://www.youtube.com/v/なんちゃら」という書き方をしないとうまく表示されないです。

しかも「param」タグは「br」なんかと一緒で、「</param>」という閉じ方はせずに、「<param なんちゃら />」という閉じ方をしないとinvalidです。

その他いろいろと「これはなくてもいいかなー」という設定をはずして、綺麗にしたのが当初のソースです。

●使い方まとめ。

というわけで、使い方をまとめると、

1.Youtubeで貼り付けをしたい動画を探す。

2.いちおう、埋め込みコードを取得してみる(縦・横の大きさを知るためと、個々の動画の乱数部分を取得するため)。

3.上記のソースの赤字部分をコピペ、縦・横の大きさと、個々の動画の乱数部分を置き換える。

4.アップロードしてチェックしてみる。以上。

最初のページへ | コラム一覧へ

▲ page top