CSS3

プロパティ

nav-up、nav-right、nav-down、nav-left

  編集:2022.07.14 by T.A.

、mdn(nav-upnav-rightnav-downnav-left

フォーカスの方向的ナビゲーション。

名前 nav-up
nav-right
nav-down
nav-left
auto |
<id> [current | root | <target-name>]?
初期値 auto
適用対象 すべての enabled 要素【フォーカスが可能化された(または :enabled ? )要素】
継承 されない
百分率 受容しない
算出値 指定値
正準的順序 文法に従う
アニメーション型 離散的

【方向的ナビ(directional navigation): フォーカスを、利用者から指図された方向にある標的へナビゲートする。】

auto
ユーザー エージェントは、[方向的ナビ入力に呼応して、フォーカスをどの要素にナビゲートするか]を、自動的に決定する。
<id> [current | root | <target-name>]?
<id>
<id> 値は ID 選択子 [SELECT] である†。プロパティに対応する††方向的ナビ入力に呼応して、フォーカスは、選択子に合致している要素のうち、ツリー順序†††で最初のものへナビゲートされる。
【† したがって、下の例に見られるように、先頭は # にする必要があることになる。】
【†† すなわち、nav-right ならば右方向へのナビ、等々 】
【††† 文書ツリーにおける? ― この機能の資質的には、ボックス ツリーにも思われるが。】

<id> 値がすでにフォーカスされた要素を参照している場合、同じ要素をフォーカスし直す必要はないので、nav-* プロパティに対応する方向的ナビ入力は 無視される。

選択子に合致する要素がない場合、ユーザー エージェントは,どの要素にフォーカスをナビゲートするかを自動的に決定する。

フォーカスが、他ではフォーカス可能でない要素にナビゲートされた場合、この方向的ナビの結果においてのみフォーカス可能になる。加えて、:focus 疑似クラスも、そのようにフォーカスされている間は その要素に合致する。

注記: このような“他ではフォーカス可能でない”要素について考慮するにあたっては、他の選択肢もあった ― 文書ツリー内の、次の[他でもフォーカス可能な要素([他ではフォーカス可能でない要素]の子孫も含む)]へのフォーカスも含めて。そのような他の選択肢についての意見を歓迎する/強く要望する ― とりわけ、実装経験、および それらの内容に方向的ナビ プロパティを利用している作者経験からの。

<target-name>
<target-name> は、フォーカスのナビ先になる標的フレームを指示する。それは <string> であり、アンダースコア文字("_")から開始されてはならない。

エラーの取り扱い: 実際に、アンダースコアから開始されている場合:

  • "_parent" は、親フレームへナビゲートし、
  • "_root" は root として扱って、
  • 他の値は、該当する名前のフレームがあれば そのフレームへナビゲートするとする。

指定された標的フレームが存在しない場合、current として扱われることになる。

current
単純に、【これらのプロパティが指定されている】要素が属しているフレームを標的にすること意味する。
root
ウィンドウ全体を標的にするべきであることを指示する。

ユーザー エージェントは、方向的ナビキーを備える装置に対しては、対応する 4 つの nav-* 方向的ナビ プロパティ(nav-up、nav-right、nav-down、nav-left)に則って、フォーカスをナビゲートするように応答する。この仕様は、装置のどのキーが方向的ナビキーになるかは、定義しない。

注記: 代表的なパソコンのキーボードは、4 種の矢印キーを備える。それらのキーを方向的ナビに利用するものが、可能な実装の一つとして挙げられる。アクセス能、および利用者の便利用に、ユーザー エージェントは、キーボード上のどのキーを方向的ナビに利用するか、環境設定できるようにするべきである。

有位置なボタンの例: position プロパティに対する absolute により位置され、上・右・下・左に置かれた button に対し、利用者がフォーカスを方向的にナビゲートするとき、各 button を時計回りに(または反時計回りに)ナビゲートするように設定する例:

button { position:absolute }

button#b1 {
  top:0; left:50%;
  nav-right:#b2; nav-left:#b4;
  nav-down:#b2; nav-up:#b4;
}

button#b2 {
  top:50%; left:100%;
  nav-right:#b3; nav-left:#b1;
  nav-down:#b3; nav-up:#b1;
}

button#b3 {
  top:100%; left:50%;
  nav-right:#b4; nav-left:#b2;
  nav-down:#b4; nav-up:#b2;
}

button#b4 {
  top:50%; left:0;
  nav-right:#b1; nav-left:#b3;
  nav-down:#b1; nav-up:#b3;
}

button の具体的なマークアップは、この例には指定されない。マークアップは、有位置な要素のレイアウトには関連しない ― 重要なのは、フォーカス ナビのふるまいを 指定されたレイアウトに適度に関係させることなので。

特定のフレーム内の要素にフォーカスを移動させる例。そのためには、要素 id とフレーム名を要する。

[id="foo" を有する button]から左へナビゲートされるとき、フォーカスを name="sidebar" を有するフレームの中にある[id="bar" の要素]へ移動させるようにする例:

button#foo { nav-left: #bar "sidebar"; }

テスト
HTML:

ここに表示
HTML:

ここに表示
スクリプト:


スクリプト:



表示内容:
表示内容: