勝手にハイパーリンク
Outlookを使用しているとよく出会う現象に、文章中にURI記載すると勝手にハイパーリンクになってしまうっていうのがある。多分この現象は設定でキャンセルすることはできるのだろうけれど*1、デフォルトでONになっていることをやめてほしいのだ。
なんせURI表記には終端文字が定義されていないので、絶対に意図したリンクにはならないのだ。特に日本語などの全角文字が混じった場合、ひどいことになる。
MSさんよ、お節介機能作るなら、もうちょっとちゃんとお節介しろよと思うのだった。おそらく、英語と日本語の最大の違いである、「日本語は、単語と単語をデリミタで分けない*2」ことが、このような変な動作をする原因だろう。
んでもって、このような動作はOutlookにかぎったものではなく、WordやExcelでも同様な動作をする。するのだけれど、なんだかんだOutlookが特にひどいのだ。Outlookは「メール編集完了時には、ただのURI表記なのに、メール送信ボタンを押下すると勝手にURIがハイパーリンクになる」という機能を有しており(笑)、当然URI末尾に日本語が混じっていると、誤ったリンク先を生成し、そのままメール送信する。どこの馬鹿がこんな仕様OKするんだと思うのであった。*3
まあそれはそれとして、そもそもURI記載するとリンクになるという機能自体の弊害と思うことがあって、それはリンク表記と実際のリンク先が同一になるという経験をユーザにさせることだ。
アンカータグとは
ハイパーリンクを実現するために、HTMLではアンカータグ(Aタグ)っていうのが定義されている。アンカータグを使用するとほかのURIにリンクすることができる。このとき「ユーザに見せる文字列」と「実際のURI」を指定可能だ。基本的には文中の文字列を別文書へのリンクにするようなことを想定しており、おそらく「用語」と「用語の解説ページ」みたいなのが、一般的な使い方だ。たとえば、ユーザに見せる文字列「ライフライン」と、その解説ページとして「wikipediaのライフライン項目のURI」をアンカータグにすると
<A HREF=https://ja.wikipedia.org/wiki/%E3%83%A9%E3%82%A4%E3%83%95%E3%83%A9%E3%82%A4%E3%83%B3>ライフライン</A>
こんな感じになる。HREF=の後に記載されるのがURIで、</A>の前に記載されるのが、ユーザに見せる文字列だ。
アンカータグの表示文字列をURIにすると
MS製品の「URIを記載すると勝手にハイパーリンクになる機能」は、日本語が混じるとでたらめな判定をすることもさることながら、URIと表記を同一にすることが「普通のことである」という誤解を与える。表記URIとリンクURIは同じという誤解。つまり、悪意あるハイパーリンク*4に引っかかる人を増やしてしまうのだ。
・ユーザの理解(リンク表記とリンク先は同一である)
<A HREF=https://google.co.jp>https://google.co.jp</A>
・悪意あるリンク(リンク表記はGoogleだがリンク先はyahoo)
<A HREF=https://www.yahoo.co.jp/>https://google.co.jp</A>
URIをハイパーリンクに自動変換しないほうが良い
URIをハイパーリンクに自動変換する環境に慣れると、ハイパーリンクの表記がURIなら、そのURIはリンク先URIであると誤解する人が発生する。それは、「安全なURIを表記している、危険なリンク先」に気づけないことを意味する。URIのハイパーリンク自動変換機能とは、アンカータグのそもそもの動作を誤解する人を量産する機能なのだ。