検索エンジン最大手・グーグル社がモバイル向けに用意しているフル規格コンテンツ変換サーヴィス・グーグル・ワイヤレス・トランスコーダについて、その問題点と対策及び応用例を挙げておきます。
グーグル・ワイヤレス・トランスコーダ(Google Wireless Transcorder)とは、グーグル社が開発したモバイル向けのコンテンツ変換サーヴィスです。
具体的にはPC向けのフル規格のウェブコンテンツを携帯端末の閲覧に適するように変換するサーヴィスです。
携帯電話でグーグルを利用した場合、原則的にこのサーヴィスを通じてコンテンツを閲覧出来る様になっております。
ところで、今日ではモバイル向けのウェブコンテンツもPC向けフル規格ウェブコンテンツ同様、HTMLないしXHTMLで記述されております。
単純にマークアップだけでどちらかを判断する事は完全には出来ません。
初めからモバイル向けに調製しているコンテンツをわざわざ変換させるのは意味がありません。
殊、グーグル・ワイヤレス・トランスコーダは兎に角読めるようにする事に主眼が置かれているようで、デザインは二の次になっていると言う感があります。
つまり、折角モバイル向けに調製したスタイルが、トランスコーダで壊されてしまう恐れがあります。
一方、折角同じコンテンツをモバイル向けに最適化したヴァージョンを用意していると言うのに、わざわざトランスコーダを通じてフル規格版を見てもらうと言うのも何だかと言う気になる方もいるかも知れません。
但し、フル規格ではコンテンツの容量を余り気にする必要は無いため、モバイル版の最小限の情報では物足りないと言う方が、フルブラウザやグーグル・ワイヤレス・トランスコーダのような変換サーヴィスを通じてより濃い情報を得ようとする事は否定出来る事ではありません。
それでも、全く同じコンテンツを配信しているのであれば、わざわざフル規格版を見るなよと言う気になるのも分かります。
これらの問題を解決するためには、グーグル社が指定している以下の<link>要素をHTML文書の<head>要素内に仕込んでおきます。
<link rel="alternate" media="handheld" href="モバイル版へのURI" />
グーグル・ワイヤレス・トランスコーダでは読み込んだHTML文書にrel="alternate"属性とmedia="handheld"属性を含んだ<link>要素を見出すと、当該要素のhref属性値として記述されているURIへリダイレクトするようになっております。
これは、同一コンテンツのモバイル版へのリダイレクトや、モバイル非対応である事を知らせるページへのリダイレクトを行えるようにするためのものとの事です。
そこで、以下のような使い方が出来ます。
モバイル版を持つPC向けフル規格版HTML文書に上記の<link>要素を記述します。この場合、href属性値にはモバイル版へのURIを与えます。
但し、あくまでもグーグル・ワイヤレス・トランスコーダでの処理を忌避するためのものですので、その他の検索エンジンでフル規格版へのアクセスはあり得ます。
また、この方法でグーグル・ワイヤレス・トランスコーダを弾いた場合、コンテンツの内容をより詳しく知りたいと言う方を門前払いする事になり兼ねないと言う事も忘れないで下さい。
グーグル・ワイヤレス・トランスコーダはPC向けのフル規格サイトを取り敢えず携帯電話でも何とか閲覧出来るように変換してくれます。
まぁ、実際に通してみると、モバイル向けに最適化されていないコンテンツを無理矢理変換するので、可読性や操作性はモバイル向けに手で最適化したものに較べると大きく見劣りがするのですが、いざと言うときには役に立ちそうなものです。
特に、他者が公開しているフル規格のウェブコンテンツを参考資料として提示したい場合、単純にそれにリンクして閲覧が出来るかと言う問題があり、そう言った場合にグーグル・ワイヤレス・トランスコーダを通してやれば、取り敢えず安全にリンクする事は可能になります。
グーグル・ワイヤレス・トランスコーダをリンクに利用するには、<a>要素のhref属性値に与えるURIを以下のようにします。
http://www.google.co.jp/gwt/n?u=リンク先のURI
このとき、リンク先のURIはhttp://で始まるものとします。
例えば、www.marguerite.jp/Nihongo/WWW/Mobile/GoogleWirelessTranscorder.html (つまりこの文書ですが…)にグーグル・ワイヤレス・トランスコーダを通じてリンクする場合は、
<a href="http://www.google.co.jp/gwt/n?u=http://www.marguerite.jp/Nihongo/WWW/Mobile/GoogleWirelessTranscorder.html">(アンカー文字列)</a>
とします。
また、ページ内の特定の箇所へリンクしたい場合(URIの末尾に # に続いてフラグメント名を記述する場合)にはURIを以下のようにします。
http://www.google.co.jp/gwt/n?u=リンク先のURI%23フラグメント名#フラグメント名
例えば、www.marguerite.jp/Nihongo/WWW/Mobile/GoogleWirelessTranscorder.html#whatIsGoogleWirelessTranscorder にグーグル・ワイヤレス・トランスコーダを通じてリンクする場合は、
<a href="http://www.google.co.jp/gwt/n?u=http://www.marguerite.jp/Nihongo/WWW/Mobile/GoogleWirelessTranscorder.html%23whatIsGoogleWirelessTranscorder#whatIsGoogleWirelessTranscorder">(アンカー文字列)</a>
とします。
%23フラグメント名 以降に指定されたフラグメントを捜してそこを含んだ部分を変換して配信するようになります。リンク先に日本語文字など非アスキィ文字を含んでいる場合、それらはUTF-8コードに変換したうえでURLエンコードを行う必要があります。
URLエンコードとは、半角の英数字と一部記号を除いた文字のデータがインターネットを通じての伝達で壊れないようにするために % に続いて二桁の英数字に変換する事です。
本当は、アスキィ記号でも / や : はURLエンコードすべき文字です(それぞれ %2F 及び %3A となります)。英数字以外でURLエンコードしなくても良いアスキィ記号は、現在の仕様(RFC3986)では ハイフン(-), アンダスコア(_), ドット(.), オーヴァースコア(~)の四種のみと定められております。
特に、パーセント(%), アットマーク(@), アンパサンド(&), 疑問符(?)及び井桁(#)はURIに於いて意味のある記号であり、これらはURLエンコードしておかないとブラウザが確実に誤作動します。また、空白文字はしばしば切り落とされますのでこれもURLエンコードしておく必要があります。
%)をURLエンコードしてしまうと、逆に確実に誤作動の原因となってしまいます(二重にエンコードするとおかしくなってしまうため)。例えば、www.marguerite.jp/Nihongo/Features/うさ耳女子大生(うさぎ先生).html (制作者の創作キャラクタ・うさ耳女子大生の紹介記事です)へのリンクをグーグル・ワイヤレス・トランスコーダを通じてリンクするのであれば、URLの日本語部分 うさ耳女子大生(うさぎ先生) を
%E3%81%86%E3%81%95%E8%80%B3%E5%A5%B3%E5%AD%90%E5%A4%A7%E7%94%9F(%E3%81%86%E3%81%95%E3%81%8E%E5%85%88%E7%94%9F)
とエンコードし、それを用いて以下のように記述します。
<a href="http://www.google.co.jp/gwt/n?u=http://www.marguerite.jp/Nihongo/Features/%E3%81%86%E3%81%95%E8%80%B3%E5%A5%B3%E5%AD%90%E5%A4%A7%E7%94%9F(%E3%81%86%E3%81%95%E3%81%8E%E5%85%88%E7%94%9F).html">(アンカー文字列)</a>