<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">素片識別子</anchor>付きの <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL</anchor> へ <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">navigate</anchor> すると、
<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">素片識別子へのスクロール<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">scroll to the fragment identifier</rt></rubyb></dfn>が実行され、
その<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">素片識別子</anchor>により表される<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">viewport</anchor> に表示した状態となります。</p><section><h1>仕様書</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <cite xml:lang="en-GB-x-hixie">HTML Standard</cite> (<time>2015-04-25 04:40:19 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://html.spec.whatwg.org/#scroll-to-the-fragment-identifier">https://html.spec.whatwg.org/#scroll-to-the-fragment-identifier</anchor-external></li></ul></refs></section><section><h1>処理</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書</anchor><var>文書</var>の<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">素片へのスクロール<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">scroll to the fragment</rt></rubyb></dfn>は、
次のように行わなければ<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません</MUST> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>。</p><figure class="steps"><ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> <var>対象</var>を、<var>文書</var>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">示された部分<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">文書の示された部分</title></f>に設定します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> <var>対象</var>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>でないか、<var>対象</var>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">レンダリング中</anchor>でないなら、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> <var>文書</var>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">対象要素</f>を、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">null</anchor> に設定します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end> <var>対象</var>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><rubyb>先頭<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">top</rt></rubyb><title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">#top</title></anchor>なら、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書のはじめにスクロール</anchor>します。</li></ol></li></ol></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> それ以外なら、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> <var>文書</var>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">対象要素</f>を、<var>対象</var>に設定します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">scroll an element into view</anchor> を実行します。 <figure class="list members"><dl><dt>要素</dt><dd><var>対象</var></dd><dt><var>挙動</var></dt><dd><code>auto</code></dd><dt><var>ブロック</var></dt><dd><code>start</code></dd><dt><var>行内</var></dt><dd><code>nearest</code></dd></dl></figure></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[18]</anchor-end> <var>対象</var>について <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">focusing steps</anchor> を実行します。
ただし <var>fallback target</var> は<var>文書</var>の <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">viewport</f> とします。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="19" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[19]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">sequential focus navigation starting point</anchor> を<var>対象</var>へと移動します。</li></ol></li></ol></figure><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> <var xmlns="http://www.w3.org/1999/xhtml">対象</var>は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML文書</anchor>では<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書</anchor>の先頭か、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書</anchor>中のいずれかの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>です。
理論上は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML文書</anchor>以外ならそれ以外のもの (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">範囲</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">テキスト節点</anchor>など)
を指すこともあり得ますが、現時点では実際上はそのようなことはありません。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[21]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML Standard</anchor> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スクロール</anchor>のかわりに何らかの代替手段で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>の注意を惹きつける
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src> 形の実装も認めています。それが具体的に何を意味しているのかは不明ですが、
非<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">視覚的利用者エージェント</anchor>などを想定しているのでしょう。
しかし <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML Standard</anchor> の規定では代替手段を使う場合やそうでなくても<var>対象</var>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">レンダリング中</anchor>でない場合に<var>文書</var>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">対象要素</f>をどう扱うのか明確になっていません。
現実的には、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">視覚的利用者エージェント</anchor>でなくても <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CSSOM</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スクロール</anchor>を実装し、
それが画面表示の変化(だけ)ではなく、代替手段で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>の注意を惹く挙動をもたらすとすることになりそうです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="24" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[24]</anchor-end> 
呼び出し元の
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">try to scroll to the fragment</anchor>
は、
指定された部分を発見できたかどうかの結果を利用します。</p></section><section><h1>文脈</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">navigate</anchor> や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">履歴の探索</anchor>から呼び出されます。</p></section><section><h1>歴史</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> <cite xml:lang="en">Fix #559: require focus movement on scrolling to a fragment ID · whatwg/html@414bee7</cite> (<time>2016-02-25 11:39:23 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/414bee7380eef0aa4487c44e2008eef6dcfb9ee4">https://github.com/whatwg/html/commit/414bee7380eef0aa4487c44e2008eef6dcfb9ee4</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> <cite xml:lang="en">Align with URL spec's terminology: &quot;fragment identifier&quot; =&gt; &quot;fragment&quot; · whatwg/html@472bd07</cite>
(<time>2016-03-02 15:17:50 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/472bd07726db580b97b9d775996e9d895cda8be0">https://github.com/whatwg/html/commit/472bd07726db580b97b9d775996e9d895cda8be0</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> <cite xml:lang="en">Make :target definition sticky based on last scroll-to-fragment</cite>
( (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">domenic</anchor>著, <time>2016-06-07 22:08:31 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/1488bb6f765e41558bb221dc247012a35d88527b">https://github.com/whatwg/html/commit/1488bb6f765e41558bb221dc247012a35d88527b</anchor-external></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> <cite xml:lang="ja">経営理念 | 株式会社スマートデバイス・テクノロジー求人サイト</cite>
(<time>2016-06-24 16:52:50 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://recruit.smartdt.jp/about-us/">http://recruit.smartdt.jp/about-us/</anchor-external></figcaption><blockquote><p>&lt;script&gt;</p><p>//スムーズスクロール</p><p>jQuery(function(){</p><p>// #で始まるアンカーをクリックした場合に処理</p><p>jQuery('a[href^=#]').click(function() {</p><p>// スクロールの速度</p><p>var speed = 400; // ミリ秒</p><p>// アンカーの値取得</p><p>var href= jQuery(this).attr(&quot;href&quot;);</p><p>// 移動先を取得</p><p>var target = jQuery(href == &quot;#&quot; || href == &quot;&quot; ? 'html' : href);</p><p>// 移動先を数値で取得</p><p>var position = target.offset().top;</p><p>// スムーススクロール</p><p>jQuery('body,html').animate({scrollTop:position}, speed, 'swing');</p><p>return false;</p><p>});</p><p>});</p><p>&lt;/script&gt;</p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[20]</anchor-end> <cite xml:lang="en">Fix 'scroll an element into view' invocations</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">zcorpan</anchor>著, <time>2018-06-12 04:02:56 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/c50e5286c189571e1c7b938110d3ba5515b0ee13">https://github.com/whatwg/html/commit/c50e5286c189571e1c7b938110d3ba5515b0ee13</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[22]</anchor-end> <cite xml:lang="en">Change invocation of cssom-view &quot;scroll an element into view&quot; · Issue #464 · whatwg/html</cite>
(<time>2018-06-13 22:07:10 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/issues/464">https://github.com/whatwg/html/issues/464</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="23" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[23]</anchor-end> <cite xml:lang="en">scroll an element into view args by zcorpan · Pull Request #3131 · whatwg/html</cite>
(<time>2018-06-13 22:08:11 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/pull/3131">https://github.com/whatwg/html/pull/3131</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="25" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[25]</anchor-end> <cite xml:lang="en">Make fragment loop not depend on spin the event loop</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annevk</anchor>著, <time>2019-06-28 16:59:42 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/e62a7be6f3161993b82e9d8469ba2e64a3c6a2a6">https://github.com/whatwg/html/commit/e62a7be6f3161993b82e9d8469ba2e64a3c6a2a6</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="26" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[26]</anchor-end> <cite xml:lang="en">Make fragment loop not depend on spin the event loop</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annevk</anchor>著, <time>2019-06-28 16:59:42 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/e62a7be6f3161993b82e9d8469ba2e64a3c6a2a6">https://github.com/whatwg/html/commit/e62a7be6f3161993b82e9d8469ba2e64a3c6a2a6</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="27" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[27]</anchor-end> <cite xml:lang="en">Make fragment loop not depend on spin the event loop by annevk · Pull Request #4440 · whatwg/html</cite>
(<time>2020-07-14 14:23:02 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/pull/4440">https://github.com/whatwg/html/pull/4440</anchor-external></p></section></body></html>