組み込みのコントロールを使用して 、アクセシビリティ対応のキャンバス アプリを設計および構築 できます。 場合によっては、アプリの設計、さまざまなコントロールの使用、および構成されたコントロール プロパティの組み合わせによって、アプリのユーザー インターフェイスにアクセスできない場合があります。
この記事では、キャンバス アプリでのこれらのアクセシビリティの制限事項と、アプリ インターフェイスを改善してアクセシビリティを高める方法について説明します。
ダイアログとオーバーレイ
他のコンテンツの上に表示されるダイアログとユーザー インターフェイスはサポートされていません。 これらのオーバーレイには、フォーカス管理、スクリーン リーダーからの背景コンテンツの非表示、適切なコントロール ロールが必要です。
次の点を考慮してください。
- "ダイアログ" ごとに個別の画面を使用します。
- Notify 関数を使用します。
- アクセス可能なダイアログを実装するコード コンポーネントを作成します。
タブ付きインターフェイス
タブ付きインターフェイスは、タブの一覧と、選択したタブに関連付けられているコンテンツを表示するパネルで構成されます。
タブ付きインターフェイスをサポートする唯一の組み込みコントロールは Tab リストです。 ギャラリーを使用してタブ を 作成しないでください。 タブの一覧は、方向キーを使用してナビゲート可能である必要があります。 適切な制御ロールと状態が必要です。
次の点を考慮してください。
- 組み込みの タブ リストを使用します。
- アクセス可能なタブ付きインターフェイスを実装するコード コンポーネントを作成します。
カスタム テーブル
2 次元データをサポートする唯一の組み込みコントロールは 、データ テーブルです。 ギャラリーを使用して行と列にデータを表示しないようにします。 スクリーン リーダーユーザーが構造を理解し、セルを移動できるように、行と列に注釈を付ける必要があります。
次の点を考慮してください。
- 組み込みの データ テーブルを使用します。
- ギャラリーでのみ一方向にデータを表示 します。
- アクセス可能なテーブルを実装するコード コンポーネントを作成します。
カスタム コンボ ボックス
テキスト入力とギャラリーを組み合わせることで、コンボ ボックスをエミュレートできます。 ただし、組み込みのコントロールから組み立てられたコンボ ボックスにはアクセスできません。 コンボ ボックスでは、方向キーを処理し、そのコンポーネントに適切なロールと状態を設定する必要があります。
次の点を考慮してください。
- 組み込みのコンボ ボックスまたはドロップダウンを使用します。
- アクセス可能なコンボ ボックスを実装するコード コンポーネントを作成します。
スクロール可能なコンテンツ
キーボード ユーザーは、 フォーム、 スクロール可能な画面、および コンテナー 内に対話型コントロールがない場合、スクロールできません。
対話型コンテンツのないギャラリーの場合は、ギャラリー自体に TabIndex を設定して、キーボード ユーザーがフォーカスを設定し、方向キーを使用してスクロールできるようにします。
ラベルの場合、TabIndex を設定すると、キーボードのスクロールにフォーカスが合います。 さらに、ボタンに変換します。 ラベルがボタンとして意図されていない場合は、スクロールできないようにします。 ラベルがテキストに合わせて十分な大きさであることを確認します。 AutoHeight プロパティを使用すると、フォーム、スクロール可能な画面、またはギャラリー内にあるコントロールのサイズを自動的に調整できます。
展開可能なセクション
展開可能なセクション (開示とも呼ばれます) には、ユーザーがボタンを押すまで非表示になっているコンテンツが含まれます。 これらの要素には組み込みのサポートはありませんが、回避策があります。
ボタンの AccessibleLabel で展開された状態を指定します。 たとえば、"詳細を表示します。 展開します」。
展開された状態が変わったら、 AccessibleLabel を更新します。 展開されたコンテンツをボタンの直後に配置して、スクリーン リーダーユーザーが論理的に移動できるようにします。 セクションが展開されたら、他のコンテンツを下にプッシュします。
目印
ラベル コントロールを使用して見出しを作成できます。 ナビゲーション、バナー、およびその他のランドマークはサポートされていません。 Power Apps では、メインランドマークがアプリ画面に自動的に設定されます。
その他のランドマークの場合は、回避策として見出しを使用します。
カスタム ロールと状態
カスタム ロールと状態の組み込みサポートはありません。 そのため、組み込みのコントロールから複合チェック ボックス、スライダー、トグルを作成することはお勧めしません。
次の点を考慮してください。
- AccessibleLabel でコントロールのロールと状態について説明します。 たとえば、 アイコン をチェック ボックスとして使用する場合、そのラベルは "通知を有効にします。 チェック ボックス。 確認済み。
- WAI-ARIA ロールと状態を適切に設定するコードコンポーネントを作成します。
カスタム キーボード処理
特定のキー押下に対応することはできません。 たとえば、方向キーやエスケープ キーのカスタム動作を設定することはできません。 そのため、組み込みのコントロールからラジオ ボタンのようなリストに似たコントロールを作成することはできません。 また、エスケープ キーを使用して無視できるオーバーレイを作成することもできません。
OnSelect では、Enter キーまたは Space キーの処理がサポートされています。 ただし、このプロパティは、マウス クリックなどの他の入力メソッドによってもトリガーされます。 イベントのソースを区別する方法はありません。
フォーカス管理
SetFocus 関数はフォーカスを変更するために使用できますが、 限られたシナリオでのみ機能します。
コントロールがフォーカスを受け取ったり失ったりするタイミングを検出することはできません。
スクリーン リーダー ユーザーのみにコンテンツを非表示にする
目の見えるユーザーにコンテンツを表示するが、スクリーン リーダー ユーザーには非表示にすることに相当する aria-hidden はありません。 サポートされている シナリオはごくわずか です。