このガイドでは、現在 Blockly に実装されているデフォルトのキーボード ナビゲーションの使用方法について説明します。
をご覧ください。キーボード ナビゲーションの使用
キーボード ナビゲーションを正常に行うには、ユーザーが次のタスクを完了できる必要があります。
- ワークスペース内を移動する
- ワークスペースでブロックを接続する
- ワークスペースにブロックを追加する
- ブロックを切断する
- ツールボックスを操作する
- フライアウトを操作する
- フライアウトからブロックを挿入する
以下では、Blockly のデフォルトのキーボード ナビゲーションでこれらのタスクを実行する方法について説明します。
キーボード ナビゲーションを有効にする
キーボード ナビゲーションを有効または無効にするには、Shift+Ctrl+K キーを押します。キーボード ナビゲーションを初めて有効にすると、ワークスペースに点滅する赤い線が表示されます。これがカーソルです。ユーザーの現在地が表示され、ユーザーがワークスペースを移動すると更新されます。
[Enter] キーを押すと、現在の位置に青い線が作成され、ユーザーのマーカーが表示されます。マーカーは、ブロック挿入の対象位置を示します。ワークスペース内でカーソルを移動しても更新されません。
デフォルト カーソルの使用
ワークスペースは、入力、フィールド、接続、ブロック、ワークスペース座標で構成されています。デフォルトのカーソルは、すべてのコンポーネントを異なるレベルに分割して、ワークスペース内を移動します。
レベル間を移動するには、A キーと D キーを使用します。レベル内を移動するには、W キーと S キーを使用します。
ワークスペース レベル
Shift+Ctrl+K キーを押して、キーボード ナビゲーション モードに入ります。これにより、ワークスペースまたはワークスペースの最初のブロックにカーソルが配置されます。カーソルがブロック上にある場合は、A を 2 回押してワークスペース レベルに移動します。ワークスペース上でカーソルを移動するには、Shift+WASD を使用します。スタックレベルに移動するには、D キーを使用します。
スタックレベル
スタックレベルでは、W キーと S キーを使用して、ワークスペース上のブロックのスタック間を移動できます。このレベルでは、カーソルはスタック内のすべてのブロックの周囲に赤い長方形で表示されます。選択したスタックの最初のブロックに移動するには、D キーを使用します。
ブロックと接続レベル
このレベルには、ブロックとブロック上のすべての外部接続が保持されます。デフォルトのカーソルは、前の接続または出力接続がある場合にブロックをスキップするように設定されています。どちらも存在しない場合、カーソルはブロックに移動します(以下を参照)。
外部接続には次の 3 種類があります。
ブロックレベルと接続レベルでは、W キーと S キーを使用して外部接続を移動できます。このレベルでは、カーソルは現在の接続の赤い枠線で点滅して表示されます。ブロックの最初のフィールドまたは入力に移動するには、D キーを押します。
フィールドと入力レベル
このレベルには、ブロック上のすべてのフィールドと入力が保持されます。フィールドと入力の例を以下に示します。
このレベルでは、W と S を使用して、現在のブロックの編集可能なフィールドと入力を移動できます。フィールドの場合、カーソルは赤い塗りつぶし長方形です。入力の場合、カーソルは点滅する赤いパズルのピースです。カーソルが入力上にある場合は、D キーを押して接続されたブロックに移動します。
カーソルがフィールド上にある場合は、Enter キーを押して編集します。
ワークスペースでブロックを接続する
- WASD キーを使用して、ターゲット接続に移動します。
- Enter キーを使用して接続をマークします。
- WASD キーを使用して有効な接続ポイントに移動します。
- 2 つのブロックを I キー(挿入)を使用して接続します。
ワークスペース上のブロックを移動する
通常、Blockly では、ブロックを拾い上げて目的の位置にドラッグし、離すことでブロックをワークスペースに移動します。キーボード ショートカットを使用すると、移動先の位置をマークし、移動するブロックに移動して、移動を指定できます。
- Shift+WASD キーを使用してワークスペース上の位置に移動する
- Enter キーを使用して、ワークスペース上でその場所をマークします。
- WASD キーを使用して、移動するブロックに移動します。
- I キーを使用して、ブロックをマークした場所に移動します。
ブロックの取り外し
通常、Blockly では、下位のブロックを拾って親ブロックからドラッグすることで、2 つのブロックを切断します。キーボード ショートカットを使用すると、切断する接続にカーソルを合わせて X キーを押すことで、ブロックを切断できます。
- WASD キーを使用して、切断する接続に移動します。
- [X] で接続を切断します。
ツールボックスからブロックを挿入する
- T キーを押してツールボックスを開きます。
- W キーと S キーを使用してカテゴリを移動します。
- D キーを押して、プルダウンのブロックに移動します。
- W キーと S キーを使用してブロック間を移動する
- Enter キーを押して、プルダウンからブロックを挿入する
テスト
ユーザーがテストに興味を持つ可能性がある主な分野は次の 4 つです。
- キーマッピング: どのキーをどのアクションにマッピングするか。
- スクリーン リーダー向けのテキスト/ロギング/警告: スクリーン リーダーがカーソルの位置やエラーや警告を読み上げる方法。
- ワークスペースのナビゲーション: ユーザーがワークスペース上のさまざまなブロック、フィールド、入力、接続を操作する方法。
- カーソルの外観: カーソルとマーカーの外観。
これらの API の使用方法について詳しくは、Blockly キーボード ナビゲーション コードラボをご覧ください。
他にもテストしたい領域があり、Google がサポートできる場合は、こちらのフォームにご記入ください。
よくある質問
Q: キーボード ナビゲーションに矢印キーを使用しなかったのはなぜですか?
A: スクリーン リーダーでは通常、矢印キーが使用されます。これを妨げないように、WASD キーを使用することにしました。
ただし、ユーザーのニーズはそれぞれ異なるため、キーマッピングを簡単に変更できるようにすることを強くおすすめします。
Q: かなり複雑なようですが、レイヤを分離する必要があるのはなぜですか?
A: キーボード ナビゲーションを検討したとき、さまざまなブロック、接続、フィールド、入力、ワークスペース座標を移動するための構造化された方法が必要でした。
内部では、抽象構文木(AST)で表します。デフォルトのカーソルの実装は、このモデルから大きく逸脱していません。これは、デベロッパーが基盤となるアーキテクチャをより深く理解できるように意図的に設定されています。エンドユーザーにとってわかりやすい他のカーソルもあります。
制限事項
ブロック以外のコンポーネント(ゴミ箱、ズームボタン、フライアウト ボタンなど)への移動はまだサポートされていません。制限事項の詳細については、未解決のキーボード ナビゲーションのバグのリストをご覧ください。