>ホーム [1] >KeyNavi [3] >KeyNavi対応方法 [Shift-B] >対応FAQ サイト情報 資料請求・お問合せ
     ホーム [1]       新着情報 [2]       KeyNavi [3]       技術紹介 [4]       FAQ [5]       サイトマップ [6]     
   

対応FAQ

− KeyNavi対応についての質問と回答
KeyNavi対応についての質問と回答はこちら

このページは「きぃなび」対応の為のFAQです。 その他の一般的なFAQは FAQ [5]をご覧ください。

なお、バグを発見した時は info@keynavi.net[ALT-M] までご連絡ください。

  Functionキーにショートカットを割当てたい

KeyNavi1.0で英数字以外のキーにも対応しました。

【拡張キー名:英数字以外のもの】
キー名 拡張キー名 knx キーコード
Escape ESC 27
Horizontal Tab HT 9
Insert INS 45
Delete DEL 46
Home HOME 36
End END 35
PageUp PGUP 33
PageDown PGDN 34
Up UP 38
Down DOWN 40
Left LEFT 37
Right RIGHT 39
F1〜12 F1〜12 112〜123
BackSpace BS 8
CarriageReturn RET 13

該当する拡張キー名を使って下さい。 「F1」なら "F1"、「Ctrl-F1」なら"cF1" などとなります。

2003/12/2更新: 「CarriageReturn(Enterキー)」のknxを「CR」から「RET」に変更 (Ctrl-Rと区別する為)。

  Shift以外にCtrl、ALTも使えますか?

使えます。 「Ctrl」「ALT」「Shift」単独 或いは任意に組合せて指定できます。

但し「Ctrl」や「ALT」を使う割当は ブラウザの既定ショートカットに使われている場合があります。

例: 「Ctrl-F」は検索、「ALT-F」はファイルメニュー

「きぃなび」でこれらと重複するショートカットを作ると 新たに指定した方が優先され ブラウザ既定ショートカットは無視されます。

補足: KeyNavi拡張ハンドラ関数を定義すると 上書き、並列実行の2つを選択できます。 ただ並列実行は複数の動作が同時に起こり ユーザが混乱しやすいので上書きにするのが普通です。

その点、「Shift」は重複の問題が無いので このサイトでは「Shift」キーをメインに使っています。

「Ctrl」「ALT」を使いたい場合は それらが ブラウザのショートカットに使われてないか調べるといいでしょう。 一般的に 数字キー、キーボードの右側のキー(ALT)はあまり使われてないようです。

注: KeyNaviのデフォルトでは「Ctrl-I/K/J/L」に上下左右のフォーカス移動 を割当てています。 KeyNavi設定画面「Ctrl-/」でそれらを使わないよう設定できます。

また、イントラネットのようにユーザに ページの使い方を指定できるケースは 臆せず使ってしまって構わないでしょう。 常日頃からアクセスするページなら慣れてくれるはずです。

  既存のスクリプトが動作しない

KeyNavi以外にスクリプトがある場合
KeyNaviでは onkeydown, onkeyup, onkeypress, onload, onresize, onmousedown に対しイベントハンドラを設定しています。

別のスクリプトでも これらを設定している場合は 上書きされた可能性があります。 その場合は それらのスクリプトの後に「KeyNavi」の指定 <script language="javascript" src="keynavi_ja.js" ></script> を記述します。

すると KeyNaviのイベントハンドラは後から追加される形になるので 既存のスクリプトの実行も合わせて行われます。

ご不明の場合は上記指定を ソースの最後(</body>の直前など) に記述して下さい。
参考:JavaScript@KeyNavi.Net:イベントハンドラの登録 [Shift-Y]
KeyNaviではイベントハンドラの登録方法を工夫!

  KeyNaviが動作してくれない

HTMLにKeyNavi以外のスクリプトがある場合

ブラウザ側に起因する場合
FAQ [5]を見てください。

  ショートカット用のキーが足りない

ページ内のリンクやボタンの数が多く アルファベットや数字を使い切っても まだ不足するというケースです。 以下のような方法を検討してみて下さい。

修飾キー組合せ
KeyNaviでは修飾キー「Ctrl」「ALT」「Shift」を 任意個数 組合わせたショートカットが可能です。 例えば 「Ctrl-ALT-Shift-F」などといった組合せも可能です。

何通りの組合せが可能か計算してみます。 英字(26個)+数字(10個)=36通り、 修飾キー単独で3通り、 2つ組合せで3通り 3つ全て使うものが1通りです。 そのため 36*(3+3+1)=252 通りが可能です。

注意する点として 「Ctrl」「ALT」を使うショートカットは ブラウザ既定のショートカット「検索:Ctrl-F」「ファイルメニュー:ALT-F」 などと重複する可能性があります。

履歴ショートカットを実装する
単独キー入力で実行するようなショートカットではなく キーの連続入力で実行するものを用意します。 例えば 「¥」キーを選択キーにして 2連続「¥-A-B」とすれば 36**2=1296通り、 3連続「¥-A-B-C」なら 36**3=46656通りになります。

ショートカットの動作を「フォーカス」にする
このサイトでは ショートカット入力時の動作を 「ページJump」にしていますが フォーカスに変更することもできます。 フォーカスだとショートカットが重複しても問題ありません。

例えば ページ内に「リンク1[Shift-L]」「リンク2[Shift-L]」などと 「Shift-L」を使う複数のオブジェクトがあった場合、 「Shift-L」の連続入力でフォーカスを順番に移せます。 また「<・>」で前後に移動できます。

なお「Tab」「Shift-Tab」を使う一般的なフォーカス移動と異なり フォーカス開始時にスクロール位置が先頭に戻ることはありません。 現在表示されているエリア内のリンクからフォーカスが始まるので 直感的に使えます。

英文サイトの場合
英文サイトでは文中の各単語がアルファベットで記述されている為 ページを全く編集せず そのまま「頭文字フォーカス」が使えます。 「Shift-英数字」で各リンクやボタンにフォーカスします。

この方法はZopeでの活用 [Shift-H]で使用されています。

フォーカス移動「Ctrl-矢印」や「Tab」を使って貰う
ショートカットではなく KeyNaviの基本機能を使って貰うのも1つです。 内部関数を呼べば キー配置をウィンドウの左横に表示できます。

使い方 [Shift-Z]
<a href="javascript:void(0); onclick="kl_hwin_open()">使い方</a>

  ショートカット割当が重複したらどうなりますか?

同じキーに対し別のオブジェクト(リンクやフォーム)が割当てられていた場合です。 実行される動作がクリックかフォーカスなのかにより動作が異なります。
クリックの場合(このページなど)
表示エリア(画面)中心からもっとも近いオブジェクトに対し クリックが実行されます。

フォーカスの場合
現在フォーカス中のオブジェクトが表示エリア内にある場合は その次のオブジェクトがフォーカスされます。

フォーカス中のオブジェクトが表示エリア外にあったり どのオブジェクトにもフォーカスしていない場合は 表示エリア内先頭付近のオブジェクトが優先的にフォーカスされます。

これらの動作は 「Ctrl-矢印・I/K/J/L」によるフォーカス移動と同じです。

フォーカス開始時は現在表示されているオブジェクトを優先します。 Tabによるフォーカスと異なり初回キー入力時に スクロール位置が変わらないよう工夫されています。

  KeyNaviの割当を無効にしたい

不注意なユーザはテキスト入力窓にフォーカスしないまま 何かキーを押すかも知れません。 その場合にページが移動することになりユーザが混乱する可能性があります。

フォーム入力ページ等でKeyNaviの割当を無効にするには 「KL_MAP_DEFAULT="mapac..."」とします。 「ALT」「Ctrl」「ファンクションキー」入力についてはそのまま通りますが 通常のテキスト入力で使うキーについてはKeyNaviは動作しないようになります。

この場合でも開発者が指定したショートカットや 「Ctrl-矢印」によるフォーカス移動は利用可能です。

・参考:サンプル4:フォーム入力&KeyNavi機能制限 [Shift-1]

  ALT-矢印・BackSpace・Ctrl-R・F5を無効にしたい

ユーザにショートカット操作による履歴の「戻る・進む」や「再読込み」 ができないようにするには「KL_DISABLE_NAVI=true」として下さい。

右クリック、フルスクリーン(F11)なども無効化されます。 具体的には Ctrl修飾はテキスト入力で使う「Ctrl-A/C/V」以外全て ALT修飾全て、Functionキー、BackSpace(テキスト入力時を除く)も無効化されます。

一方、開発者が指定したショートカットや 「Ctrl-矢印」によるフォーカス移動については無効化されず そのまま利用可能です。

・参考:サンプル5:フォーム入力&ブラウザ機能制限 [Shift-2]

Note: セッション管理などの問題でこのような措置が望まれる場合があります。 しかしユーザビリティ上は好ましい設定とはいえません。 長期的にはユーザが履歴操作を行った場合でも対応できるよう サーバ側の処理を工夫するか専用の履歴ボタンを作るのをお勧めします。

 上位ページ[Shift-U] 先頭へ [W or O] 

ダウンロード [Shift-C] | サンプル集 [Shift-D] | ブラウザ対応情報 [Shift-E] | 対応FAQ
JavaScript@KeyNavi.Net [Shift-J] | KeyNavi API リファレンス [Shift-K]

KeyNavi使い方 [Shift-A] | KeyNavi対応方法 [Shift-B]
イントラネットでの活用 [Shift-G] | Zopeでの活用 [Shift-H] | 写真なび [Shift-I]