2015年7月15日水曜日

さよならFlashコンテンツ

Adobe Flash playerの脆弱性が次々と見つかっているようだ。mixiのアカウントを持っていた頃、ゲームといえばFlashだった。2年程前に持っていたFaceBookアカウントでも同じだった。だからSafariにFlashのバグがあると噛み付いたりもした。
だが、ゲームを伴うSNSを止めてみるとFlashはパソコンの世界でも劇的に比重が下がっていることに気がついた。そこへ来ての相次ぐ脆弱性の発見である。そろそろFlashは終わりかなと思ってMacから削除してしまうことにした。

Flash Playerの削除方法自体はこのサイトにある通りで良い。
(補足:アンインストーラーをダウンロードしなくてもアプリケーション > ユーティリティにあるAdobe Flash player Install Managerを起動する方法でもFlash Playerを削除できる)

問題はXHTML1.0 StrictまたはXHTML1.1でホームページを記述していて、YouTubeの動画を埋め込んでいた場合である。
XHTML1.0 StrictまたはXHTML1.1では、YouTubeが埋め込み用コードとして提供する<iframe>要素が使えないため、<object>要素を使うのだが、ここに落とし穴がある。
<object>要素では、YouTube動画を埋め込む際type属性でtype="application/x-shockwave-flash"と記述するからだ。

Youtubeはとっくの昔にHTML5プレーヤーに置き換わっている。だからYouTube本家ページや埋め込み用コードを用いれば、Flash Playerを削除しても動画は再生できる。だが、XHTML1.0 StrictまたはXHTML1.1適合化のために<object>要素を使った場合、埋め込み動画は再生できなくなってしまう。

対策はXHTMLを使い続けるならばXHTML1.0 Transitionalに変更する、またはHTML5に移行することである。両者ともYouTubeが埋め込み用コードとして提供する<iframe>要素が許容されるからだ。ただし、適合させるには、以下のようにちょっとだけ修正が必要だ。

YouTubeが提供する埋め込みコード


XHTML1.0 Transitional向け埋め込みコード(allowfullscreenを取り除く)


HTML5向け埋め込みコード(frameborder="0"をstyle="border:0;"で置き換え)


参考:XHTML1.0 TransitionalまたはHTML5に適合させる方法の英語のネタ元

0 件のコメント :

コメントを投稿