* 仕様書

[REFS[
- [155] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2015-05-06 10:42:35 +09:00]] 版) <https://html.spec.whatwg.org/#attr-fs-target>
- [165] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2015-05-06 10:42:35 +09:00]] 版) <https://html.spec.whatwg.org/#concept-form-submit>
- [130] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2015-05-06 10:42:35 +09:00]] 版) <https://html.spec.whatwg.org/#following-hyperlinks-2>
- [231] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2015-05-06 10:42:35 +09:00]] 版) <https://html.spec.whatwg.org/#dom-open>
- [243] [CITE@en[CSSOM View Module]] ([TIME[2015-05-06 18:05:35 +09:00]] 版) <http://dev.w3.org/csswg/cssom-view/#the-features-argument-to-the-open()-method>
- [20] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2015-05-06 10:42:35 +09:00]] 版) <https://html.spec.whatwg.org/#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name>
- [199] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2015-05-06 10:42:35 +09:00]] 版) <https://html.spec.whatwg.org/#the-sessionstorage-attribute>
]REFS]

* [CODE(HTMLa)@en[target]] 属性 (HTML)

[4] [[HTML]] の 
[DFN[[CODE(HTMLa)[target]] 属性]]は、
文書を開く[[フレーム]]の名前を指定します。

[16]
[CODE(HTMLe)@en[[QN[[[a]]] [http://www.w3.org/1999/xhtml]]]]、
[CODE(HTMLe)@en[[QN[[[area]]] [http://www.w3.org/1999/xhtml]]]]、
[CODE(HTMLe)@en[[QN[[[base]]] [http://www.w3.org/1999/xhtml]]]]、
[CODE(HTMLe)@en[[QN[[[button]]] [http://www.w3.org/1999/xhtml]]]]
([CODE(HTML)@en[[[submit]]]])、
[CODE(HTMLe)@en[[QN[[[form]]] [http://www.w3.org/1999/xhtml]]]]、
[CODE(HTMLe)@en[[QN[[[input]]] [http://www.w3.org/1999/xhtml]]]]
([CODE(HTMLe)@en[[[image]]]]、[CODE(HTML)@en[[[submit]]]])、
[CODE(HTMLe)@en[[QN[[[link]]] [http://www.w3.org/1999/xhtml]]]]
:[[属性名]]:[CODE(HTMLa)@en[[[target]]]]
([Q@en[target]] ([Q[対象]]) より)
:[[属性値]]:[CODE(SGML)@en[%[[FrameTarget]];]] (>>6)
:[[既定値]]:(>>7)

[5] 仕様書:
- [[HTML 4]]
-- 16.3 Specifying target frame information
<IW:HTML4:"present/frames.html#target-info">
- [[Web Forms 2.0]]
-- [CSECTION@en[2.17. Extensions to the submit buttons]]
<IW:WF2:"#extensions3">


** 代替

[10] この属性は'''非推奨'''です [SRC[HTML 4]]。
代わりに、[[スタイル・シート]]で指定できます。

[11] [[CSS3]] では、 [SAMP(CSS)[target]] 特性を使って指定できます。

* 属性値

[156] [CODE(HTMLe)@en[[[form]]]] [[要素]]の [CODE(HTMLa)@en[[[target]]]]
[[内容属性]]や[[フォーム制御子]]の [CODE(HTMLa)@en[[[formtarget]]]] [[内容属性]]の値は、
[[妥当な閲覧文脈名またはキーワード]]でなければ[['''なりません''']] [SRC[>>155]]。

@@
[6] この属性の値は [CODE(SGML)[%[[FrameTarget]]]] です。
大文字・小文字は区別しません [SRC[HTML 4 16.3]]。
[[SGML]] 的には [CODE(SGML)[[[CDATA]]]] です。

[7] この属性は省略可能です。

[[#comment]]


** UA による利用

[12] リンクを辿る時に、リンク先資源を開くべきフレームは、
次のように決定するべきです。 [SRC[HTML 4 16.3.1]]

= まず、 [CODE(HTMLa)[target]] 属性を調べます。
指定されていれば、そのフレームで開きます。
= 自分に [CODE(HTMLa)[target]] 属性が無ければ、
[CODE(HTMLe)[base]] 要素の [CODE(HTMLa)[target]]
属性を調べます。指定されていれば、そのフレームで開きます。
= 自分にも [CODE(HTMLe)[base]] 要素にも [CODE(HTMLa)[target]]
属性がなければ、自分と同じフレームで開きます。

- なお、指定された名前のフレームがなければ、
新しい窓とフレームを作り、そこで開きます。
そのフレームの名前は指定された名前とします。
- UA は、利用者が [CODE(HTMLa)[target]] を上書きする仕組みを用意しても構いません。

[[#comment]]


** 他との関係

[8] この属性に指定するフレームの名前は、 (予約名以外は)
[CODE(HTMLe)[[[frame]]]] 要素や [CODE(HTMLe)[[[iframe]]]] 要素の 
[CODE(HTMLa)[[[name]]]] 属性で定義します。

[[#comment]]


** 安全性

[14] これまでの実装の中には、 [CODE(HTMLa)[target]]
属性で指定されたフレーム名に素直に従い、
たとえ他の文書・他の鯖の文書であっても該当する名前のフレームがあればそこにリンク先文書を開くものがありました。

このような実装方法は、閲覧者を不可解に思わせるだけでなく、
悪意を持つ人が他のウェブ・サイトのフレームに、
あたかもその一部であるかのように自分の文書を含めることが可能であり、
問題があると現在では考えられています。 (多くのブラウザはフレーム内の文書の
URI を常時表示してはいませんから、普通の閲覧者は気付きにくいのです。)

[15] フレーム内の文書から他者の資源にリンクする際に、
[CODE(HTMLa)[target]] を使って、あるいは使わないで、
自分のフレームの中にその資源を表示させるのは良くないことだと考える人もいます。

特に他者の資源であると明記しない場合には >>14 と同じような問題となり得ますし、
意図的に他者の資源を自分のものと見せかけると法的な責任を問われる虞もあります。

* 閲覧文脈の選択

[144] 次の場面では、 [[navigate]] のための[DFN[[[閲覧文脈]]の選択]]が行われます。

[FIG(list)[
- [131] [[ハイパーリンクをたどる]]処理 [SRC[>>130]]
-- [CODE(HTMLe)@en[[[a]]]] [[要素]]、[CODE(HTMLe)@en[[[area]]]] [[要素]]
- [166] [[フォームの提出]] [SRC[>>165]]
- [172] [CODE(JS)@en[[[window.open]]]] (やそれに相当する [CODE(JS)@en[[[document.open]]]])
]FIG]

;; [188] [[プラグイン]]からの [[navigate]] の指示を行う [[API]]
が提供されている場合、それも同様の選択を行うかもしれません。

@@ SVG、[[MathML]]

** 入出力

[149] これらの処理では、[[著者]]の指定、[[利用者]]の個別の指定、
[[利用者]]の事前の設定や[[利用者エージェント]]の実装方針と現在の[[利用者エージェント]]の状態に基づき、
[[navigate]] が行われるべき適当な[[閲覧文脈]]を決定します。

[150] その結果、[[閲覧文脈]]を1つ選択するか、どの[[閲覧文脈]]も選択しないかのどちらかに決まります。
[[閲覧文脈]]は、既存のものかもしれませんし、新たに作成するものかもしれません。
また付随して [[navigate]] の[[引数]]の
[FIG(list)[
- [VAR[[[置換有効]]]]フラグ
- [VAR[[[利用者]]が[[閲覧文脈]]を明示した]]フラグ
]FIG]
... を設定することがあります。

;; [208] [[閲覧文脈の選択]]で[VAR[[[置換有効]]]]フラグが[[真]]に設定されるのは、
新しい[[閲覧文脈]]が作られた場合です。
[[仕様書]]では、
[[ハイパーリンクをたどる]]の定義ではそれを使って分岐しています (が不完全です (>>173))。
[[フォームの提出]]や [CODE(JS)@en[document.open]] では新しい[[閲覧文脈]]が開かれた場合、
というような分岐になっていて、一貫していません。

[196] 判断の起点となる「現在の[[閲覧文脈]]」とは、
[CODE(JS)@en[[[window.open]]]] (相当) では[[入口設定群オブジェクト]]の[[有責閲覧文脈]]
[SRC[>>231]]、それ以外では[[要素]]の[[閲覧文脈]]です。

*** 著者の指示

[197] [[著者]]は、 [CODE(HTMLa)@en[[[target]]]] [[属性]]、
[CODE(HTMLa)@en[[[formtarget]]]] [[属性]]、
[CODE(JS)@en[[[window.open]]]] [[メソッド]] (相当) 
の第2引数によってどの[[閲覧文脈]]を選択するべきかを記述できます。

;; [198] 歴史的には、 [[HTTP]] [CODE(HTTP)@en[[[Window-Target:]]]]
[[ヘッダー]]も存在していました。

[121] [[砂箱化]][DEL[や [CODE(HTMLa)@en[[[seamless]]]]]] であるか否かも影響を与えます。

[205] [[ハイパーリンク]]の場合、[DEL[[[リンク型]] [CODE(HTML)@en[[[sidebar]]]] が指定されているかどうかや、]]
[[リンク型]] [CODE(HTML)@en[noreferrer]] や [CODE[noopener]] が指定されているかどうか
([VAR[noopener]]) も、
挙動に影響を与えます。

[206] [CODE(JS)@en[[[window.open]]]] (相当) の場合、
その第3引数を[[字句化][featuresの字句化]]して得られる[VAR[[[字句化済機能群]]]]が新たに開かれる[[閲覧文脈]]の表示方法に影響を与えます。

*** 利用者の指示

[23] [[利用者]]が[[利用者エージェント]]にどのように指示したり、
[[設定][Webブラウザー利用者の設定]]したりする (できる)
のかは、[[利用者インターフェイス]]や[[プラットフォームの慣習]]に属する領域なので、
仕様書では明確には規定されていません。

[125] 一般的には、個別の [[navigate]] の指示では次のような選択肢が[[利用者]]に提示されます。
[FIG(list)[
- [152] 特に方法を指定しない
- [153] 現在の[[閲覧文脈]]を選択する
- [185] 他の[[閲覧文脈]]を選択する
- [164] 新しい[[閲覧文脈]]を選択する
-- [170] 新しい[[窓]]を開く
-- [183] 新しい[[タブ]]を開く
]FIG]

;; [184] 通常の[[クリック]] (相当) では方法を指定しなかったものとみなし、
それ以外は[[文脈メニュー]]として表示可能としたり、 [KBD[[[Ctrl]]]]
や [KBD[[[Shift]]]] などの[[修飾キー]]との併用で適用したりするのが普通です。
[[リンク]]等を他の[[閲覧文脈]]に [[DnD]] することで、その[[閲覧文脈]]を選択できるのも一般的です。

;; [186] 異なる動作モード ([[private browsing]] や[[利用者プロファイル]]など)
で開く選択肢を提供する [[Webブラウザー]]もあります。
[[閲覧文脈]]同士が相互にアクセスできない、異なる[[利用者エージェント]]と考えるべきものですから
([[private browsing]] 参照)、本項の[[閲覧文脈]]の選択や [[navigate]]
とも異なる処理と考えるべきでしょう。

;; [240] こうした指示の手段は、通常の[[ハイパーリンク]]だけでなく、
[[フォームの提出]]でも提供されるかもしれません。
[CODE(JS)@en[[[window.open]]]] (相当) の実行時にも提供できます [SRC[>>231]]。

[EG[
[234] 例えば [KBD[[[Ctrl]]]] + [[クリック]]で新しい[[タブ]]で[[リンク]]を開く[[利用者エージェント]]は、
[CODE[[[onclick]]]] 時に [KBD[[[Ctrl]]]] が押されていれば、
そこから呼び出された [CODE(JS)@en[[[window.open]]]] において新しい[[タブ]]の[[閲覧文脈]]が指示されたとみなすことができます [SRC[>>231]]。
]EG]

;; [187] [[スクリプト]]からの [CODE(JS)@en[[[window.open]]]] や[[ハイパーリンク]]の
[CODE(DOMm)@en[[[click]]]] など、[[修飾キー]]による指示は適用できても[[メニュー]]からの選択は原理的に行えない場合もあります。

[190] [[ポップアップ]] ([[スクリプト]]による新しい[[最上位閲覧文脈]]を開く操作)
は、濫用された歴史から、厳しく制限されるのが普通になっています。
[[スクリプト]]によらず[[著者]]の指定に従い[[利用者]]の操作を経て新たな[[最上位閲覧文脈]]を開くものも、
必要以上に使われている (と感じる[[利用者]]が少なくない) ため、 
[[Webブラウザー]]や[[ブラウザー拡張]]が無効化する機能を提供する場合があります。

[118] [[ポップアップ]]を有効にするか、無効にするか設定できるのが一般的です。
既定の状態では有効となるのが普通です。
[SEE[ [[ポップアップ抑制]] ]]

;; この[[設定][Webブラウザー利用者の設定]]は、 [[allowed to show a popup]] な場合に適用されるものです。
つまり[[利用者]]の動作があった上での[[ポップアップ]]に関するものです。
[[allowed to show a popup]] でない ([[利用者]]の動作によらない)
場合はそもそも[[ポップアップ]]に至りません。

[98] ([[利用者]]の明示的な指示によらずに) 新しい[[閲覧文脈]]を開く場合、
次のいずれの動作とするか、[[利用者が設定][Webブラウザー利用者の設定]]できることがあります。

[FIG(list)[
- [99] 新しい[[閲覧文脈]]を開く (通常はこれが既定値となっています)
-- [100] 新しい[[窓]]を開く
-- [115] 新しい[[タブ]]を開く
- [110] 現在の[[閲覧文脈]]で開く (この選択肢を提供することが[RUBYB[推奨]@en[encourage]]されています [SRC[>>20]])
- [116] 何も開かない
]FIG]

;; [117] ただし[[砂箱化]]のために基本的に何も開かないべき場合 (>>96) もあります。
その場合であっても新しい[[閲覧文脈]]や現在の[[閲覧文脈]]を使う選択肢を提示できます
(それが既定値であっては[['''なりません''']] [SRC[>>20]])。

[119] [[ポップアップ]]が拒否された旨の表示 (>>95) がある場合、
そこから[[利用者]]が有効に[[設定][Webブラウザー利用者の設定]]変更したり、手動で [[navigate]] したりできるかもしれません。
(その [[navigate]] は元の処理の続きではなく、新たに実行することとなります。)

;; [191] >>117 のような他の[[閲覧文脈]]の利用や >>119 のような手動の [[navigate]]
は、元の[[著者]]が想定していた[[砂箱化]]の指定を無視することになるかもしれず、
注意が必要です。 ([[砂箱化]]も参照。)

[192] [[ポップアップ]]の挙動の[[設定][Webブラウザー利用者の設定]]は、[[利用者エージェント]]全体のものだけでなく、
>>119 などにより[[閲覧文脈]]ごと、[[文書]]ごとなどの単位で指定できるかもしれません。

** 選択処理

[179] [[閲覧文脈]]の選択は、次のようにして行われます。
[FIG(steps)[
= [132] [[利用者]]が新しい[[閲覧文脈]]を作ることを指示した場合、
== [133] [VAR[noopener]] について[[閲覧文脈の作成]]を行い、選択します [SRC[>>130, >>231]]。 (>>200 も参照。)
== [134] [[one permitted sandboxed navigator]] を、現在の[[閲覧文脈]]に設定します
[SRC[>>130, >>231]]。
== [176] [[置換有効]]フラグを、[[真]]に設定します [SRC[>>231]]。
= [135] それ以外で、[[利用者]]が特定の[[閲覧文脈]]を使うよう指示した場合、
== [136] その[[閲覧文脈]]を選択します [SRC[>>130, >>165, >>231]]。
== [122] [VAR[[[利用者]]が[[閲覧文脈]]を明示した]]フラグを、[[真]]に設定します。
= [181] それ以外で、[[要素]]や[[メソッド]]の指示があれば、それにより選択します (>>168)。
= [182] それ以外の場合、[[文書]]の指示により選択します (>>147)。
]FIG]

;; [167] [[フォームの提出]]に関して、仕様書は[[利用者]]に新しい[[閲覧文脈]]を作成することを指示された場合について明記していません。

;; [173] 仕様上、[[ハイパーリンクをたどる]]場合で[[利用者]]が新しい[[閲覧文脈]]を作らせた場合に[[置換有効]]フラグ (>>176) は設定されないようですが、
意図的にそうしているのかは不明です。不具合のようにも思われます。

[207] [[利用者]]が新しい[[閲覧文脈]]を作成することを指示した場合、
[[著者]]の指示していた場合 (>>18) の細かな挙動の違いは生じないことになります。
特に、 ([[著者]]の指示の有無に関わらず) 作成される[[閲覧文脈]]はただの[[最上位閲覧文脈]]で、
[[補助閲覧文脈]]とはなりません ([CODE(JS)@en[window.opener]] を持ちません)。

** 要素からの選択

[168] [[要素]]や[[メソッド]]の指示による選択は、次の通り行います。
[FIG(steps)[
= [137] [[ハイパーリンクをたどる]]処理では、[[ハイパーリンク]]の[[要素]]について、
== [175] 
[FIG(list)[
- [145] [CODE(HTMLe)@en[[[a]]]] [[要素]]や [CODE(HTMLe)@en[[[area]]]] [[要素]]の場合で、
- [146] [CODE(HTMLa)@en[[[target]]]] [[属性]]がある場合、
]FIG]
=== [138] [[属性値]]に[[閲覧文脈名から閲覧文脈を選ぶ規則]]を適用します。 [SRC[>>130]]
= [169] [[フォームの提出]]では、[[提出者]]の[[要素]]について、
== [158] [[要素]]が[[提出ボタン]]で、 [CODE(HTMLa)@en[[[formtarget]]]] [[属性]]がある場合、
=== [159] [CODE(HTMLa)@en[[[formtarget]]]] [[属性値]] [SRC[>>155]] 
に[[閲覧文脈名から閲覧文脈を選ぶ規則]]を適用します。 [SRC[>>165]]
== [160] [[フォーム所有子]]があり、それに [CODE(HTMLa)@en[[[target]]]] [[属性]]がある場合、
=== [161] [CODE(HTMLa)@en[[[target]]]] [[属性値]] [SRC[>>155]]
に[[閲覧文脈名から閲覧文脈を選ぶ規則]]を適用します。 [SRC[>>165]]
= [174] [CODE(JS)@en[[[window.open]]]] (相当) では、
== [177] 第2引数 (省略時や[[空文字列]]時は [CODE(HTML)@en[[[_blank]]]])
に、[[閲覧文脈名から閲覧文脈を選ぶ規則]]を適用します。 [SRC[>>231]]
]FIG]

;; [151] [CODE(HTMLe)@en[[[link]]]] [[要素]]では、 [CODE(HTMLa)@en[[[target]]]]
[[属性]]があっても無視されます。

** 文書からの選択

[147] [[文書]]の指示による選択は、次のようにしなければ[['''なりません''']]。
[FIG(steps)[
= [162] [F[節点文書]]の[[子孫]]で [CODE(HTMLa)@en[[[target]]]] [[属性]]のある
[CODE(HTMLe)@en[[[base]]]] [[要素]]がある場合、
== [163] 該当する最初の [CODE(HTMLe)@en[[[base]]]] [[要素]]の [CODE(HTMLa)@en[[[target]]]]
[[属性]] [SRC[>>130, >>155]] に[[閲覧文脈名から閲覧文脈を選ぶ規則]]を適用します。
[SRC[>>130, >>165]]
= [180] それ以外の場合、[F[節点文書]]の[F[閲覧文脈]]とします [SRC[>>130, >>165, >>155, >>20]]。
]FIG]

;; [148] [CODE(JS)@en[[[window.open]]]] (相当) の処理では、
必ず[[メソッド]]の指定による処理が行われるので、こちらの選択方法が適用されることはありません。

;; [157] [[HTML Standard]] では、[[要素]]の[DFN[[RUBYB[[[対象]]]@en[target]]]]
[SRC[>>155]] を使って規定されています。
[[対象]]とは、選択時に適用される [CODE(HTMLa)@en[[[target]]]]/[CODE(HTMLa)@en[[[formtarget]]]]
[[属性値]] (なければ[[空文字列]]) のことです。

** 名前の解決

[18] [DFN[[RUBYB[[[閲覧文脈名から閲覧文脈を選ぶ規則]]]@en[the rules for choosing a browsing context given a browsing context name]]]] [SRC[>>20]]
とは、次のようにすることです。
[FIG(steps)[
= [46] [[閲覧文脈名]]が[[空文字列]]なら、
== [57] 現在の[[閲覧文脈]]を選択します [SRC[>>20]]。
= [55] [[閲覧文脈名]]が [[ASCII大文字・小文字不区別]]で [CODE(HTML)@en[[[_self]]]] なら、
== [58] 現在の[[閲覧文脈]]を選択します [SRC[>>20]]。
= [60] [[閲覧文脈名]]が [[ASCII大文字・小文字不区別]]で [CODE(HTML)@en[[[_parent]]]] なら、
== [62] [[親閲覧文脈]] (なければ現在の[[閲覧文脈]]) を選択します [SRC[>>20]]。
= [63] [[閲覧文脈名]]が [[ASCII大文字・小文字不区別]]で [CODE(HTML)@en[[[_top]]]] なら、
== [64] [[最上位閲覧文脈]] (なければ現在の[[閲覧文脈]]) を選択します [SRC[>>20]]。
= [84] 
[FIG(list)[
- [85] [[閲覧文脈名]]が [[ASCII大文字・小文字不区別]]で [CODE(HTML)@en[[[_blank]]]] ''以外''で、
- [86] 同名の[[閲覧文脈]]が存在し、
- [87] 現在の[[閲覧文脈]]と [[familiar with]] 関係にあり、
- [88] 両者に十分関係性があると[[利用者エージェント]]が判断するなら、
]FIG]
== [89] その[[閲覧文脈]]を選択します [SRC[>>20]]。
==- [90] 複数候補があれば、何らかの一貫した方法
(開かれたのが最直近、[[焦点]]が当たったのが最直近、最も関係が深い、など)
でいずれかを選ぶ[['''べきです''']]。 [SRC[>>20]]
= [93] 
[VAR[現在]]の
[F[[CODE[WindowProxy]]]]
の
[F(ss)[Window]]
の[F[過渡活性化]]が[[偽]]で、
[[ポップアップ]]しないよう[[利用者エージェント]]が設定されている場合、
== [94] どの[[閲覧文脈]]も選択しません [SRC[>>20]]。
== [95] [[ポップアップ]]がブロックされたことを[[利用者]]に通知して構いません [SRC[>>20]]。
= [114] そうでない場合、[[利用者]]の設定に基づき、
新しい[[閲覧文脈]]を選ぶか、現在の[[閲覧文脈]]を選ぶか、[[閲覧文脈]]を選ばないかを決めます [SRC[>>20]]。
=- [96] 現在の[[閲覧文脈]]の[[活性文書]]の[[活性砂箱化フラグ集合]]に [[sandboxed auxiliary navigation browsing context flag]] が設定されている場合は、
原則として[[閲覧文脈]]を選ばないこととします。 [SRC[>>20]]
=- [126] その場合も他の選択肢を[[利用者]]が選べるようにしても構いません。
しかしそれが既定値であっては[['''なりません''']]。 [SRC[>>20]]
= [101] 新しい[[閲覧文脈]]を作成する場合、
== [123] [VAR[noopener]] について[[閲覧文脈の作成]]を行い[[補助閲覧文脈]]を作成し、選択します [SRC[>>20]]。 (>>200 も参照。)
これを[VAR[閲覧文脈]]とします。
== [124] [F[[[opener閲覧文脈]]]]を、現在の[[閲覧文脈]]に設定します [SRC[>>20]]。
== [103] 指定された[[閲覧文脈名]]が [[ASCII大文字・小文字不区別]]で [CODE(HTML)@en[[[_blank]]]] の場合や、
現在の[[閲覧文脈]]の[F[[[活性文書]]]]の[F[[[活性砂箱化フラグ集合]]]]に [F[[[sandboxed auxiliary navigation browsing context flag]]]] が設定されている場合は、
=== [194] [F[[[閲覧文脈名]]]]を、[[空文字列]]に設定します [SRC[>>20]]。
== [97] それ以外の場合は、
=== [195] [F[[[閲覧文脈名]]]]を、指定された値に設定します [SRC[>>20]]。
== [111] [VAR[フラグ集合]]を、現在の[[閲覧文脈]]の[F[活性文書]]の[F[活性砂箱化フラグ集合]]に設定します。 [SRC[>>20]]
== [142] [VAR[フラグ集合]]の[F[砂箱化navigate閲覧文脈フラグ]]
の [F[sandboxed navigation browsing context flag]] が設定されている場合、
=== [143] [VAR[閲覧文脈]]の [F[one permitted sandboxed navigator]] を、
現在の[[閲覧文脈]]に設定します。 [SRC[>>20]]
== [213] [VAR[フラグ集合]]の [F[sandbox propagates to auxiliary browsing contexts flag]]
が設定されている場合、
=== [112] [VAR[フラグ集合]]で設定状態にある各[VAR[フラグ]]について、
==== [113] [VAR[閲覧文脈]]の[F[ポップアップ砂箱化フラグ集合]]の[VAR[フラグ]]を設定します。
[SRC[>>20]]
== [193] [[置換有効]]フラグを、[[真]]に設定します。 [SRC[>>130, >>165, >>231]]
== [244] [[補助閲覧文脈]]の場合、
=== [224] [VAR[字句化済機能群]]について、
[CITE[[[CSSOM View]]]] の[[規定]]を適用します [SRC[>>231, >>243]]。
これにより[[窓]]の大きさなどが決まります。
== [220] [VAR[閲覧文脈]]の [F[script-closable]] の[[スクリプト]]が作成したか[[利用者]]が作成したかの情報を保存します。
= [106] 現在の[[閲覧文脈]]を再利用する場合、
== [107] 現在の[[閲覧文脈]]を選択します [SRC[>>20]]。
= [108] [[閲覧文脈]]を選ばない場合、
== [109] どの[[閲覧文脈]]も選びません [SRC[>>20]]。
]FIG]

[127] 関連性の決定 (>>88) をどのように行うのか、明記はされていません。

[91] [CODE(DOMi)@en[Window]] [[オブジェクト]]の[[名前付き特性]]や配列風アクセスが可能なことを考えると、
[[子供閲覧文脈]]を優先して選択するべきと思われます。

[129] 自身の[F[opener閲覧文脈]]を除く、
他の[[最上位閲覧文脈]]に属する[[入れ子閲覧文脈]]は、関連性が低いかもしれません。
[[利用者]]の混乱を避けるため、そのような[[入れ子閲覧文脈]]の選択は認めるべきではないかもしれません。

[92] 自身またはその[[先祖]]や[[子孫]]の関係にある[[閲覧文脈]]が[[opener閲覧文脈]]となった[[補助閲覧文脈]]を除き、
[[最上位閲覧文脈]]を選択するのも不適切かもしれません。

[128] [CODE(HTMLa)@en[[[sandbox]]]] からの[[ポップアップ]] (>>96) では[[砂箱化フラグ集合]]が引き継がれることになっていますが、
既存の[[閲覧文脈]]を再利用する場合適用されないことになります。
危険かもしれないので、関連しないと判断するべきなのかもしれません。

** 次の処理

[154] [CODE(HTMLe)@en[[[a]]]] [[要素]]や [CODE(HTMLe)@en[[[area]]]]
[[要素]]の[[活性化動作]]から[[ハイパーリンクをたどる]]場合で、
どの[[閲覧文脈]]も選ばれなかった場合には、
[[ハイパーリンクをたどる]]手順はなにもしないで終了します。

[HISTORY[
それが[[スクリプト]]内からの呼び出しの場合には、 [CODE(DOMe)@en[[[InvalidAccessError]]]]
[[例外]]が[[投げられます]]。

[171] [[フォームの提出]]の際に[[閲覧文脈]]が選択されなかった場合にどうなるのかは、定かではありません。

[178] [CODE(JS)@en[[[window.open]]]] (相当) で[[閲覧文脈]]が選ばれなかった場合、 
[CODE(JS)@en[[[InvalidAccessError]]]] [[例外]]が[[投げられます]]。

[DEL[
[189] [CODE(HTMLa)@en[[[seamless]]]] の扱いに関する処理は、本規則による選択ではなく、
その後の [[navigate]] 内で行われます。本規則による選択の後新たな[[タスク]]で
[[navigate]] を実行する場合もあるため、それまでに [CODE(HTMLa)@en[[[seamless]]]]
に関する状況が変わっているかもしれません。

;; [[navigate]] 参照。
]DEL]
]HISTORY]

** 新しい閲覧文脈のレンダリング

@@ [139] XXX

[217] 新しい[[閲覧文脈]]であれ、既存の[[閲覧文脈]]であれ、
他の[[窓][窓 (Web)]]に[[リンク先]]を開いた場合、
その[[窓][窓 (Web)]]に表示と[[フォーカス]]が移ることが期待されています。
特に[[スマートフォン]]のような単一の[[窓]]しか同時に表示できない[[プラットフォーム]]では、
裏側で[[閲覧文脈]]が開いていても[[利用者]]が気づきません。

[218] ただし、[[Webブラウザー]]によっては、[[利用者]]が明示的に新しい[[閲覧文脈]]に[[フォーカス]]を移動しないオプションを提供していることがあります。
[[リンク集]]ページから多数の[[リンク先]]を順に開いていきたい時に便利です。

** 新しい閲覧文脈が閉じられる

[245] 
[[閲覧文脈の選択]]によって新しい[[閲覧文脈が作成][閲覧文脈の選択]]されたにも関わらず、
それが閉じられることがあります。
[[利用者]]から見ると、
新しい[[窓]]や[[タブ]]が一瞬開いて、すぐに閉じられるように見えることがあります。
(実装によってはその一瞬を表示しないこともあるかもしれません。)

[246] 
具体的には、新しい[[閲覧文脈]]で [[navigate]] したにも関わらず、
[[navigate]] から[[ダウンロード]]に切り替わると、
何も表示するものがなくなってしまうので、
その[[閲覧文脈]]は閉じられることがあります.

[247] 
[[Firefox]]
は、
[CODE[target]] [[属性]]で新しい[[タブ]]が開かれて[[ダウンロード]]に移行すると、
その[[タブ]]を閉じるようです。
しかし[[利用者]]が[[リンク]]の[[文脈メニュー]]から新しい[[タブ]]を開き、
その[[リンク先]]が[[ダウンロード]]に移行した場合には、
その[[タブ]]を開いたままになります。
開かれたままの[[タブ]]は、
[[アドレスバー]]に[[リンク先]]の [[URL]]
が表示されるものの何も表示されない特殊な状態になります。

;; [248] その状態で[[開発ツール]]のコンソールによると
[CODE[location.href]] は [CODE[about:blank]]
なのですが、
通常の [CODE[about:blank]] とは違って [[viewport]] には何も[[レンダリング]]されていません。
([CODE[about:blank]] に[[navigate]]したときと背景色が違い、
[[右クリック]]しても[[文脈メニュー]]が開かず、
何かを[[ドラッグアンドドロロップ]]しても何も反応しない。)
[TIME[2022-11-11T03:52:01.700Z]]


* 関連

[219] [[閲覧文脈の選択]]よりも後に、 [[navigate]] 内で [[allowed to navigate]]
の検査があります。 [CODE(HTML)@en[[[sandbox]]=[[allow-top-navigation]]]]
などの指定はそちらで反映されます。

* 歴史

** 誕生

[24]
[CODE(HTMLa)@en[[[target]]]] [[属性]]は、
[[フレーム]]機能の一部として [[Netscape Navigator]] 2
で導入されました。

@@ どの[[要素]]に? [[Windows]] 版以外では?

[40]
[CITE[New HTML 3.0 Proposals]] ([CODE[2007-02-26 21:59:55 +09:00]] 版) <http://wp.netscape.com/assist/net_sites/new_html3_prop.html#Target>

[249] 
[CITE[New HTML 3.0 Proposals]], [TIME[2024-08-15T14:44:47.000Z]], [TIME[1997-06-14T03:22:19.453Z]] <http://web.archive.org/web/19970613222237/http://www82.netscape.com/assist/net_sites/new_html3_prop.html>

[41]
[CITE[How to target a link to a window]] ([CODE[2007-02-28 00:30:29 +09:00]] 版) <http://web.archive.org/web/19970613222251/www82.netscape.com/eng/mozilla/2.0/relnotes/demo/target.html>

[250] 
[CITE[How to target a link to a window]], [TIME[2024-08-16T05:43:33.000Z]], [TIME[1997-06-13T22:27:49.549Z]] <http://web.archive.org/web/19970613222251/http://www82.netscape.com/eng/mozilla/2.0/relnotes/demo/target.html>


** [CODE(DOMi)@en[Window-Target:]] ヘッダー (HTTP)

[2] HTML で言うところの base 要素の target 属性的な HTTP 頭欄。
Netscape Navigator 2.0 以降の独自拡張。

[EG[
[3] 
[PRE(HTTP code)[
Window-Target: _top
]PRE]
]EG]

** 標準化

[25] [[HTML 4]] で、[[非推奨]]ながら
[CODE(HTMLe)@en[[[a]]]],
[CODE(HTMLe)@en[[[area]]]],
[CODE(HTMLe)@en[[[base]]]],
[CODE(HTMLe)@en[[[form]]]],
[CODE(HTMLe)@en[[[link]]]]
に [CODE(HTMLa)@en[[[target]]]] が追加されました。

[19] HTML 4.0 仕様書本文の [CODE(HTMLe)[[[frame]]]] 要素と [CODE(HTMLe)[[[iframe]]]]
要素の定義には誤って [CODE(HTMLa)[target]] 属性の定義への参照が含まれていました。

- [CSECTION@en[A.1.2 Errors that were corrected]]
<IW:HTML4:"appendix/changes.html#h-A.1.2">

[26] [[XHTML m12n]] では、
[[対象属性]][[モジュール]]という独立した[[モジュール]]が定義されました。

[27] [[XHTML 1.1]] [[1e]] 
は[[対象属性]][[モジュール]]を組み込みませんでした。

[[#comment]]


*** 暗黒時代

[28] [CODE(HTMLa)@en[[[target]]]] が[[非推奨]]となり、
[[厳密DTD]] や [[XHTML 1.1]] に含まれませんでしたが、
既に下火になっていた[[フレーム]]はともかく、
[CODE(HTML)@en[[CODE(HTMLa)@en[[[target]]]]=[[_blank]]]]
への需要は高く、形式的な[[妥当性]]を得つつも
[CODE(HTMLa)@en[[[target]]]] を使いたいという要求が少なくありませんでした。

[29] [[妥当性]]と [CODE(HTMLa)@en[[[target]]]]
の両方を求める人たちは、 [[JavaScript]] と [[DOM]]
で、 [CODE(DOMa)@en[[[target]]]] や
[CODE(DOMm)@en[[[open]]]] などを用いて
[CODE(HTMLa)@en[[[target]]]] を実現しようとするなどの本末転倒な[RUBY[回避法] [ごまかし]]に走り出しました。

[30] >>29 のような手法は、本来[[宣言的]]に記述できるものをあえてわかりにくくすることで、
[[アクセス可能性]]や[[利用可能性]]に劣るといわれています。

[31] このような背景から、 [CODE(HTMLa)@en[[[target]]]]
の[Q[復活]]を求める意見もあります。

*** 再評価

[75] [CODE(HTMLa)@en[[[target]]]] は [[HTML]] に不適当との考えから90年代末に排除の方向へと進みましたが、
代替がなかったために >>28 のように非本質的な書き換えが横行するなど、事態はむしろ悪化していました。
意味的潔癖性を追求するよりはむしろ実利も含めて総合的に判断するべきとの考えが支持されるようになり、
2000年代の終わりには一部の原理主義者を除いて完全に容認する方向へ進んでいます。

**** XHTML2

[32]
[[XHTML 2.0]] では、 [[XFrames]] との関係もあって、
[CODE(HTMLa)@en[[[target]]]] が[Q[復活]]しました。

[73] [[XHTML2]] の最初の[[作業原案]]で、[[ハイパーテキスト属性集成]]に属し、
実質すべての [[XHTML2]] [[要素]]で利用できるものとして規定されるようになりました。

;; [CITE@en[- XHTML Attribute Collections]] ([TIME[2002-08-06 00:20:43 +09:00]] 版) <http://www.w3.org/TR/2002/WD-xhtml2-20020805/mod-attribute-collections.html#adef_attribute-collections_target>

[71] [CITE@en[target attribute]] ([[Shane McCarron]] 著, [TIME[2009-01-25 04:02:09 +09:00]] 版) <http://lists.w3.org/Archives/Public/public-xhtml2/2009Jan/0077.html>

>@target is defined in the 
hypertext attributes module.  I believe this should be moved into a 
target attribute module so that it can be more easily omitted from 
languages that do not want to support it.

**** XHTML1

[34] [[XHTML 1.1]] には元々 [CODE(HTMLa)@en[[[target]]]] [[属性]]は含まれていませんでしたが、
旧 [[HTML WG]] (後の [[XHTML2 WG]]) は [[XHTML 1.1 2e]] [[WD]]
で[[対象属性モジュール]]を「復活」させました。

;; ただし、旧 [[HTML WG]] の仕様書は例によって杜撰で、追加されたのは [[DTD]] 実装だけで
[[XML Schema]] 実装や[[文書型]]の定義には含まれていませんでした。

[35]
更に [[XHTML Basic 1.1]] [[WD]]
でも[[対象属性モジュール]]が「復活」させられました。

[36] しかし、 [[XHTML Basic]] の主要な適用対象である[[携帯電話]]の業界は、
[CODE(HTMLa)@en[[[target]]]] [[属性]]は[[携帯電話]]の 
[[Webブラウザ]]では実装できない機能だとして >>35 に反発しました。

[74]
結局 [[XHTML2 WG]] (旧 [[HTML WG]]) は [[XHTML Basic 1.1]] 
が[[勧告]]に至るまでに次のような注記が追加されることで反発を抑えました。

- [CODE(HTMLa)@en[[[target]]]] [[属性]]は[[フレーム]]、複数[[窓]]、[[タブ]]など[RUBYB[[[外部環境]]]@en[external environment]]に束縛するための一般的なフックとして設計されている
-- 外部環境が利用できない[[利用者エージェント]]では [CODE(HTMLa)@en[[[target]]]] [[属性]]を無視してもよい
-- 束縛された外部環境がある時は [CODE(HTMLa)@en[[[target]]]] [[属性]]の適合性要件は各外部環境で定義される
- [[著者]]は[[利用者エージェント]]の [CODE(HTMLa)@en[[[target]]]] [[属性]]に注意する必要がある
-- 外部環境の束縛の有無、利用可能な資源の制約、アプリケーションや利用者の設定、実装依存の設計方針などに依存する
-- 外部環境適合性が存在しないときは [CODE(HTMLa)@en[[[target]]]] [[属性]]に依存しないことを推奨する
- 実装依存の [CODE(HTMLa)@en[[[target]]]] [[属性]]の用法は[[相互運用性]]の妨げとなりかねないことに注意されたい

;; [CITE[XHTML™ Basic 1.1]] ([TIME[2008-07-27 02:02:25 +09:00]] 版) <http://www.w3.org/TR/2008/REC-xhtml-basic-20080729/#s_xhtmlmodules>

[76] >>74 の注記は一見普通のことを言っているように見えますが、よくよく考えてみるとまったく無茶苦茶です。
- そもそもこの記述は [[XHTML Basic]] にまったく依存していないのだから、 
[[XHTML m12n]] あるいは [[HTML4]] の改訂によって追加するべき注意なのではないか
-- 実際、後に [[XHTML 1.2]] [[ED]] にもコピペされている
- 「一般的なフックとして設計されている」という記述は事実なのかどうか
-- 少なくても [[HTML4]] にはそんなことは書かれていない
- 適合性に関する記述が「Note」として記述されているが、仕様書の作法としてありなのかどうか
-- たしかに Note は informative との記述はどこにもないが、 normative とも明記されていないし、
Note は informative だといっている仕様書もあるから、少なくても confusing ではある
- [[適合性]]が[[利用者エージェント]]に依存するなんて態度でいいのかどうか
- [[著者]]にとっても[[実装者]]にとっても「注意しろ」としか書かれていない仕様書に一体なんの意味があるのか
- そもそも [[XHTML1]] シリーズは[[クライアント]]の環境に合わせた[[プロファイル]]を作ることによって
[[device independence]] を実現するのが方針ではなかったのか
-- そのためにわざわざ [CODE(HTMLa)@en[[[target]]]] [[属性]]が単独の [[XHTMLモジュール]]となっているのに、
それを敢えて追加して「無視してもよい」などと注記する意味はどこにあるのか

**** HTML5

[17]
[[Web Forms 2.0]] で、
[CODE(HTMLe)@en[[[input]]]]
([CODE(HTML)@en[[[image]]]]、[CODE(HTML)@en[[[submit]]]])、
[CODE(HTMLe)@en[[[button]]]] ([CODE(HTML)@en[[[submit]]]])
に追加されました。特に[[非推奨]]との記述はありません。

[[XHTMLモジュール]]定義 ([[参考]]) では、
多[[窓]]や[[フレーム]]に対応しているときに
[CODE(HTMLa)@en[[[target]]]] [[属性]]が定義されるとされています。

[33] 
[[Ian Hickson]] は、2007年2月、 [[Web Applications 1.0]]
への [CODE(HTMLa)@en[[[target]]]] の追加について、
[CODE(HTMLe)@en[[[iframe]]]] 対応のために必要との見解を
#whatwg で示しています。

それによると、存在しない[[フレーム名]]を指定するのは[[不適合]]、
存在する[[フレーム名]]を指定するのは[[適合]]とするつもりだそうです。

** 例

[9] 単純な例 [SRC[HTML 4 16.3]]

フレーム文書:
[PRE(HTML)[
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
   "http://www.w3.org/TR/html4/frameset.dtd">
<HTML>
<HEAD>
<TITLE>A frameset document</TITLE>
</HEAD>
<FRAMESET rows="50%,50%">
   <FRAME name="fixed" src="init_fixed.html">
   <FRAME name="dynamic" src="init_dynamic.html">
</FRAMESET>
</HTML>
]PRE]

[SAMP(URI)[init_dynamic.html]]:
[PRE(HTML)[
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<TITLE>A document with anchors with specific targets</TITLE>
</HEAD>
<BODY>
...beginning of the document...
<P>Now you may advance to 
    <A href="slide2.html" target="dynamic">slide 2.</A>
...more document...
<P>You're doing great. Now on to
    <A href="slide3.html" target="dynamic">slide 3.</A>
</BODY>
</HTML>
]PRE]

ここで、 [SAMP(URI)[init_dynamic.html]] 内の2つのリンクのいずれを辿っても、
[SAMP(HTML)[fixed]] フレームは不変で、 [SAMP(HTML)[dynamic]]
フレームだけが変わります。

[13] [CODE(HTMLe)[base]] [CODE(HTMLa)[target]] の例
[SRC[HTML 4 16.3.1]]
[PRE(HTML)[
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<TITLE>A document with BASE with a specific target</TITLE>
<BASE href="http://www.mycom.com/Slides" target="dynamic">
</HEAD>
<BODY>
...beginning of the document...
<P>Now you may advance to <A href="slide2.html">slide 2.</A>
...more document...
<P>You're doing great. Now on to 
       <A href="slide3.html">slide 3.</A>
</BODY>
</HTML>
]PRE]

>>9 ではそれぞれの [CODE(HTMLe)[a]] に [CODE(HTMLa)[target]]
を指定しましたが、その文書のリンクの [CODE(HTMLa)[target]]
がすべて同じなら、 [CODE(HTMLe)[base]] でまとめて指定しておくのが便利です。

[[#comment]]


** メモ

[1] 
[PRE[
::frame ("frame-name") a {
  target: "another-frame-name";
}
]PRE]

みたいな感じのことができると、
[CODE(HTMLa)[target]] 属性もいらないし、
特定の frameset だけに依存せずに style sheet を書けるよね。
最近の CSS3 draft はどうなっているのだろう?

[21]
携帯電話業界から [[XHTML Basic 1.1]] に [CODE(HTMLa)@en[[[target]]]] を追加することへの反対が結構強いね。。。
([[名無しさん]] [WEAK[2006-08-12 15:04:21 +00:00]])

[22]
[CITE@ja[target属性の利便性 (kuruman.org > 駄的HTML改善計画)]] ([CODE[2007-02-18 00:31:14 +09:00]] 版) 
<http://kuruman.org/dateki/target>

[37]
[CITE@ja[別窓指定の理想論 (kuruman.org > Kuruman Memo)]] ([CODE[2007-02-23 02:50:28 +09:00]] 版) <http://kuruman.org/diary/2007/02/23/target-blank>
([[名無しさん]] [WEAK[2007-02-23 16:03:46 +00:00]])

[38]
[CITE@ja[target="_blank"は多数派? (kuruman.org > Kuruman Memo)]] ([CODE[2006-09-09 01:47:03 +09:00]] 版) <http://kuruman.org/diary/2007/02/24/is-target-blank-popular>
([[名無しさん]] [WEAK[2007-02-25 02:10:35 +00:00]])

[39]
[CITE[別サイトへの target="_blank" は優しいか]]
<http://pc10.2ch.net/test/read.cgi/hp/1136738511/>

おもしろい統計がでている
<http://pc10.2ch.net/test/read.cgi/hp/1136738511/834>

([[名無しさん]] [WEAK[2007-02-25 02:11:46 +00:00]])

[42]
[CITE@ja[target="_blank"によるリスクの軽減:メモランダム]] ([CODE[2007-02-22 23:32:51 +09:00]] 版) <http://elastic965.80code.com/blog/2007/02/target_blank>
([[名無しさん]] [WEAK[2007-03-08 14:00:59 +00:00]])

[43]
[CITE[まじかんと雑記: Re: target="_blank"によるリスクの軽減]] ([CODE[2007-03-08 23:00:43 +09:00]] 版) <http://magicant.txt-nifty.com/main/2007/02/re_target_blank_e80b.html>
([[名無しさん]] [WEAK[2007-03-08 14:02:18 +00:00]])

[44]
[CITE@ja-JP[無爲徒食日記 二千七年二月]] ([[眞名垣 郁夫]] 著, [CODE[2007-02-28 15:45:43 +09:00]] 版) <http://lan.rgr.jp/diary/2007/02#Twentyfive-One>
([[名無しさん]] [WEAK[2007-03-08 14:03:53 +00:00]])

[45]
<http://suika.fam.cx/~wakaba/-temp/test/dom/window/name/target-name-1.html>

[CODE(HTMLa)@en[[[target]]]] で新しい[[窓]]の[[名前]]を
([CODE(HTML)@en[newwindow]]) 指定し、
その[[リンク]]をたどって新たな[[閲覧文脈]]を作成します。

新しい[[閲覧文脈]]の[[名前]] ([CODE(JS)@en[[[window]].[[name]]]]) は 
[CODE(HTML)@en[newwindow]] となるのが自然な動作です。

[[WinIE 6]] ([[Windows XP]] [[SP2]])、[[Opera]] 9
は実際そのように動作します。
[CODE(JS)@en[[[window]].[[name]]]] は
[CODE(HTML)@en[newwindow]] になりますし、
その中の [CODE(HTMLa)@en[[[target]]]] が
[CODE(HTML)@en[newwindow]] な[[リンク]]をたどると同じ[[窓]]で開かれます。

しかし、 [[Firefox]] 1.5 は、新しい窓を新しいタブとして開く設定になっていると、
[[名前]]を持たない ([CODE(JS)@en[[[window]].[[name]]]]
が[[空文字列]]の) [[閲覧文脈]]が作られてしまいます。
新しい窓として開く設定になっていれば [[WinIE]]
や [[Opera]] と同じく [CODE(JS)@en[[[window]].[[name]]]]
は [CODE(HTML)@en[newwindow]] になります。

([[名無しさん]])

[47]
[CITE[XHTML 1.1 Modularization Anchor Element Target Attribute - www.TexaStar.com]] ([[Texastar.com WebMaster@TexaStar.com]] 著, [CODE[2007-08-14 21:17:48 +09:00]] 版) <http://www.texastar.com/tips/2004/target_blank.shtml>
([[名無しさん]])

[48]
[CITE@en[Sparanoid &#187; Blog &#187; XHTML 1.1 plus Target 1.0 and other modularizations]] ([[Sparanoid]] 著, [CODE[2007-08-14 21:24:36 +09:00]] 版) <http://sparanoid.com/blog/xhtml-11-plus-target-10-and-other-modularizations/>
([[名無しさん]])

[49]
[CITE[torresburriel.com &#187; Blog Archive &#187; A&#241;adir el m&#243;dulo target a XHTML 1.1]] ([CODE[2007-08-14 21:25:50 +09:00]] 版) <http://www.torresburriel.com/weblog/2004/04/19/anadir-el-modulo-target-a-xhtml-11/>
([[名無しさん]])

[50]
[CITE@pl[&#321;ukasz Aranowski - strona domowa (Aster, Astercity, MP3, stacje, Kolejarz, Microsoft, XHTML, zdj&#281;cia i inne...)]] ([[Lukasz Aranowski]] 著, [CODE[2007-08-14 21:28:31 +09:00]] 版) <http://www.mendel.pl/index.php?co=xhtml>
([[名無しさん]])

[51]
[CITE@pl[Do podstrony - Odsy&#322;acze - Kurs HTML]] ([[S&#322;awomir Kok&#322;owski]] 著, [CODE[2007-08-12 00:17:26 +09:00]] 版) <http://www.kurshtml.boo.pl/html/do_podstrony,odsylacze.html>
([[名無しさん]])

[52]
[CITE[net2ftp forum / Doctype]] ([CODE[2007-08-14 21:41:03 +09:00]] 版) <http://www.net2ftp.org/forums/viewtopic.php?pid=6679>
([[名無しさん]])

[53]
[CITE@en[Standards-Compliant New Windows | Accessify]] ([[Ian Lloyd, Accessify '''['''http://www.accessify.com/''']''']] 著, [CODE[2007-08-17 23:17:09 +09:00]] 版) <http://www.accessify.com/features/tutorials/new-windows/>
([[名無しさん]])

[54]
[CITE@en[XHTML 1.1 plus Target 1.0 DTD — Information]] ([CODE[2007-09-24 16:17:49 +09:00]] 版) <http://suika.fam.cx/gate/2007/schema/schema/dd9db9d3e91e5444c7741e0d0e3943b2/prop.html>
([[名無しさん]])

[56]
[CITE[Thermaglaze Double Glazing]] ([CODE[2008-03-01 12:20:27 +09:00]] 版) <http://www.thermaglaze.com/>
([CODE(MIME)@en[[[text/html]]]])

[PRE(HTML bad example code)[
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" 
 [ <!ATTLIST a target CDATA #IMPLIED> ]>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
]PRE]

([[名無しさん]])

[61]
[CITE[The target="" attribute]] ([[Ian Hickson <ian@...>]] 著, [CODE[2008-04-21 05:21:56 +09:00]] 版) <http://permalink.gmane.org/gmane.org.w3c.whatwg.discuss/13793>
([[名無しさん]])

[65]
[CITE[Lachy’s Log &#187; Blog Archive &#187; Conforming target Attribute]] ([CODE[2008-07-26 22:40:57 +09:00]] 版) <http://lachy.id.au/log/2008/04/target-attribute>
([[名無しさん]])


[66]
[CITE@ja[冬様もすなる☆日記というもの (2008年10月)]] ([[わかば]] 著, [TIME[2008-10-17 18:50:52 +09:00]] 版) <http://suika.fam.cx/~wakaba/d/d200810#d17-2>

[67] 類似の属性に、 [[SMIL]] の [CODE(XMLa)@en[[[show]]]]
[[属性]]や [[XLink]] の [CODE(XMLa)@en[xlink:[[show]]]] [[属性]]、
[[SVG]] の [CODE(XMLa)@en[[[target]]]] [[属性]]、
[[OpenDocument]] の [CODE(XMLa)@en[meta:[[target-frame-name]]]] [[属性]]があります。
[[HTTP]] には [CODE(HTTP)@en[[[Window-Target]]:]] [[頭欄]]があります。
その他 [[API]] 等で同様の役割を果たす[[引数]]等もあります。
詳しくは [CODE@en[[[FrameTarget]]]] の項を参照してください。

[68] [CITE@en[MAMA: Frames - Opera Developer Community]] ([TIME[2008-11-25 20:37:51 +09:00]] 版) <http://dev.opera.com/articles/view/mama-frames/#target>

[69] [CITE[The SMIL 3.0 Linking Modules]] ([TIME[2008-12-02 00:45:09 +09:00]] 版) <http://www.w3.org/TR/2008/REC-SMIL3-20081201/smil-extended-linking.html#adef-target>

[70] [CITE[Linking – SVG Tiny 1.2]] ([TIME[2008-12-20 02:31:29 +09:00]] 版) <http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/linking.html#AElementTargetAttribute>

[72] [CODE(HTMLa)@en[[[target]]]] は (「[[戻る]]」や「[[進む]]」や[[ハイパーリンク]]による前後の方向への「[[水平]]」な移動に対して)
「垂直ナビゲーション」を記述するものだと理解する考え方もあります。

[77] [CITE@en-GB-x-Hixie[Web Forms 2.0]]
([TIME[2009-01-05 20:07:15 +09:00]] 版)
<http://www.whatwg.org/specs/web-forms/current-work/#xhtml-module-def>

[78] [CITE@en[XFrames]]
( ([TIME[2010-12-17 00:45:08 +09:00]] 版))
<http://www.w3.org/TR/2010/NOTE-xframes-20101216/#s_links>

[79] >>78 によると、 [CODE(XMLa)@en[[[target]]]] が明示されていない場合、
その[[フレーム]]に [CODE(XMLa)@en[[[xml:id]]]] があればその[[フレーム]]、
なければ全体 ([CODE(HTML)@en[[[_top]]]]? その [[XFrames]] [[文書]]の最上位?)
が指定されたような動きになるようです。

[80] [CITE@en[WICD Core 1.0]]
( ([TIME[2010-08-17 16:51:00 +09:00]] 版))
<http://www.w3.org/TR/WICD/#child-documents>

[81] [CITE@en[Touch Events]]
( ([TIME[2013-10-12 10:35:42 +09:00]] 版))
<https://dvcs.w3.org/hg/webevents/raw-file/v1/touchevents.html#widl-Touch-target>

[82] [CITE[New HTML 3.0 Proposals]]
( ([TIME[2014-04-07 08:07:57 +09:00]] 版))
<http://web.archive.org/web/19970806103517/http://www31.netscape.com/assist/net_sites/new_html3_prop.html>

[83] [CITE[Welcome to Netscape Navigator Version 2.0]]
( ([TIME[2014-04-07 08:48:39 +09:00]] 版))
<http://web.archive.org/web/20030202175634/http://wp.netscape.com/eng/mozilla/2.0/relnotes/windows-2.0.html#Images>

[210] [CITE@en[Add an 'allow-popups-to-escape-sandbox' sandboxing token · whatwg/html@955fbaa]] ([TIME[2015-09-10 00:18:19 +09:00]] 版) <https://github.com/whatwg/html/commit/955fbaa>

[211] [CITE@en[Add a 'noopener' link attribute by mikewest · Pull Request #290 · whatwg/html]] ([TIME[2015-11-12 22:14:09 +09:00]] 版) <https://github.com/whatwg/html/pull/290>

[212] [CITE@en[Add a 'noopener' <link rel> keyword and window feature · whatwg/html@2992ea9]] ([TIME[2015-11-12 22:14:24 +09:00]] 版) <https://github.com/whatwg/html/commit/2992ea921bc75e44157451a37a807a8ce0b9a884>

[120] [CITE@en[Remove <iframe seamless> · whatwg/html@1490eba]]
([TIME[2016-02-04 19:20:59 +09:00]] 版)
<https://github.com/whatwg/html/commit/1490eba4dba5ab476f0981443a86c01acae01311>

[59] [CITE@en[Editorial: clarify follow a hyperlink algorithm · whatwg/html@d22a9f1]]
([TIME[2016-03-26 12:47:36 +09:00]] 版)
<https://github.com/whatwg/html/commit/d22a9f12e1cc13a77504fa6482b7ded6ba790b54>

[141] [CITE@en[Set "one permitted sandbox navigator" for all sandbox-created popups]]
([[mikewest]]著, [TIME[2016-09-13 00:53:04 +09:00]])
<https://github.com/whatwg/html/commit/ca6c42085dae650676ad90a0b852cc2e8c6feab7>

[214] [CITE@en[Allow <a>/<area> with download="" to not require user activation]]
([[domenic]]著, [TIME[2016-12-06 07:13:46 +09:00]])
<https://github.com/whatwg/html/commit/5de03c7b38e7b33a49f0dcf2bcef29e8eb9a2205>

[215] [CITE@en[Revert part of "Allow <a>/<area> with download="" to not require user…]]
([[zcorpan]]著, [TIME[2016-12-07 17:47:38 +09:00]])
<https://github.com/whatwg/html/commit/b359209579d79a713af88ecf24b9be8fb6168adf>

[216] [CODE(HTMLa)@en[href]] が [CODE(URI)@en[javascript:]] で [CODE(JS)@en[void]] を返し、
[CODE(HTMLa)@en[target]] が新しい[[閲覧文脈]]の時、
[[Firefox]] は [CODE(URI)@en[about:blank]] の新しい[[閲覧文脈]]を作り、
[[Chrome]] は作らないようです。
[TIME[2016-12-19T09:46:24.600Z]]

[209] [CITE@en[Should target=_blank and window.open('...', '_blank') be case sensitive? · Issue #2443 · whatwg/html]]
([TIME[2017-04-01 14:58:30 +09:00]])
<https://github.com/whatwg/html/issues/2443>

[221] [CITE[Intent to Deprecate and Remove: Cross-origin top navigation without a user gesture - Google グループ]]
( ([TIME[2017-04-07 02:51:26 +09:00]]))
<https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/Xi8-y4ySjA4>

[222] [CITE@en[640057 - Restrict the ability to navigate the top level context to content that is processing a user gesture, unless it is same-origin to the parent - chromium - Monorail]]
( ([TIME[2017-04-07 02:52:07 +09:00]]))
<https://bugs.chromium.org/p/chromium/issues/detail?id=640057>

[223] [CITE@en[Require a user gesture for a cross-origin frame to navigate the top-level page · Issue #16 · WICG/interventions]]
( ([TIME[2017-04-07 02:53:01 +09:00]]))
<https://github.com/WICG/interventions/issues/16>

**


[200] [[閲覧文脈の作成]]時は、
[FIG(list)[
- [201] 既存の[[閲覧文脈]]の[[スクリプト]]が作成する場合
- [202] 既存の[[閲覧文脈]]の[[リンク]]を[[利用者]]がたどっている場合
- [203] その他何らかの方法で特定の[[文書]]に関連する形の場合
]FIG]
... なら、 [DFN[[[a new start for session storage]]]] となった場合を除き、
[SRC[>>199]] それを[[セッションストレージ領域]]の処理において関係する[[文書]]としなければ[['''なりません''']]。
つまり、 [CODE(DOMm)@en[[[sessionStorage]]]] が新しい[[閲覧文脈]]に複製されることになります
(共有ではありません)。

;; [204] 「その他」とは何なのか、具体的には示されていませんし、
おそらくは本稿の[[閲覧文脈の選択]]の場合の一部が含まれていると思われます。
(>>201 と >>202 でカバーされないのは、[[利用者]]が[[フォーム提出]]する場合くらいでしょうか。)
理論上は、それ以外でも [[Webブラウザー]]の [[UI]] からの指示などで該当するものがあるかもしれません。

;; [104] >>201 と >>202 の場合どの[[文書]]か定かではありませんが、
[[リンク]]の場合はその[[節点文書]]でしょうか。
[[スクリプト]]の場合は[[入口設定群オブジェクト]]の[[有責文書]]でしょうか?
([[リンク]]を[[スクリプト]]で[[クリック]]したら?)

[140] 新しく作成される[[閲覧文脈]]は[[補助閲覧文脈]]となりますが、
既存の[[閲覧文脈]]を選択しても、それが[[補助閲覧文脈]]に変化することはありません。
つまり [CODE(JS)@en[window.open]] で得られた[[窓][窓 (Web)]]を
[CODE(JS)@en[window.close]] しても、閉じられない可能性があります。

[102] 以前は [CODE[[[rel=noreferrer]]]] の時 [[a new start for session storage]]
と定義されていましたが、現在はその定義がなくなっています [SRC[>>212]]。意図的なのかは不明です。

-*-*-

[105] [CITE@en[Make noopener stop the copying of session storage]]
([[mystor]]著, [TIME[2017-09-06 06:56:03 +09:00]])
<https://github.com/whatwg/html/commit/a68a1f712b641981d7367d78758596b21a04521c>

[225] [CITE@en[Mention `sessionStorage` copying in logic for creating auxiliary browsing contexts · Issue #2681 · whatwg/html]]
([TIME[2017-09-10 20:51:40 +09:00]])
<https://github.com/whatwg/html/issues/2681>

[226] [CITE@en[Mention sessionStorage copying in logic for creating a new browsing context by mystor · Pull Request #2832 · whatwg/html]]
([TIME[2017-09-10 20:53:25 +09:00]])
<https://github.com/whatwg/html/pull/2832>

**


[227] [CITE@en[Editorial: centralize target attribute processing]]
([[annevk]]著, [TIME[2017-09-06 16:17:43 +09:00]])
<https://github.com/whatwg/html/commit/0b31844d6dcc7ef49b3815f4f709d4c0284378f1>

[228] [CITE@en[Deduplicate finding the correct target attribute · Issue #2619 · whatwg/html]]
([TIME[2017-09-10 21:29:10 +09:00]])
<https://github.com/whatwg/html/issues/2619>

[229] [CITE@en[Editorial: centralize target attribute processing by annevk · Pull Request #3007 · whatwg/html]]
([TIME[2017-09-10 21:29:40 +09:00]])
<https://github.com/whatwg/html/pull/3007>

[230] [CITE@en[Regression fix: continue to defer to CSSOM for window.open()'s features]]
([[annevk]]著, [TIME[2017-10-10 02:35:35 +09:00]])
<https://github.com/whatwg/html/commit/e1533f1dbb7405ffc0814bbc4eaf9e8b0442c035>

[232] [CITE@en[Regression fix: tokenize features earlier in window.open()]]
([[annevk]]著, [TIME[2017-10-10 01:59:23 +09:00]])
<https://github.com/whatwg/html/commit/0ce114d22c285dd52c64c5f00b2185e4ed8edf84>

[233] [CITE@en[Window open steps use tokenizedFeatures before setting it · Issue #3107 · whatwg/html]]
([TIME[2017-10-10 22:51:10 +09:00]])
<https://github.com/whatwg/html/issues/3107>

[235] [CITE@en[Regression fix: tokenize features earlier in window.open() by annevk · Pull Request #3108 · whatwg/html]]
([TIME[2017-10-10 22:53:02 +09:00]])
<https://github.com/whatwg/html/pull/3108>

[236] [CITE@en[Normalize the target attribute to a string]]
([[annevk]]著, [TIME[2018-02-06 02:24:24 +09:00]])
<https://github.com/whatwg/html/commit/055e6b757a94bc1b77d4e07383bc8f0699005e32>

[237] [CITE@en[Browsing context name is always a string by annevk · Pull Request #3450 · whatwg/html]]
([TIME[2018-02-11 18:05:42 +09:00]])
<https://github.com/whatwg/html/pull/3450>

[238] [CITE@en[Undo changes to `target` attribute/prop on `a` element]]
([[AmeliaBR]]著, [TIME[2018-08-14 08:27:39 +09:00]])
<https://github.com/w3c/svgwg/commit/5d5cc13f57bd5275b1b97c0ddba762baf6547626>

[239] [CITE@en[Update SVGAElement to match attributes on HTMLAnchorElement by dstorey · Pull Request #409 · w3c/svgwg]]
([TIME[2018-08-15 13:28:05 +09:00]])
<https://github.com/w3c/svgwg/pull/409>

[241] [CITE@en[Remove noopener/noreferrer from tokenizedFeatures]]
([[annevk]], [TIME[2019-05-03 18:40:15 +09:00]], [TIME[2021-07-02T09:55:04.000Z]])
<https://github.com/whatwg/html/commit/c0b75ea89eaecc858ccc16b45bc81a75d4e716a7>

[242] [CITE@en[Revamp the user activation model]]
([[mustaqahmed]], [TIME[2019-12-05 04:09:23 +09:00]], [TIME[2022-01-25T07:52:27.000Z]])
<https://github.com/whatwg/html/commit/8f8c1f50158736b3cf16188377a0974a20367c8b>