13日目:本当のリンクを使う

Webデザインの災いの元は "javascript:" リンクっていうのにある。クリックするとJavascriptを実行する擬似リンクだね。この問題がブログでよくおこるのは、コメントを別窓で開く場合。なんでそれが問題なのかって?だって何かしらの理由から Javascript を使っていないひとがインターネットユーザの11% もいるんだ。(訳者注:ちなみに同じ情報源からの2005年2月現在の統計では、Javascriptが無効になっているのはインターネットユーザの9%。)この理由には、障碍のあるユーザが使っているブラウザがただ単にJavascript 機能をサポートしてないってのも含まれる。だからこういった疑似リンクはそういうひとたちには使えないものになっちゃうんだよ。それよりもホントのリンクを使うようしよう。

これってすごく説明するにも修正するにも簡単なんだけど、これがどんなに大事なことかって何度言っても言い足りないくらい。ナビゲーションを飛ばすリンクがないこととかは色んなレベルでユーザビリティを落とすことになるけど、少なくともページ自体は最終的には読むことができるじゃん?けど今回のこの問題がおきた場合、大切なコンテンツのひとかたまりがまるまるそのまま、アクセスすることさえできなくなっちゃうんだよね。"javascript:" リンクの陰にコメントが隠れちゃうことなんてあったら、最初っから存在しないのも同然

誰がトクする?

  1. まずマーカスLynx は Javascript 機能はサポートしてないから。
  2. それにマイケルも。Links も Javascript 機能はサポートしてない。
  3. リリアン もだね。リリアンはIE使ってるけど、ごく一部の承認済のサイト以外では Javascript は無効にするっていう規定をIT部門が全社的に導入したから。で、あなたのサイトはこの承認済リストには載ってない。
  4. Google も喜ぶ。Google はリンクをたどることでコンテンツを見つけてインデックスに追加していくんだけど、"javascript:" のリンクはたどれないんだ。Webのインデックスをするときにこの Javascript は実行されないからね。

どうしたらいい?

Movable Type についてくるテンプレートはそのままで大丈夫になったから、なんにもしなくてもいいかもしれない。サイトのページソースを表示して、 "javascript:" を検索してみよう。これで1つも見つからなければ、今回は変更する必要なし。

だけどね、Movable Type テンプレートにこんなリンクがある場合がある:

<a href="javascript:OpenComments(<$MTEntryID$>)">コメント (<$MTEntryCommentCount$>)</a>

もしあったら、こう変えておいて:

<a href="<$MTCGIPath$>mt-comments.cgi?entry_id=<$MTEntryID$>" onclick="OpenComments(<$MTEntryID$>); return false">コメント (<$MTEntryCommentCount$>)</a>

Javascript が有効なブラウザでは、どっちも同じように機能する。onclick っていう属性は href属性よりも優先されるからね。だからこの改良後バージョンはあいかわらず別窓を開く OpenComments のファンクションを保ってる。でも Javascript が使えないブラウザ(と Google)は onclick 属性をすっぱり無視して href に指定されてるリンクを追ってくれるから、コメントは同窓での展開になる。

javascript: 疑似リンクを使ってるひと、どんな理由か知らないけど、ヤメて。ホントヤメて。今すぐヤメて。上で書いたテクニックを自分のコーディングに組み込んで、ブラウザがJavascript に対応してない状況でも本当のリンクをたどれるようにしておこうよ。

さらなる情報源(英語)

P.S.

Javascript を使った動的なメニュー はどうかって?正直、説明するのもイヤになっちゃうってとこ…。あれってタバコ吸う姿がかっこいいって言ってるのと同じこと。本当のリンクを使いましょう。