Superdry Memorandom :-p

旧「superdry memorandum :-D」です

Accessibility Servicesについて触ってみた

あんまり注目されないAccessibility Servicesについてちゃんと向き合ってみました。

Accessibility Servicesは「設定」-「ユーザー補助」の「ユーザー補助サービス」をさします。これらは主に障害者や高齢者などのハンディキャップのある方々の操作を支援するためのサービスとなります。Windwos XPの「ユーザー補助」みたいなものです。とはいえ、標準では、以下の操作フィードバック系のサービスしかありません。

  • TalkBack:TTSを使った音声読み上げ*1によるフィードバック
  • KickBack:バイブ(触覚)による操作フィードバック
  • SoundBack:音出力による操作フィードバック

あとは通話中で通話終了させたい場合、電源ボタンを押すことで通話終了できるようになるモードがついているのみです。

そもそもSDK1.6以上から対応されてたのですがサンプルコードがなく、SDK2.3になってやっとサンプルコードがあがってきました。サンプルは/platforms/android-/samples/...にあります。そしてこのサンプルClockBackをGoogleのサンプルコードのサイトを参考に操作してみました。*2 *3

  1. ClockBackをAndroid端末にインストール
  2. 日本語が読み上げてもらえないので設定より言語を変更する。TTSに対応している英語に変更。
  3. まずはClockBackを有効にしていない状態で触ってみる
    • SettingsからAccessibilityをクリックするとAccessibility Settingsが開きます。そこでAccessibilityのチェックボックスをONに
    • すると、Accessibility Servicesが選択できるようになるので、3つともチェック(TalkBack、KickBack、SoundBack)をつける。そうすると音声とバイブと操作音でフィードバックが返ってくる。トラックボールで操作しても同様です。
    • ランチャーからClockを起動し、Alarmsを操作してみる。
    • Timeを選択して時刻設定用のダイアログを開く。すると時分の編集エリアもそれぞれ読み上げてくれます。
  4. つぎにClockBackを有効にして触ってみる
    • SettingsからAccessibilityのAccessibility ServicesでClockBackにチェック。
    • Clockを起動しAlarmsのTimeを選択して時刻設定用のダイアログを開く。
    • 時刻を操作するキー(プラスキー、マイナスキー)にカーソルをあてると、前だと操作音だけだったのが、「Increase〜」「Decrease〜」と音声読み上げしてくれるようになります。(ユーザエクスペリエンスをリッチにするために共通認識を利用した特定のフィードバックの実現例)
  5. 今度は着信音をバイブにしてClockを起動しさわってみる
    • 時刻読み上げがなくなり、操作音とバイブのみのフィードバック。Clock以外のところではデフォルトのフィードバックとなる。
  6. 最後に着信音を無音にしてClockを起動しさわってみる
    • バイブのみのフィードバックになる。Clock以外のところではデフォルトのフィードバックとなる。 (デバイスの状態などによるユーザーコンテキストに沿うかたちでのフィードバックの実現例)

とりあえず触ってみたのみ。機会があったら実装までみてみます。現在 Eyes-Free open source projectでAccessibility Servicesのプロジェクトが広がってる模様。

正直、真剣にアクセシビリティを論じるまでには至ってない品質(TTSが英語のみなので英単語しか読み上げないという時点で終わってる)なのですが、いままでおざなりな品質を便利なレベルまで持ち上げてきたAndroidですから、これもそのうち拡張されるのかな。とりあえずコントラストの変更や拡大鏡あたりは標準で欲しいところですが…。

あと想定通り電池が恐ろしい勢いで減っていきます。そもそもまずは電池残量を音声お知らせするAccessibility Servicesがいるんじゃないかな…?

*1:ただし標準のPicoTTSには日本語がない。英語/フランス語/イタリア語/ドイツ語/スペイン語のみ

*2:ちなみにAndroid標準の時計アプリが入っている端末でないと動作しません。ご注意。

*3:またこのサンプルアプリは頻繁に異常終了します。ご注意。