次の方法で共有


macOS のアクセシビリティ

このページでは、macOS のアクセシビリティ API を使用して、アクセシビリティ チェックリストに従ってアプリをビルドする方法について説明します。 他のプラットフォームの API については、Android のアクセシビリティiOS のアクセシビリティに関するそれぞれのページを参照してください。

macOS (旧称 OS X) でのアクセシビリティ API のしくみを理解するには、まず OS X のアクセシビリティ モデルを確認します。

UI 要素を記述する

AppKit では、NSAccessibility プロトコルを使用して、ユーザー インターフェイスにアクセスできるようにする API を公開しています。 これには、ボタン AccessibilityLabel の設定など、アクセシビリティ プロパティに意味のある値を設定しようとする既定の動作が含まれます。 通常、ラベルは、コントロールまたはビューを記述する単一の単語または短い語句です。

ストーリーボード ファイル

Xamarin.Mac では、Xcode Interface Builder を使用してストーリーボード ファイルを編集します。 アクセシビリティ情報は、デザイン画面でコントロールが選択されている場合に、ID インスペクター で編集できます (下のスクリーンショットを参照):

Adding accessibility in Xcode's Interface Builder

コード

Xamarin.Mac は現在、AccessibilityLabel セッターとして公開されていません。 次のヘルパー メソッドを追加して、アクセシビリティ ラベルを設定します:

public static class AccessibilityHelper
{
    [System.Runtime.InteropServices.DllImport (ObjCRuntime.Constants.ObjectiveCLibrary)]
    extern static void objc_msgSend (IntPtr handle, IntPtr selector, IntPtr label);

    static public void SetAccessibilityLabel (this NSView view, string value)
    {
        objc_msgSend (view.Handle, new ObjCRuntime.Selector ("setAccessibilityLabel:").Handle, new NSString (value).Handle);
    }
}

次に示すように、このメソッドをコードで使用できます:

AccessibilityHelper.SetAccessibilityLabel (someButton, "New Accessible Description");

AccessibilityHelp プロパティは、コントロールまたはビューの動作の説明を目的としており、ラベルが十分な情報を提供しない場合にのみ追加する必要があります。 ヘルプ テキストは、"ドキュメントの削除" など、できるだけ短くする必要があります。

一部のユーザー インターフェイス要素は、アクセス可能なアクセスには関係ありません (独自のアクセシビリティ ラベルとヘルプを持つ入力の横にあるラベルなど)。 このような場合は、スクリーン リーダーやその他のアクセシビリティ ツールによってこれらのコントロールまたはビューがスキップされるように、AccessibilityElement = false を設定します。

Apple では、アクセシビリティ ラベルとヘルプ テキストのベスト プラクティスについて説明するアクセシビリティ ガイドラインを提供しています。

カスタム コントロール

必要な追加の手順の詳細については、Apple の「アクセス可能なカスタム コントロールに関するガイドライン」を参照してください。

アクセシビリティのテスト

macOS には、アクセシビリティ機能のテストに役立つアクセシビリティ インスペクターが用意されています。 インスペクターは Xcode に含まれています。

初めて起動する場合、 アクセシビリティ インスペクターには、アクセシビリティを使用してコンピューターを制御するためのアクセス許可が必要です:

Accessibility Inspector requesting permission to run

設定画面 (必要に応じて左下) のロックを解除し、[アクセシビリティ インスペクター] をオンにします:

Settings screen to enable Accessibility Inspector

有効にすると、インスペクターは画面の周りを移動できるフローティング ウィンドウとして表示されます。 次のスクリーンショットは、サンプル Mac アプリの横で実行されているインスペクターを示しています。 ウィンドウの上にカーソルが移動すると、インスペクターには各コントロールのすべてのアクセス可能なプロパティが表示されます:

Example of Accessibility Inspector running

詳細については、「OS X のテスト アクセシビリティ ガイド」を参照してください。