[26] [DFN[[RUBYB[ハイパーリンク]@en[hyperlink]]]]
([DFN[[RUBYB[リンク]@en[link]]]])
は、[[ハイパーテキスト]]においてある[[文書]] (の一部) からある[[文書]] (の一部)
への関係を示したものです。

* 呼称

[3] 厳密には[[ハイパーリンク]]は[[リンク]]の一種とされていますが、
現在、[[ハイパーテキスト]]について特に断りなく[[リンク]]という場合、
[[ハイパーリンク]]を指していることが多いようです。

[1] [[リンク]]は、[[接続]]や[[連結]]などと訳すこともあります。

* 意味

[27] [[リンク]]や[[ハイパーリンク]]といった語の意味は、
とても広く、
それ自体ではあまり明確ではありません。

[47] 何かと何かの関係性を記述あるいは提示したものは、
何であっても[[リンク]]と呼ぶことができます。
そのような広い意味の言葉はほとんど何も言っていないのと同じなので、
用語・概念として存在意義があるのかどうかわかりませんが...
[[Web]] およびその周辺領域では、その何らかの関係の一方または両方を [[URL]] を示すとき、
それを[[リンク]]と呼ぶことが多いように見受けられます。

[48] [[ハイパーリンク]]は、文章中の単語を[[クリック]]すると他の[[文書]]へと遷移する、
といった[[Webブラウザー]]などでこんにちではありふれた動作に象徴されるような、
[[ハイパーテキスト]]から[[ハイパーテキスト]]への動線となる[[リンク]]を表しています。

[49] [[HTML]] でいえば [CODE(HTMLe)@en[a]] [[要素]]のように他の[[文書]]に遷移するものが[[ハイパーリンク]]であり、
[CODE(HTMLe)@en[img]] [[要素]]のように[[画像]]を埋め込むものは、
当該[[文書]]から[[画像]]への[[リンク]]ではあるものの、
[[ハイパーリンク]]ではない、と解されることがあります。

;; [50] しかし現在一般的な用法では、 [CODE(HTMLe)@en[a]] [[要素]]は[[ハイパーリンク]]
([[リンク]]) ですが、 [CODE(HTMLe)@en[img]] [[要素]]は[[リンク]]ではないと解釈するようにも思われます。

[51] [[HTML]] では [CODE(HTMLe)@en[a]] [[要素]]と [CODE(HTMLe)@en[img]]
[[要素]]の差は明確とも思われますが、他の[[ハイパーテキスト]]技術、
例えば [[XLink]] や [[HyTime]] では、[[リンク]]と[[ハイパーリンク]]の差がどこにあるのか、
より不明瞭です。

[NOTE[
[52] あるいは、過度に一般化して[[ハイパーリンク]]や[[リンク]]の意味を拡大させすぎた結果が
[[XLink]] や [[HyTime]] の失敗につながったのかもしれません。

[75] 
この過剰に意味の広い[[リンク]]は、
[[XLink]]
や 
[[HyTime]]
の失敗で影を潜めたかのように見えましたが、
一部でもてはやされている[[ハイパーメディア]]と自称する [[Web API]]
設計技法の核としてひっそり使われています。
]NOTE]


* 各種ハイパーテキスト技術におけるリンク

[70] 
[FIG(short list)[
- [8] [[HTMLのリンク]]
- [9] [[XLinkリンク]]
- [10] [[Web Linking]]
- [11] [[リンク (HyTime)]]
- [[Linked Data]]
- [[BEACON]]
- [[PDF]]
- [[Microsoft Office]]
]FIG]

[53] リンクに関係するプロトコル要素

[FIG(short list)[
- [[URL]]
- [[リンク型]]
- [[リンク関係型]]
- [CODE(HTMLa)@en[[[href]]]]
-- [CODE(HTMLe)@en[a]]
-- [CODE(HTMLe)@en[area]]
-- [CODE(HTMLe)@en[link]]
- [CODE(HTMLa)@en[[[src]]]]
- [CODE(HTTP)@en[[[Link:]]]]
- [CODE(XMLa)@en[[[xlink:href]]]]
- [[リダイレクト]]
- [CODE(HTTP)@en[[[Referer]]]]/[CODE(JS)@en[[[document.referrer]]]]
- [[TrackBack]]
- [[Pingback]]
- [[Webmention]]
- [CODE(HTTP)@en[[[LINK]]]]/[CODE(HTTP)@en[[[UNLINK]]]]
- [[WikiName]]
- [[InterWiki]]
- [[oEmbed]]
]FIG]

[42] [[HTML]] を初めとする [[WWW]] の [[SGML]] 応用の多くにおいては、参照リンクの参照先指定には [[href]] 属性, 埋め込みリンクの参照先指定には [[src]] 属性を使っています。

[57] リンクに関係する処理:
[FIG(short list)[
- [[ハイパーリンクをたどる]]
- [[ハイパーリンクのダウンロード]]
- [[navigate]]
- [[fetch]]
- [[リンク展開]]
]FIG]


[71] 
[FIG(short list)[
- [[始点]]
- [[終点]]
- [[逆リンク]]
- [[ディープリンク]]
- [[分岐]]
]FIG]

* HTML のリンク

[54] [[HTML]] では[[リンク]]を[[ハイパーリンク]]と[[外部資源へのリンク]]に大別しています。
どちらであるかは[[要素]]の種類と[[リンク型]]により決まります。一つの[[要素]]から両方の種類の[[リンク]]が同時に作成されることもあります。

[55] ある[[要素]]が[[ハイパーリンク]]であるかどうかは、
[CODE(HTMLe)@en[[[base]]]] [[要素]]の [CODE(HTMLa)@en[[[target]]]] [[属性]]の適合性に関わります。

[56] ある[[要素]]が[[ハイパーリンク]]であるかどうかは、
[[要素]]の [[ARIA役割]]の決定と適合性に関わります。

* 関連

[28] たまに [[URL]] と混同されます。

[EG[
[29] 「画面上に[[URL]]が表示されます」と言われても、実際には [[URL]]
ではなく[[ハイパーリンク]]が表示されていることがあります。
]EG]

[SEE[ [[複雑ネットワーク]] ]]

* 歴史

** いろいろな定義

[4] [DFN[リンク]]は、2つ又はそれ以上の資源の間にある、1つ又は複数の (明示的又は暗示的な) 関係のことです。 <http://www.w3.org/1999/05/WCA-terms/#Link>

[2] 
> 
:link:
二つの[[アンカー]]の関係で、同じ又は異なる[[データベース]]に蓄積される。
<http://www.w3.org/Terms.html#link>

[30] 
> Hyperlink
> [[始点]]と[[対象]]の2つの[[アンカー]]の間の関係。
リンクは始点から対象に向かう。始点は[[尾]]とも呼び、
対象は[[終点]]や[[頭]]ともいう。 
([[ISO‐HTML]] <http://purl.org/NET/ISO+IEC.15445/15445.html#DEFS> 4.12 参照。)

[31] 
> [DFN[ハイパーリンク]]とは、主として人間[[利用者]]に対して[[表現]]することを目的とした[[連結]]である。
<http://www.w3.org/TR/xlink/#dt-hyperlink>

[20] 
>
:3.44 [DFN[[RUBYB[ハイパーリンク] [hyperlink]]]]:
2つ以上の[[物体]]の[[関係]]を[[表現]]する[[情報構造]]。
> 注意30. [[ハイパーリンク]]によって[[関連]]付けられる[[物体]]を[[ハイパーリンク]]の[DFN[[[錨]]]]と呼びます。
[[錨]]は[DFN[[[リンク端点]]]]という[[ハイパーリンク]]の[[特性]]により識別されます。
> 注意31. [[ハイパーリンク]]には [[HyTime]]
を使う[[応用]]や[[体系]]により[[リンク型]]や[[名前]]を[[割当]]てることができます。
> 注意32. [[SGML文書]]は[[ハイパーリンク]]以外の手段によっても[[関係]]を[[表現]]できます。
例えば、[[文書構造]]の[[下位]]や[[兄弟]]の[[関係]]は[[マーク]]の[[タグ]]の位置によって[[表現]]されます。

出典: [[ISO/IEC 10744]]:1997
<http://www.y12.doe.gov/sgml/wg8/docs/n1920/html/clause-3.html#def-3.44>

** ハイパーリンクと理論(?)

[35] [[ハイパーテキストにおけるリンクの自由性]]

[36] [[HTML]] のリンクなんかは、「リンク」という語の故になんだか誤解されてるきらいがある、という指摘があるね。たとえば[[a要素]]を消すことを「リンクを切断」と言う人がいるけど、この言い方はどうも気に入らない。確かに動詞「切断」は「リンク」に呼応する, 日本語文としては適切な語法だとは思うんだけど、技術的に考えて受け入れがたい。

- [37] ''下線つきの青い文字 - Personnel'' <http://members.jcom.home.ne.jp/jintrick/Personal/ykd.html>

[38] >>37 曰く「ハイパーリンクは、ウェブサイトの生命線」

- [39] ''リンクに関する詳細 - Personnel'' <http://members.jcom.home.ne.jp/jintrick/Personal/about_link.html>
- [40] ''このページへの無断リンク厳禁です! 無断リンク禁止です! rink.html'' <http://www.ii-park.net/~yumika/rink.html>
- [41] ''無断リンクを禁止するっ!'' <http://www.geocities.co.jp/SiliconValley/1082/>


[76] 
[CITE[Describing and Linking Web Resources]], [TIME[1996-11-13T14:39:22.000Z]], [TIME[2024-08-15T15:14:42.174Z]] <https://www.w3.org/Architecture/NOTE-link.html>


** HTML4 のリンク

[REFS[
- [58] [CSECTION@en[Links in HTML documents]] <https://www.w3.org/TR/html4/struct/links.html>
]REFS]

[59] [RUBY[連結][リンク]] (ハイパーリンク, Web 連結) は、
[[HTML]] の特徴の1つであり、ウェブ成功の鍵でもあります。
連結は、2つの端点を持ちます。1つは[[始点アンカー]]で、
連結の出発点です。もう1つは[[終点アンカー]]で、
連結の向かう先です。終点は、どんな Web [[資源]]でも構いません。
文章かもしれませんし、画像、音声、動画、プログラムかもしれません。
文章の一部分かもしれません。 [HTML4 12.1]

[FIG(quote)[
[60] 
> ・・・ HTML と他のほとんどの[[マーク付け言語]]を分かつものは、
[[ハイパーテキスト]]と対話的文書の機能である。
この章では[DFN[連結]] ([[ハイパー連結]], ウェブ連結)
という、基本ハイパーテキスト構造を導入する。
連結は、一つのウェブ[[資源]]から他の資源への接続 ([RUBYB[連結][connection]]) 
である。連結は単純な概念ではあるが、ウェブを成功に導いた主要な力の一つでもある。
> 連結は2つの端点 ([[アンカー]]と呼ぶ。) と方向を持つ。・・・

[FIGCAPTION[
[[HTML 4]] [CSECTION@en[12.1 Introduction to links and anchors ]]
<https://www.w3.org/TR/html4/struct/links.html#links>
]FIGCAPTION]
]FIG]

[61] 連結に関連付けられた既定の振舞いは他の Web 資源の[RUBYB[取出し][retrive]]です。
この挙動は、連結の選択 ([DFN[[RUBYB[活性化][activate]]]]。
マウスの[[かちっ]], 特定の打鍵, 音声による指示など)
によって行われるのが普通です。 [HTML4 12.1.1]

[62] もっとも広く行われている連結の使用法は >>61 の
[Q[活性化したら関連する資源を取出す]]ですが、
[[連結型]]を指定することで、[[著者]]は他の関係を表現することもできます。 [HTML4 12.1.2]

例えば、連結型 [CODE(HTML)[[[prev]]]] を使って、
文書群の中で次にあたる文書を示すことができます。

[63] HTML 文書の中の要素を[[終点アンカー]]にすることができます。
このためには、 [CODE(HTMLe)[[[a]]]] 要素と [CODE(HTMLa)[[[name]]]]
属性を使うか、ほとんどの要素型にある [CODE(HTMLa)[[[id]]]] 属性を使うかします。
[[始点アンカー]]側では、 [[URI参照]]に[[素片識別子]]を指定します。
[HTML4 12.1.2]
詳しくはそれぞれの説明を見てください。

[64] HTML の連結要素型には、 [CODE(HTMLe)[[[a]]]],
[CODE(HTMLe)[[[link]]]], [CODE(HTMLe)[[[img]]]],
[CODE(HTMLe)[[[form]]]] などがあります。 [HTML4 12.1.3]

[CODE(HTMLa)[[[href]]]] 属性つきの [CODE(HTMLe)[a]]
は始点アンカーになります。
[CODE(HTMLa)[[[name]]]] 属性つきの [CODE(HTMLe)[a]]
は終点アンカーになります。 [HTML4 12.1.3]

[CODE(HTMLe)[link]] 要素は現在の文書から他の資源への連結を表します。
[CODE(HTMLe)[link]] の連結は文書の内容としてはレンダリングされませんが、
UA の誘導棒などとしてレンダリングされるかもしれません。 [HTML4 12.1.2, 12.1.3]

[65] 利用可能・型識別可能でない[[資源]]への参照は[[誤り]]です。
[[UA]] は誤りをどう処理しても構いませんが、次の処理が推奨 (recommend)
されています。

[FIG(list)[
- [66] 資源が利用でないときには、利用者に警告するべきです。
- [67] 資源の型が識別できないときには、それでも処理しようと試みるべきです。
また、利用者に警告するべきですし、
利用者が処理に介入して文書型を識別することが可能でも構いません。
]FIG]

[REFS[
- [68] [[HTML 4]] [CSECTION@en[12.2.4 Unavailable and unidentifiable resources]]
<https://www.w3.org/TR/html4/struct/links.html#idx-error>
]REFS]

** XML でのハイパーリンク

[12] [[XLink]]

- [[XML名前空間]]の元で使う汎用の属性群で、どのような文書型でも名前空間 (の属性) を追加するだけで使えるようになります。
- 1つの要素に1つのハイパーリンクしか作れないという問題点があります。
例えば、[SAMP[クリックしたら移動するハイパーリンクである画像 (埋め込みリンク)]]
を (1つの要素で) 表現できません。
-- 2つの要素の入れ子にするとか、始点アンカーでも終点アンカーでもない要素でリンクを定義する仕組みを使うとかすれば表現できますがね。

[43] [[HLink]]

- 要素(・属性)にハイパーリンクであるとの定義を与える、一種の[[スキーマ]]です。
- 従来の [[WWWブラウザ]]は HTML の [[img]] 要素が画像 (埋め込みリンク)
であるということを''知って''いましたし、 [[href]] 属性のある要素がクリックで移動するハイパーリンクであることを''知って''いました。
このリンクであるという知識を教えるのが HLink 文書です。

[44] [[CSS]] による関連付け

- [[@link]]
- ''独自拡張 リンク関連CSS'' <http://is.vis.ne.jp/notes/ex_linking/index.xhtml>
-- [[Opera]] の独自拡張属性を使って、任意の [[XML]] の要素をその任意の属性を使ったハイパーリンクに出来ます。

[45] [[DOM]], [[XBL]], [[XSLT]]...

- 少し趣は異なりますが、 XML とハイパーリンクということで紹介しておきます。
- WWW ブラウザに対して XML の要素をハイパーリンクと知らせたい場合、その文書
(のインスタンス) が特定の目的 (普通は表示。) にしか用いないのなら、もうその文書は「破壊」しても良いことになります。
- そこで、任意の XML の構成要素を、ブラウザが既にリンクであると知っているもの、例えば HTML の [[a]] 要素に変換してしまえば、ハイパーリンクであることを知らせるという点では十分です。
- ですからこれらの技術も、 ad hoc ながら XML でハイパーリンクを実現するための手段といえます。

- [46] ''Minutes of 16 Jan 2003 discussion on Linking in XML Documents'' <http://www.w3.org/2003/01/16-tag-xlink>
- [14] ''Clink'' <http://people.opera.com/howcome/2000/css3/clink-nov-6.html>
-- [13] なぜか W3C members only note なのに公開されていますが、 [[Opera]] の人で、 CSS でのハイパーリンク指定の CSS3 への提案のようです。 Opera 独自拡張属性の説明も付録でついています。
- [16] Clink は現時点の >>14 の案では多分使い物にならないのが出てくると思います:)
- [17] で、物理マーク付け的 XLink と、ずばり CSS の Clink, (CSS in XML 的意味で) XSL 的な HLink が出揃ったわけですが。
- [18] >>17 物理マーク付けがそれなりに成功していて、 CSS が元気を出してきて、 XSL は標準化が遅れてなんだかなあていう感じのところまでそっくりだ:)
- [19] という三つ巴をどうするかを話し合ったのが >>13 の [[TAG]] 会合。結論は出てないような木が。

* メモ

-[80] [CITE[one-to-many links]], [TIME[2003-08-04T15:50:21.000Z]], [TIME[2024-09-29T08:46:37.715Z]] <https://lists.w3.org/Archives/Public/www-talk/1992NovDec/0198.html>
-[79] [CITE[two ideas....]], [TIME[2003-08-04T15:50:21.000Z]], [TIME[2024-09-29T08:44:42.734Z]] <https://lists.w3.org/Archives/Public/www-talk/1992NovDec/0207.html>


[77] [CITE[null]], [TIME[2024-08-26T03:41:57.000Z]] <https://web.archive.org/web/20001029045127/http://www.bath.ac.uk/~py8ieh/internet/projects/old-stuff/xlink.txt>


[78] >>77 初期 [[Ian Hickson]] の[[リンク]]観

[5]
[CITE@ja[リンクをクリックしやすくする、ちょっとした工夫 | Blog hamashun.com]] ([CODE[2007-03-11 08:36:19 +09:00]] 版) <http://www.hamashun.com/blog/2007/03/post_23.html>
([[名無しさん]] [WEAK[2007-03-11 01:12:59 +00:00]])

[6]
[CITE[リンクは張る?貼る? - サーチマーケティングのヒント]] ([CODE[2007-03-18 12:13:29 +09:00]] 版) <http://www.seo-service.net/seo-blog/memo/post_33.html>
([[名無しさん]] [WEAK[2007-03-18 03:14:29 +00:00]])

[7]
[CITE[Simple Questions of Languages 14]] ([TIME[2004-09-11 12:58:59 +09:00]] 版) <http://www5b.biglobe.ne.jp/~aiida/gimon14.html#1>
([[名無しさん]] [WEAK[2007-03-18 03:15:41 +00:00]])

[21] [CITE@en[Publishing and Linking on the Web]]
( ([TIME[2013-04-26 02:37:42 +09:00]] 版))
<http://www.w3.org/TR/2013/NOTE-publishing-linking-20130430/>

[32] [CITE@en[URLs are parsed and produce records · whatwg/html@30bc255]]
([TIME[2016-02-14 22:52:10 +09:00]] 版)
<https://github.com/whatwg/html/commit/30bc2557105ad62881ec9670f253febbc9761b44>

[33] ハイパーリンク (略して[[リンク]]とも呼ばれる。)
は[[ハイパーテキスト]]の本質といえましょう。

[34] たとえば >>33 の文のうち、「''ハイパーテキスト''」という部分が、お使いの
[[UA]] では色が変わっているなどの効果がついていると思います。
この部分はハイパーリンクになっていて、「''ハイパーテキスト''」
についての話題に''飛ぶ''ことが出来ます。

このように、文章中のある部分から他のどこかへ''飛ぶ''ことが出来るのが、''ハイパーリンク''であると
(とりあえず) 理解して構わないでしょう。

[22] ''ハイパーリンクをより良い物に - Personnel'' <http://members.jcom.home.ne.jp/jintrick/Personal/yk_hyperlink.html>

[15] [CITE@ja[スラッシュドット ジャパン | 「CDからのハイパーリンク特許」侵害で訴訟発生]] ([TIME[2007-04-21 11:59:45 +09:00]] 版) <http://slashdot.jp/it/article.pl?sid=07/04/20/0820218&from=rss>
([[名無しさん]] [WEAK[2007-04-21 03:02:04 +00:00]])

[23] [CITE@ja[楽天vs店舗 外部リンク禁止を巡って裁判沙汰が進行中]]
([TIME[2009-06-01 12:21:58 +09:00]] 版)
<http://neta.ywcafe.net/000498.html>

[24] [CITE@en[HTML5 Revision Tracker]]
([TIME[2010-08-10 00:29:56 +09:00]] 版)
<http://html5.org/tools/web-apps-tracker?from=5247&to=5248>

[25] [CITE@en[Web Applications 1.0 r7794     Rewrite the link following stuff to better match reality.]]
( ([TIME[2013-04-09 05:41:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=7793&to=7794>


[FIG(quote)[
[FIGCAPTION[
[69] [CITE@ja[ページ単位の広告の設定方法 - AdSense ヘルプ]]
([TIME[2016-10-16 11:34:58 +09:00]])
<https://support.google.com/adsense/answer/6245305?hl=ja&ref_topic=1307438>
]FIGCAPTION]

> モバイル全画面広告の場合、広告内で表示可能なページ上のすべてのリンクがプレビュー ツールによりハイライト表示されます。これらのリンクをクリックして、モバイル全画面広告のテストを実施します。ただし、「ストップワード」を含むリンクはプレビュー ツールでハイライト表示されないので注意が必要です。AdSense では一般的な操作に関連する「ログアウト」などの言葉が「ストップワード」のリストに含まれています。そうしたストップワードを含むリンクではモバイル全画面広告は表示されません。

]FIG]


[72] [CITE@en['''['''css-ui-4''']''' Require cursor:pointer for hyperlinks]]
([[frivoal]]著, [TIME[2018-06-07 08:25:25 +09:00]])
<https://github.com/w3c/csswg-drafts/commit/fc83249fefcf5872b24d83b7523ddc6fd38897e4>

[73] [CITE@en['''['''css-ui-4''']''' Require link-pointer when pointer is over a link · Issue #2664 · w3c/csswg-drafts]]
([TIME[2018-06-08 13:28:58 +09:00]])
<https://github.com/w3c/csswg-drafts/issues/2664>

[74] [CITE[Describing and Linking Web Resources]]
([TIME[1996-11-13 23:39:22 +09:00]])
<https://www.w3.org/Architecture/NOTE-link.html>


[81] [CITE@ja[XユーザーのDaishi Tabataさん: 「JDK26からjavadocがさらに便利になりそう! 今までできなかった、検索したAPIをCtrl+左クリックで別タブ表示とか、右クリック+操作選択ができるようになる。 https://t.co/cTAM1ViTLA https://t.co/5doPIDwifn」 / X]], [TIME[午後11:08 · 2025年8月21日][2025-08-21T14:08:55.000Z]], [TIME[2025-08-26T04:45:05.000Z]] <https://x.com/tbtdis/status/1958531765498433756>


[82] 
>>81 なんかすごいことみたいな書きぶりだけどそれ [[HTML]] の基本機能だぞ...
[[javadoc]] って今までどんだけやばい [[HTML]] だったのやら...

[83] 
そして [[Java]] プログラマーはそんなのに飼いならされてたのかww
