短い URL と SNS の相性

このブログ記事の URL は https://blog.w0s.jp/717 で公開しており、記事投稿順の連番を ID 代わりに使用しています。

これが最良かと言われると必ずしもそうではなく、以下のような形式も考えられます。

  • 記事ページであることを明示するために /entry//posts/ を含める(e.g. https://blog.w0s.jp/entry/717
  • 連番ではなくタイトルや概要から意味のある名称にする(e.g. https://blog.w0s.jp/entry/short-url&sns

URL から Web ページの概要を推測できることには、とくに URL が自動的にリンクになる SNS 投稿においてアクセシビリティ上のメリットも発生します。

いわゆる here 症候群が良くないのはなぜでしょうか。WCAG 2.2 の達成基準 2.4.4(W3C) ではリンクテキストないしリンクのコンテキストからリンクの目的が決定できることが求められています。その詳細は10年以上前に here症候群とWCAG 2.0 の記事に書いたので省略しますが、Techniques for WCAG 2.2 の F63(W3C)G53(W3C) の情報をまとめると、

<p>○○については<a href="...">こちら</a></p>

は同一段落中にリンク先の説明があるため達成基準 2.4.4 を満たす一方で、

<p>○○について</p>
<p><a href="...">続きを読む</a></p>

は NG である違いがポイントです。

Web ページの制作者として HTML のマークアップを行う際は、このようにリンクテキストないし同一段落などの文中にリンク先の説明文があることに注意を払う必要がありますが、一方で SNS 投稿のように他者に共有される場合、投稿者は深い理由もなく改行を挟んで URL を単独表記してしまうかもしれません。

○○に関してこんな記事を紹介します。

https://blog.example.com/999

SNS 投稿でユーザーが入力した改行をどう表現するかは各サービスやクライアントによって異なり、white-space: pre-wrap で入力値をそのまま表示するものや、改行を <br> 要素に置き換えるものなどさまざまな手法が用いられていますが、以下のように <p> 要素で段落分けする例も存在します。

<p>○○に関してこんな記事を紹介します。</p>
<p><a href="https://example.com/999">https://example.com/999</a></p>

この場合、リンク先の説明とリンクが段落を跨いでいるためアクセシビリティ的には良くない例となります。すなわち SNS に URL を投稿する場合は改行を挟まず同一行内にリンク先のタイトルや説明を含めることが望ましいのですが、そんな配慮をユーザーに求めるのも現実的ではありません。

一方、Web ページの運営者側の工夫として、URL のみでリンク先の内容が推測できる状態であれば(WCAG の達成基準を満たすかどうかはさておき)そういった現状に対して若干の改善策にはなるでしょう。https://blog.w0s.jp/717 ではリンク先の内容が「ブログページである」ことくらいしか分かりませんが、もし https://blog.w0s.jp/entry/short-url&sns であれば「ブログのトップページやタグ一覧ではなく記事ページである」「SNS における短い URL に関する記事である」ことが推測でき、リンクをクリックするかどうかの判断基準になり得ます。

その一方で、URL を自動リンクすることはユーザー投稿型サービスにおいて必須の要件ではなく、Instagram など投稿本文内の URL がリンクにならない事例も存在します。そのようなサービスでもユーザーは URL を共有することがしばしばありますから、アクセシビリティの観点でいえば以下のようなユースケースも考える必要があります。

  • URL をアドレスバーにコピペ(日本語 URL や記号の乱用を避けるなど、URL とそうでない文字が容易に区別できるようにする)
  • URL を一時的に暗記(分かりやすくかつ短い URL が良い)

この場合、URL から内容を推測できる事例とはまったく逆で、https://blog.w0s.jp/717 のように意味のない URL だとしても、パス部分が短く数字のみで構成されていることは一時的な暗記には最適なものとなります。もし https://blog.w0s.jp/entry/short-url&sns だったら、覚えたつもりでも entry か entries か、ハイフンかアンダースコアかといったことに頭を悩ませてしまうかもしれません。

そういうわけで、現実に存在するさまざまなサービスでの URL 共有を考えると、最適な URL は何かということに唯一の答えは存在しないのではないかと思う次第です。それではこのブログが連番による短い URL を採用した理由は……2009年のブログ開設時に DB 設計やプログラム実装の容易さを優先しただけのことだったりします(おい)。