キャンバス アプリにおけるアクセシビリティの制限
アクセシブルなキャンバス アプリ を組み込みのコントロールで設計・構築できます。 アプリのデザイン、さまざまなコントロールの使用、設定されたコントロールのプロパティの組み合わせにより、アプリにアクセスできないユーザー インターフェイスと成ってしまう場合があります。
この記事では、キャンバス アプリでのこれらのアクセシビリティの制限について学習し、アプリのインターフェースを改善してアクセスしやすくする方法について説明します。
ダイヤログとオーバーレイ
他のコンテンツの上に表示されるダイアログとユーザーインターフェイスには対応していません。 これらのオーバーレイには、フォーカスの管理、スクリーンリーダーからの背景コンテンツの非表示化、および適切なコントロールの役割が必要です。
次の点について検討してください。
- 「ダイアログ」ごとに別々の画面を使用します。
- 通知 機能を使用します。
- アクセシブルなダイアログを実装する、コード コンポーネントを作成します 。
タブ付きインターフェース
タブ付きインターフェースは、タブのリストと、選択されたタブに関連するコンテンツを表示するパネルで構成されています。
タブ インターフェイスをサポートする組み込みコントロールは、タブ リスト だけです。 タブの作成には ギャラリー を使用しないでください。 タブのリストは矢印キーで移動できる必要があります。 適切なコントロールのロールと状態が必要です。
次の点について検討してください。
- 組み込み型**タブ リスト** を使用します。
- アクセシブルなタブ付きインターフェイスを実装する、コード コンポーネントを作成します 。
カスタム テーブル
2次元データをサポートする唯一の組み込みコントロールは データ テーブル です。 ギャラリー を使ってデータを行や列で表示することは避けてください。 スクリーン リーダーのユーザーがその構造を理解し、セルをナビゲートできるように、行と列に注釈を付ける必要があります。
次の点について検討してください。
- 組み込み型**データ テーブル** を使用します。
- ギャラリー で一方向のみのデータを提示します。
- アクセシブルなテーブルを実装する、コード コンポーネントを作成 します。
カスタム コンボ ボックス
テキスト入力 と**ギャラリー** を組み合わせることで、コンボ ボックスの機能を実現できます。 ただし、組み込みコントロールで組み立てられたコンボボックスにはアクセスできません。 コンボ ボックスでは、矢印キーを扱い、コンポーネントに適切な役割と状態を設定する必要があります。
次の点について検討してください。
- 組み込み型**コンボ ボックス** または**ドロップ ダウン**。
- アクセス可能なコンボ ボックスを実装する、コード コンポーネントを作成します 。
スクロール可能なコンテンツ
キーボードを使用したユーザーは、フォーム、スクロール可能な画面、および コンテナ の内部にインタラクティブ コントロールがない場合、スクロールできません。
インタラクティブなコンテンツを持たない ギャラリー では、キーボードユーザーがギャラリーにフォーカスし、矢印キーでスクロールできるように、ギャラリー 自体に**TabIndex** を設定することができます。
ラベル の場合、TabIndexを設定すると、キーボードのスクロールでフォーカスできるようになります。 さらに、ボタンに変換します。 ボタンを意図しない場合は、ラベルをスクロール可能にしないでください。 ラベル の大きさは、文字が入る大きさにしてください。 AutoHeight プロパティは、コントロールがフォーム、スクロール可能なスクリーン、またはギャラリーの中にあるときに、コントロールのサイズを自動的に調整する目的で使用できます。
展開可能なセクション
展開可能なセクションは開示とも呼ばれ、ユーザーがボタンを押すまでコンテンツが非表示となります。 これら要素に対する組み込みのサポートはありませんが、回避策があります。
ボタンの AccessibleLabel に拡張状態を記載します。 たとえば、「折りたたまれた詳細を 展開します」。
展開の状態が変化した際に、AccessibleLabel を更新します。 スクリーンリーダーの利用者が論理的にナビゲートできるように、展開されたコンテンツをボタンの直後に配置します。 セクションが展開されると、他のコンテンツを押し下げます。
ランドマーク
ラベル コントロールを持つ見出しを作成できます。 ナビゲーション、バナーなどのその他ランドマークはサポートされていません。 Power Apps は、メインのランドマークをアプリ画面に自動的に設定します。
その他のランドマークについては、回避策として見出しを使用するようにしてください。
カスタム ロールと状態
カスタム ロールと状態に対する組み込みのサポートはありません。 したがって、組み込みのコントロールから複合チェック ボックス、スライダー、トグルを作成することはお勧めしません。
次の点について検討してください。
- AccessibleLabel でコントロールの役割と状態について言及します。 たとえば、チェックボックスに**アイコン** が使用されている場合、そのラベルは 「通知を有効化、 チェック ボックス、 オン」となります。
- WAI-ARIA ロールおよび状態を適切に設定する、コード コンポーネントを作成 します。
カスタム キーボードの処理
特定のキーの押下に反応させることはできません。 たとえば、矢印キーや Esc キーのカスタム動作を設定することはできません。 そのため、ラジオボタンのようなリスト型のコントロールを組み込みのコントロールから作成することはできません。 また、Esc キーで閉じられるオーバーレイを作成することもできません。
エンター、またはスペースキーの処理は、OnSelect で行います。 しかし、このプロパティは、マウスクリックのような他の入力方法でもトリガーすることができます。 イベントのソースを区別する方法はありません。
フォームの管理
SetFocus 関数はフォーカスの変更に使用できますが、限られたシナリオでのみ機能します。
コントロールがフォーカスを受け取る、またはフォーカスを失うことの検出はできません。
スクリーン リーダーにのみコンテンツを非表示にする
スクリーンリーダーを使わないユーザーにコンテンツを表示し、スクリーンリーダーを使うユーザーにはコンテンツを非表示にするという、aria-hidden に相当するものはありません。 限られたシナリオ のみに対応しています。