アクセシビリティ


アクセス可能なアプリは、制限や障害者に関係なく、すべての人が使用することができます。アプリがアクセスできるようにすることで、より広範な市場に到達し、ユーザーベースを拡大することができます。


ユーザーは必ずしもあなたと同じ能力を持っていません。アプリは、視覚、聴覚、相互作用障害、あるいは学習障害の観点から、アプリのユーザーエクスペリエンスを考慮してください。これらの障害のいずれかの誰かがそれを使用しようとすると、アプリはまだ動作可能でしょうか?


facets_of_accessibility_2x

Apple は、システム·レベルでの作業の大半を、アプリがアクセスできるようにするために、画面ズーム、視覚的なアラート、アシストタッチ、ガイド付きのアクセス機能を提供するために、- しかし、あなたのアプリのアクセシビリティを向上させるために開発者としてもっとできることがあります。


VoiceOver での作業


OS X と iOS アプリが情報を公開する主な方法は、グラフィカル・ユーザー・インターフェイス(GUI)を介してですので、ビジュアルなアクセシビリティに特に注意を払う必要があります。目が見えない方や弱視のユーザーは、VoiceOver を使用して相互に交流し、アプリのユーザー·インタフェースはオペレーティングシステムに組み込まれている、画面読み上げ技術を使用して、アプリと対話します。VoiceOver ユーザは、特別なジェスチャーを使用するか、キーボードのコマンドで、GUI を探索し、制御します。標準入力ーマウスの動きや指のスワイプなどのようにーVoiceOver に翻訳されると VoiceOver のカーソルの動きになり、要素のアクセシビリティ情報を読み取ります。



VoiceOver は、視力障碍者のユーザーの異なるタッチを解釈することによって、GUI をナビゲートするのに役立ちます。


voiceover_overview_2x

AppKit と UIKit の提供する標準の UI 要素は、デフォルトで VoiceOver にアクセスできます。あなたはただ、テキストが関連付けられていない画像やアイコンなどのビジュアルの UI 要素の説明を提供する必要があります。要素の役割として、または VoiceOver が要素を読むべきかどうか、のように要素のアクセシビリティの説明とその他のデフォルトのアクセシビリティの動作を変更することができ、直接に Interface Builder で、要素を読むかどうかを変更します。


一方、声を出して読まれるように VoiceOver に自分自身を記述できるように、カスタムの UI 要素とビューは、NSAccessibility または UIAccessibility プロトコルに準拠している必要があります。これらは AppKit と UIKit に採用された標準コントロールと、同じプロトコルです。これらのプロトコルを採用し、そのメソッドを実装することで、VoiceOver に、それがカスタム UI 要素にアクセスできるように、必要な情報を提供しています。


アプリが VoiceOver でうまく動作していることを確認する最善の方法は、VoiceOver を使用してアプリと対話することです。iOS では、[VoiceOver を有効にする] を、[設定] > [一般] > [アクセシビリティ] で設定し、OS X では[システム環境設定] > [アクセシビリティ] で設定します。(または Command - F5 キーを押します)。VoiceOver は、洗練されたツールですが、基本を学ぶためには数分しかかかりません。すべての機能は、適切な説明でアクセス可能で、UI 要素の全てであることを確認するため VoiceOver を使用して、ユーザー·インターフェースをナビゲートします。アプリが"「あなたの iPhone アプリのアクセシビリティのテスト」のアドバイスに従って、正のアクセシビリティの経験を促進することを確認します。


関連記事

国際化

既出のディスカッション

iOS 用のアクセシビリティプログラミングガイド

サンプルコードプロジェクト

ImageMapExample






次の章
目次
Xcode 9 の新機能

インターフェースビルダー ヘルプ
NSObject(class)
概要(NSObject,class)

  • アクセシビリティ
  • VoiceOver での作業
  • アクセサメソッド
  • 命名規則
  • アプリ ID
  • 明示的なアプリ ID は、一つのアプリに一致
    ワイルドカードアプリ ID は複数のアプリに一致
    アプリコード署名
  • ブロックオブジェクト
  • ブロックの宣言
    ブロックの作成
    変更可能なブロックの変数
    ブロックを使用する
    比較演算
  • バンドル
  • バンドルの構造と内容 バンドルリソースへのアクセス
    ロード可能なバンドル
  • カテゴリ
  • 宣言
    実装
  • クラスクラスタ
  • 利点
    検討事項
  • クラスの定義
  • インターフェース
    実装(Implementation)
  • クラスメソッド
  • サブクラス
    インスタンス変数
    self
  • ココア(タッチ)、Cocoa(Touch)
  • フレームワーク(Framework)
    言語
    コーディング規則
  • コレクション(Collection)
  • コレクションクラス
    順序付けスキーム
  • コントローラーオブジェクト
  • コントローラの調整
    ビューコントローラ
    仲介コントローラ(OS X)
    宣言されたプロパティ
  • デリゲート(Delegate)
  • デリゲートとココアフレームワーク
    デリゲートと通知
    データソース
    動的バインディング
  • 動的型付け
  • isa ポインタ
  • 列挙
  • NSEnumerator
    高速列挙
  • 例外処理
  • 例外の種類
    コンパイラディレクティブを使用した例外処理
    信号伝達のエラー
    フレームワーク
    情報プロパティリスト
  • 初期化
  • イニシャライザ宣言の型
    初期化子を実装
    国際化
  • 内観(イントロスペクション)
  • イントロスペクション情報の種類
  • キー値コーディング
  • オブジェクトのプロパティと KVC
    クラスを KVC に準拠させる
  • キー値監視
  • KVO の実装
    KVO はバインディングの不可欠な部分(OS X)
  • メモリ管理
  • メモリ管理の規則
    メモリ管理の側面
    メッセージ
    メソッドのオーバーライド
  • モデルオブジェクト
  • うまく設計されたモデルクラス
  • モデル・ビュー・コントローラ
  • モデルオブジェクト
    ビュー・オブジェクト
    コントローラオブジェクト
  • 複数のイニシャライザ
  • 指定イニシャライザ
    Nib ファイル
  • 通知
  • 通知オブジェクト
    通知を観察する
    通知を投稿
  • アーカイブ
  • 鍵付き連続アーカイバ
    鍵付きアーカイブの作成とデコード
  • オブジェクトの比較
  • 比較ロジックを実装する
  • オブジェクトのコピー
  • オブジェクトコピーのための要件
    メモリ管理への影響
  • オブジェクト作成
  • オブジェクト作成式の形式
    メモリ管理への影響
    ファクトリメソッド
  • オブジェクトの暗号化
  • オブジェクトの暗号化と復号化する方法
    キー付き対連続的アーカイブ
    オブジェクトグラフ
    オブジェクトのライフサイクル
    オブジェクトモデリング
  • オブジェクト可変性(mutability)
  • 可変オブジェクトを受け取る
    可変オブジェクトを格納
    オブジェクトの所有権
    Objective-C
  • プロパティ(特性)リスト
  • プロパティリストの型とオブジェクト
    プロパティリストのベストプラクティス
    プロパティリストのシリアライズ
  • プロトコル
  • 公式、非公式なプロトコル
    正式なプロトコルを採用、準拠
    独自のプロトコルを作成
    ルートクラス
  • セレクタ
  • セレクタの取得
    セレクタの使用
    シングルトン
  • 統一された型の ID
  • UTI は逆ドメイン·ネーム·システム規則を使用
    統一された型 ID は適合階層で宣言
    OS X のアプリは、アプリバンドルでそれらを定義して新しい UTIを追加
  • 値オブジェクト
  • NSValue