More Related Content
Similar to iOSのVoiceOver対応開発 Rev2
Similar to iOSのVoiceOver対応開発 Rev2 (20)
iOSのVoiceOver対応開発 Rev2
- 2. ⾃自⼰己紹介
• 伊勢 シン(伊藤 伸裕) といいます!
• ⼤大阪で主にスマートフォンのアプリ作っています
– 主にiOS (しあわせ)
– たまにAndroid (かなしい)
– Windows Phone (やりたいけど仕事がない)
– Windows 8 (やりたいけど(ry)
• スマートフォン勉強会の関⻄西代表やってます。
• Microsoft MVP for Device Application Development
(Oct 2011 - Sep 2012)
– 簡単に⾔言うとMS製品よく広めてくれてるで賞
– MSの⽝犬と⾔言われてある意味不不名誉
- 4. おしながき
• 開発者にとってアクセシブルにするメリットとは
– 普通に作ったらVoiceOverで悲しい事態に!
• アクセシビリティサポート 実際のところ
– VoiceOverアクセシビリティ要素の基本
– アクセシビリティ簡単対応
– 独⾃自描画コントロールのアクセシビリティ対応
• アクセシビリティ属性の指定の仕⽅方
• アクセシビリティのデバッグ
- 6. なぜアクセシビリティサポートが重要か
• ユーザー層の拡⼤大
– 今まで使うことができなかった⼈人たちへリーチ
– より多くの⼈人にアプリを使ってもらう機会ができる
• アクセシビリティガイドラインへの対応
– 政府機関によって発⾏行行されている
アクセシビリティガイドラインへ対応することができる。
• “正しいことである”
- 7. VoiceOverつかったことありますか?
• タップで選択
• ダブルタップで確定
• ⼆二本指でスクロールすると読み上げ
• 三本指トリプルクリックでスクリーンカーテン
• ローター
– 読み上げ速度度などを変更更
• ただし⼊入⼒力力系の機能が弱い
– 変換するときに漢字の意味がわからない。
• See also
– http://www.ustream.tv/recorded/15304719
– 去年年同様のお話をした際VoiceOverを実際に使っている⽅方に
どのように使⽤用しているか説明して頂きました。
- 14. 5つの特性
種類 内容
Label ボタンの名前とか。⽂文字列列。
(ラベル) 「追加」「削除」
Traits コントロールの種類や、選択状態とか。定数から指定。
(特性) 「ボタン」「リンク」「テキストフィールド」「選択中」
Frame その項⽬目のスクリーン上の絶対位置。CGRectで指定。
(フレーム) コントロールの場合はframeプロパティそのもの。
Hint そのコントロールを使うと何が起こるのかを説明。⽂文字列列。
(ヒント) 特段必要でなければ設定されていないようです。
Value そのコントロールがどの値を⽰示しているか。スライダーなどで利利⽤用。
(値) ⽂文字列列。「50%」
- 18. カスタムドロークラスでの使⽤用
• drawRectで中⾝身を全部描画してる時などは、
カスタムドローUIViewで
UIAccessibilityContainer を実装する
– accessibilityElementCount,
accessibilityElementAtIndex,
indexOfAccessibilityElement を実装
– NSArrayをつくっておき、
上記3つのメソッドに委譲すると楽ですね
- 23. Labelの指定
• 短く、わかりやすく。
– なるべく1つの単語ですむように指定する
– ただし、同じ画⾯面に2つ以上の同じ機能がある場合
は「〜~を追加」みたいにする
• コントロールの種類を含めないこと
– 「追加ボタン」とLabelを指定すると、Traitsとあわせて
「追加ボタンボタン」と読み上げられてしまう
• 英語の場合先頭は⼤大⽂文字にする
– 抑揚の制御に使われる
• Labelの末尾にピリオドは付けない。
- 24. Hintの指定
• 必要なときに指定する
• そのコントロールを使⽤用したときに何が起こるかを
「⾮非常に簡潔に」説明
– 「曲を再⽣生します」「コメントを送信します」など
– 名前をつけないこと
(「戻る ボタン 戻るを押すと〜~」と冗⻑⾧長になってしまう)
– 「タップすると〜~」といった操作⽅方法の説明は付けないこと
(混乱のもとになる)
• 英語の時は以下の点にも注意
– 複数形で始める (命令令っぽさをなくす)
– 先頭⼤大⽂文字と末尾のピリオドは省省略略するのは
Labelと同じ
- 25. Traitsの指定
• 以下の属性から複数指定できる
– 「Not Enabled」な「Button」なども表せる
■ Button ■ Plays Sound
■ Link ■ Selected
■ Search Field ■ Summary Element
■ Keyboard Key ■ Updates Frequently
■ Static Text ■ Not Enabled
■ Image ■ None
- 31. おまけ
• ところでVoiceOverが有効かどうかが知りたい
– UIAccessibilityIsVoiceOverRunning 使えばいい
よ
BOOL
UIAccessibilityIsVoiceOverRunning();
• ステータスの変化はNSNotificationCenterで
UIAccessibilityVoiceOverStatusChanged
を監視すればOK。