VoiceOverに対応して画面を見ることなくPlaySectionsを操作可能に
PlaySections 2.1.0でVoiceOverに対応しました。VoiceOverに対応したことで、視覚に障がいがある方でも操作できるようになりました。
今回、VoiceOverに対応したきっかけは、全盲のユーザーの方からのリクエスト。VoiceOverについては何となくどんな機能かは知っていたのですが、今まで実際に使ったことはありませんでした。そのため、まずはVoiceOver機能自体について勉強することから始めました。
試しにVoiceOverをオンにして実際に使ってみると、確かにこれは便利な機能。VoiceOverに対応しているアプリは視覚に頼らずにちゃんと操作できることが分かりました。ということで、アプリをVoiceOver対応にする方法を調べることに。
- https://developer.apple.com/accessibility/ios/
- https://developer.apple.com/jp/documentation/iPhoneAccessibility.pdf
実装の参考にするために、他のオーディオ系アプリがVoiceOverに対応しているのか、どのように対応しているかも調べてみました。すると、VoiceOverに対応しているアプリがとても少ないことに気づきました。
VoiceOver対応アプリ
- ボイスメモ
- ミュージック
- Anytune
- djay 2
- Podcast
- Spotify
ボイスメモは、操作自体には問題ないけれど日付、トラックの位置の読み上げがおかしい。Spotifyもトラックの位置の読み上げがおかしい。djay 2も一部読み上げがおかしいところがあるけれど、操作自体には問題ない。ちなみに、開発元のAlgoriddimは類似アプリのdjay ProのVoiceOver対応で2016 Apple Design Awardを受賞。
VoiceOver非対応アプリ
- ハヤえもん
- Audipo
- GarageBand
- mimiCopy
- Kittar
- Repete
- robick
- Traktor DJ
Anytune以外の多くの耳コピ系アプリはVoiceOverに非対応。読み上げが変なだけでなく、操作が全くできないアプリもありました。Apple製のGarageBandもVoiceOverに対応していないのは意外。
PlaySectionsのVoiceOver対応
基本はiOSアクセシビリティプログラミングガイドに書かれているガイドラインに沿って実装することに。ボタンなどのLabel, Hint, Valueの名前や説明の付け方に関しては、Appleのガイドラインに従っておく方が、他のアプリとの統一感が出てユーザーが混乱しなくてすむと思います。
VoiceOverに対応しているApple製のアプリでさえも、日付・時間の読み上げがおかしいものなどが結構あるので、このあたりをPlaySectionsではちゃんと実装しようと気をつけました。
PlaySectionsは英語と日本語表示に対応しているので、それに合わせて英語と日本語でのVoiceOverに対応しています。日本語の場合、テキストの読み上げがおかしい場合があって、例えば「早戻し」は「ソウモドシ」と発音されてしまうので、あえて「はや戻し」と設定しています。ただ、これだとイントネーションが少し変になってしまうのが残念。
VoiceOver独自の機能として、Magic TapとEscapeがあります。
- Magic Tap(画面をダブルタップすると最も基本的な操作を実行)
- Escape(2本指でZ型に画面をスワイプするとダイアログを閉じたり、戻ったりする)
Magic Tap, Escapeはアプリ内で明示的に動作を指定しておかないと動作しません。PlaySectionsでは、Magic Tapには再生・一時停止を、Escapeにはキャンセルなど、前に戻る動作を割り当てました。
今回、VoiceOverに対応したことによって、いくつか使いづらいUIに気付かされたので、このあたりはまた次のバージョンで改善していく予定です。使いやすいUIを考え直す、いいきっかけになりました。