要約

  • HTMLのリンクはhrefで移動先を示し、pingでクリック時の通知先を複数指定できる。ブラウザーは移動とは別にPOSTを送る場合がある。
  • 本当の行き先を隠す転送リンクより率直だ、という期待があった。だが通知先をソースに書くことと、読む人に知らせることは別の仕事だった。

青い下線を押す。表示された場所に着く。それで話が終わったように見えるが、リンクにpingがあれば、別の家の呼び鈴も鳴りうる。hrefが旅の目的地、pingが出発を知らせる宛先だ。クリックは一回でも、ブラウザーに渡された用事は二件ある。

2005年10月のWHATWGメーリングリストには、すでにこの仕組みをめぐる議論が残る。追加のリクエストを利用者に示すべきか、通知を無効にしたり第三者の宛先を選んで除外したりできるようにすべきか。実装の細部が、そのまま利用者の立場を決める話だった。HTMLを開けば宛先が読めるとしても、普通の人はリンクを押すたびにソースを読むわけではない。

2006年1月、Tyler CloseはWHATWGに別の見方を示した。外部リンクのクリック数を数えたいサイトは、すでに自分の転送先を間に挟んでいた。そうすると、見えているURLが本当の行き先を覆い、コピーやブックマークも余計な寄り道を抱える。hrefには正直な目的地を置き、計測先はpingとして書き分ける。その提案には筋が通っている。帳簿を付けるために道しるべまで偽装する必要がなくなるからだ。

現在のHTML標準では、pingに空白区切りでHTTPまたはHTTPSのURLを並べる。ブラウザーはリンクをたどる際、各通知先へPOSTを送れる。本体はtext/pingの四バイト、PING。移動先の読み込みと並行して送ることもでき、返答の本文は使わない。利用者の設定に応じ、一部あるいはすべての通知を見送る余地もある。ページがベルを設置し、鳴らすかどうかをブラウザーが決める。

四文字だけなら害は小さそうに聞こえる。だが通知先は、そのブラウザーから自分宛てに要求が来た事実を受け取る。標準には条件に応じたPing-ToやPing-Fromのヘッダーもある。争点は文字数より、誰がこの通信を知り、誰が止められるかだ。

2007年11月の議論でBoris Zbarskyが指摘したのは、表示の難しさだった。ステータスバーに通知先を出しても、そもそもそこを見ない人が多い。通常の画面には何も示されないかもしれない、と彼は当時予想した。これは当時の見通しだが、標識を見られない場所に置くことの頼りなさをよく表している。

規格の歩みもまっすぐではない。2010年3月4日、W3CのHTML作業部会の議長は、同部会のHTML5草案から<a ping>を除く合意が成立したと報告した。将来の再提案も認める文面だった。2018年のW3C HTML 5.3作業草案には再びリンク監査の記述が現れ、当時知られていたブラウザーには、利用者が監査を管理したり存在を知ったりするための画面がないとも書かれた。仕様書の「見せられる」は、製品画面の「見える」と同義ではなかった。

WHATWGの現行標準はpingを残し、ブラウザーが追加の通知先を示す方法にも言及する。リンクの設計を決めるページ、要求を送るブラウザー、クリックを決める人。三者の間で、誰がどこまで知るかを最後に形づくるのは画面だ。目的地の看板が正しくても、もう一軒に鳴るベルの札まで見えるとは限らない。

転送リンクの回り道を減らすという発想は、いま読んでも魅力がある。残った宿題はもっと地味で難しい。ソースコードに書いた正直さを、クリックする人の前に持ってくることだ。