キーボード・アクセス
この項では、メニュー、ツールバー機能およびコンポーネントへのキーボードによるアクセスをサポートするFormsを構築する方法を説明します。
-
ラジオ・ボタン、チェック・ボックスおよびプッシュ・ボタンにアクセス・キー(ニーモニック)を定義する必要があります。
-
キーボードのタブ移動の順序は論理的である必要があります(通常、左から右、上から下)。
-
キーボードのタブ移動の順序は、ウィンドウ内のすべてではなくてもほとんどのアイテムを循環する必要があります。
-
ユーザーが、キーボードのみでアプリケーションのすべてのブロックおよびウィンドウ間をナビゲートできる必要があります。
-
スクロールバー以外にも、レコード間の移動またはキャンバスのスクロールのための手段が必要です。
-
タブ・ページを切り替えるためのタブ・ページのリスト機能(通常は[F2]にマップされる)によって、タブ・ページの最初のナビゲーション可能なアイテムにフォーカスが移動する必要があります。
アクセス・キー
現在、アイテムにフォーカスされていない場合でも、操作者がアクセス・キーを使用して、キーの組合せを押してアイテムを選択または実行できる必要があります。たとえば、アクセス・キーがOで「開く」というラベルが付いたボタンは、[Alt]+[O]を押したときに常にアクティブ化できる必要があります。アクセス・キーはメニュー・アイテム、プッシュ・ボタン、チェック・ボックス、ラジオ・ボタンおよびタブ・ページに適用できます。プルダウン・メニューの最上位レベルで使用されるキー(「ファイル」のF、「編集」のEなど)を含め、ウィンドウ内のすべてのアクセス・キーが一意の必要があります。
アクセラレータ
アクセラレータは、「印刷」の場合の[Ctrl]+[P]など、頻繁に実行するアクションのキーボード・ショートカットです。キーボード・ショートカットで特定のキーストロークの組合せを使用することで、メニューを開かずに、対応するメニュー・アイテムと同じ機能を実行できます。[Alt]+[F]を押してから[S]を押して「ファイル」→「保存」をアクティブにするかわりに、[Ctrl]+[S]を押すだけで同じ機能を実行できます。アクセラレータ・キーは望ましい機能ですが必須ではありません。これは実行時にキーボード・ヘルプに表示されます。
アクセス・キーを使用しない例外
次に示す例外を除き、プッシュ・ボタン、チェック・ボックス、タブ、メニュー・アイテムおよびラジオ・ボタンにはアクセス・キーが必要です。
-
キーボードでナビゲーション可能な場合(この場合でもアクセス・キーの使用をお薦めします)。
-
アクセス・キーが多数あって、一意の文字を選択するのが難しい場合(この場合、アクセス・キーがなくてもナビゲーション可能な必要があります)。
-
製品の機能に必須ではない場合。
-
チェック・ボックスとラジオ・ボタンについては、複数行ブロックに含まれていて、ラベル属性ではなくプロンプトを使用する場合(この場合、アクセス・キーをレンダリングできません)。
ラベル
ラベル・プロパティを持つすべてのアイテムにアクセス・キーが必要なわけではありません。アイテムにナビゲーションできる場合(つまり、キーボードのタブ移動の順序に含まれている場合)、アクセス・キーは必要ありません。ただし、アクセス・キーを追加すればすべてのユーザーにメリットがあるため、追加することを強くお薦めします。Microsoft Windowsのユーザー・インタフェースのガイドラインでは、「OK」および「キャンセル」ボタンにはアクセス・キーを付けないよう指定されています。
メニュー・アイテム
必須ではありませんが、少なくとも、メニュー・アイテムの最上位項目にはアクセス・キーが必要です。メニューはキーボードで[Alt]を押して放すことで、常に呼び出せる必要があります。これによってフォーカスをメニューに移動し、矢印キーを使用してメニュー間を移動できます。
アイコン・ボタン
アイコン・ボタン(アイコン・プロパティがYesに設定されたプッシュ・ボタン)にはアクセス・キーを追加できません。したがって、起動される機能は、他の場所でアクセス可能な方法(プルダウン・メニューなど)でレプリケートする必要があります。
チェック・ボックスとラジオ・ボタン
-
単一行ブロックの場合は、チェック・ボックスの音声プロンプトはほぼ常にラベル属性です。複数行ブロックの場合は、一般にプロンプトのインスタンスが1つのみであるため、プロンプト属性はアイテムの画面上のプロンプトおよび音声プロンプトの両方として機能する必要があり、ラベルはNULLの必要があります。
-
ラジオ・ボタンの場合は、ラジオ・グループのヒント・テキストを使用して音声プロンプトを格納します。単一行ブロックの場合は、各ボタンのラベル属性が値として機能します。複数行ブロックの場合は、一般にプロンプトのインスタンスが1つのみであるため、プロンプト属性はアイテムの画面上のプロンプトおよび値の両方として機能する必要があり、ラベルはNULLの必要があります。
-
ラベルを利用できる場合は、アクセス・キーを追加することを強くお薦めしますが、ウィジェットがナビゲーション可能なかぎり必須ではありません。ウィジェットがナビゲーション可能でない場合は、マウスの使用が唯一のアクティブ化手段になるため、アクセス・キーが必要です。
Oracle E-Business Business Suiteの機能
-
ラジオ・グループ、ラジオ・ボタン、プッシュ・ボタンおよびチェック・ボックスは、適切なFNDプロパティ・クラスでサブクラス化する必要があります。このようなクラスはPluggable Java Component (PJC)を指定し、アクセス・キーの一意性を保証します。実行時に、指定した文字が、プルダウン・メニューを含めウィンドウ内ですでに使用されている場合は、別の文字が自動的に選択されます。この機能は、翻訳されるアプリケーションの場合に役立ちます。翻訳者が自身の変更結果を実行時に確認できない環境で作業しており、翻訳者が一意のアクセス・キーを設定することが難しい場合があるためです。
-
タブ、ポップアップ・メニュー・アイテム、および動的にラベルが付けられるプルダウン・メニュー・アイテムの場合、翻訳後に一意であることが保証できないため、アクセス・キーを追加しないでください。他のアイテムに使用されるPJCメカニズムは、これらには使用できません。
-
アクセス・キーは
&Print
のようにラベル内で指定する必要があります。別個のアクセス・キー・プロパティは使用しないでください。 -
1つのウィンドウに1つのデフォルト・ボタンが必要です。このボタンの機能はユーザーが実行する可能性が最も高い機能です。デフォルト・ボタンは必ずモーダル・ウィンドウに配置します(一般的には「OK」)。「OK」と「キャンセル」を除き、ダイアログ・ウィンドウ内のすべてのプッシュ・ボタンにアクセス・キーが必要です。デフォルト・ボタンでない場合は「OK」にアクセス・キーが必要で、「ウィンドウを閉じる」と同じ機能を実行しない場合は「キャンセル」にもアクセス・キーが必要です。
ブロック
すべてのブロックがキーボードでナビゲーション可能な必要があります。通常、ブロック間のナビゲーションは次ナビゲート・ブロックおよび前ナビゲート・ブロック・プロパティで制御されるか、KEY-NEXT-BLOCKおよびKEY-PREVIOUS-BLOCKトリガーで制御されるか、あるいはその両方で制御されます。
タブ・ページ
WHEN-TAB-PAGE-CHANGEDトリガーを正しくコーディングしなければ、ユーザーがタブ・ページのリスト機能(通常は[F2]にマッピングされる)を押してタブ・ページを切り替えるときに、フォーカスが最初のナビゲーション可能アイテムに移動しません。カーソルは異なるアイテムに自動的には移動しません。カーソルを移動するには、WHEN-TAB-PAGE-CHANGEDトリガーにGO_ITEM文を含めるためのコードが必要です。これは、ユーザーがカーソルを移動せずに他のタブ・ページを表示するための本来の機能であるため、アイテムのナビゲーションと検証が開始されます。
DECLARE
tp_name VARCHAR2(30);
tp_label VARCHAR2(30);
BEGIN
tp_name := :SYSTEM.TAB_NEW_PAGE;
tp_label := GET_TAB_PAGE_PROPERTY(tp_nm, label);
IF tp_lbl = 'NAME' THEN
GO_ITEM('FIRST_NAME'); -- or GO_BLOCK(...)
ELSIF tp_lbl = 'ADDRESS' THEN
GO_ITEM('ADDRESS_LINE_1');
END IF;
END;
メニュー
カスタム・メニューを作成する際にウィンドウ・メニュー項目を含めます。デフォルトではウィンドウ・メニュー項目は含まれません。この項目によって、アプリケーション内で現在開いているウィンドウをキーボードで切り替えることができます。
親トピック: アクセシビリティ機能をサポートするFormsの構築