2011-01-04
■[アクセシビリティ]第2世代Apple TVのVoiceOver
昨年2010/12/23に、近くのヤマダ電機でApple TVを買いました。
第2世代Apple TVのiOS 4.1以降にはVoiceOver機能があり、音声フィードバックで全盲社でも使うことができます。
Apple TVで何ができるか、買うべきか買わざるべきかという記事はたくさんあるようなので、ここではVoiceOver機能のみに絞ってレポートしてみます。
読者としてVoiceOverを使いたいユーザを想定します。
基本的な操作
操作のイメージを持ってもらうために、まず操作系について説明します。
Apple TVの操作はすべて付属のApple Remoteで行います。
Remoteには上半分に丸い方向キー、方向キーの真ん中に決定キーがあります。その下に左側にくぼんだMENUキー、右側に再生/一時停止ボタンです。たったこれだけです。Apple Remoteそのものには「MENU」以外文字での記載はありません。
操作系は、方向キーで選択して決定キーで決定、メニューキーを押すと一つ前の階層に戻る、という単純なものです。
左から右に向かって、ムービー、インターネット、コンピュータ、設定というタブがあり、Remoteの左右を押して移動します。タブの中では上下に項目が選択できます。
操作をすると、反応したときにぴっという小さい音がします。トップの階層でメニューを押したり、設定のエリアで右を押したりというように、無効な操作をすると違った音がするのでわかります。
VoiceOverが有効になっていると、選択した項目や、今どの階層にいるかをしゃべってくれます。ほとんどの操作がVoiceOverの音声を聞きながら行えます。
日本語も英語も、iPhoneと同じ声でしゃべります。
VoiceOverのOn/Off手順
iOS 4.1が入っている状態でVoiceOverをon/offする手順は以下のようになります。
- メニューキーを何度か押してトップレベルの操作階層に移動します。
- 方向キーの右を何度か押して、「設定」のエリアに移動します。端っこでは違った音がするのでわかります。
- 方向キーの上を何度か押して、一番上の「一般」を選びます。
- 決定キーを押して「一般」の中に入ります。
- 方向キーの下を10回押して、上から数えて11番目にある「アクセシビリティ」を選択します。
- 決定キーを押して「アクセシビリティ」の中に入ります。「VoiceOver」という項目が選ばれた状態になります。
- 決定キーをもう一度押します。VoiceOverがoffならonに、onならoffに切り替わります。
使い始めに少し難あり
さて、それなりに使えるのですが、私が購入したものは内蔵のiOSのバージョンが古く、最初はVoiceOverが使えませんでした。
設定項目そのものがなく、一度ネットワークにつないで画面をみてもらいながらOSを4.1にアップデートするとアクセシビリティの項目が現れました。
OSのアップデートは、有線LANなら手数を覚えて自力でできる作業かもしれませんが、もはや古いOSがないので「アップデート」がどこにあるか説明できません。ちなみに4.1では一般の上から7項目目(上の端から下キーを6回押したところ)にあります。
私が買ったのはたまたま売れ残りで、今買えばiOS 4.1が入っていることを期待します。
それから、買ってきて最初に電源を入れるとOSが起動して言語選択(初期値はEnglish)、その後に無線LANの設定があります。メニューキーを押すとネットにつながらないままでトップの操作階層が表示されました。
現在のVoiceOverの問題点
iPhoneに存在する音声の問題点がそのままApple TVにも当てはまります。英字列の読み下しがおかしい点、日本語音声が音素レベルで崩れてぐしゃぐしゃになることがある点などです。また、日本語では検索などで使うソフトウェアキーボードの一部の記号が「ボタン」とだけ読まれて識別できません。ちなみにApple TVでは画面上でも日本語入力ができないので、検索はiPhoneのRemote Appを使う方がよいです。
それから、VoiceOverが有効だと、曲の変わり目で曲名をしゃべるのでちょっとうるさいです。iPhoneではHomeボタンを3回押すことでVoiceOverをOn/Offできますが、Apple TVにも何らかの工夫がほしいところです。
感想
iPod Nano, Mac OS X, iPhone/iPod Touchに引き続き、視覚に頼らなくてもちゃんと使えるようになっている点は非常にうれしいです。iTunesライブラリとAV機器とiPhoneなどをつなぐハブといった位置づけの機器ですが、\8800という価格でここまでできてしまうのは、iOSの共通プラットフォームと世界中で使われる市場の大きさによるところなのでしょう。Apple製品にはより隅っこの改良を要望したいところではありますが、それ以上に他メーカーが追従してくれることを望みたいです。
2010-02-11
■[PC][アクセシビリティ]Mac OS Xアクセシビリティ勉強会やりました
先日1/30,31にただの個人の集まりであるArgument VectorでMac OS Xアクセシビリティ勉強会というのをやりました。タイトルはMacですが、MacとiPhoneのアクセシビリティについて実演を交えながら語るというものです。
最初は仲間内の宴会のはずだったのですが、気がつくと結構オーバースペックな機材を使ったネット放送ということになってました。それぞれの資料もかなり力はいったものになってます。当日の録音が昨日公開されました。
私は序盤のVoiceOverで始めるMac OS Xというのを担当しました。しゃべりは下手なのでともかく、資料は現時点では日本のMac+VoiceOver入門としてアップルの資料の次によくまとまってるんじゃないかと思っています。(早くそうでなくなることを願いつつ。)
アップル製品は視覚障害者にとって、特に全盲者にとって遠い存在だったのですが、昨年発表されたiPhone 3GSのVoiceOverが日本語でもかなり使えることからユーザが増えています。Macについては価格もパソコンなのでまだ日本のVoiceOverユーザは両手分いないんじゃないかと思いますが、これからじわじわ増えていくことでしょう。そういう時期の記録としても今回の勉強会は意義があると思っています。
2009-04-14
■[JAWS]JAWSとプログラミング言語ruby
スクリプト言語ruby、私は日頃Linux上で使うことが多いのですが、Windows上でJAWS for Windowsと一緒に使うと、なぜか出力メッセージなどを読み上げず、JAWSカーソルによる画面探索も何もできない状態に陥る、という現象を経験していました。JAWSはWindowsのGUI部品やブラウザのみならずコマンドプロンプトも読み上げるため、プログラミングやシステム管理には必須だと思っています。しかし、なぜかrubyだけ音声が出ないのでした。
1年くらい前に気がついてrubyのソースコードを読んだりいろいろなWindows版rubyを試したりしていたのですがなかなか解決策を見つけられませんでした。
ところが、今朝この状況がJAWSの「スリープモード」ににているというかそっくりであることに気づきました。そして実際、JAWSの共通設定フォルダにruby.jcfが。我ながら何というか遅すぎです。
結局たどり着いた解決策ですが、以下の2行を書いたruby.jcfというテキストファイルを作り、それをJAWSの個人設定フォルダに置けばOKです。
[options] SleepMode=0
では何でrubyにスリープモードを適用する必要があったのかということになります。調べてみると、欧米で使われているOpenBookという有名な視覚障害者用OCRソフトの一時期のバージョンとして、「OpenBook Ruby Edition」というのがあるようです。ruby.jcfは(おそらく)そのための設定なのです。つまり、OpenBookは元々視覚障害者用アプリで、それ自体で読み上を行う機能があります。そのような時、JAWSも画面読み上げを提供すると重複した読み上げとなるため、スリープモードにしてJAWSの読み上げを抑制していたのです。しかし、きっと後発でrubyというプログラミング言語が現れて実行ファイル名が重なってしまったために、言語のrubyもスリープモードになってしまうのだと思われます。
同様な状況になってグーグルに聞いてみた人が情報に出会えるように、ここに書いてみました。
2009-01-31
■[JAWS]はてなとかWikipediaをよく見る人のためのJAWS設定
JAWSでウェブページを閲覧する場合、仮想バッファと呼ばれる見えない場所に閲覧用の文書が準備されて、それを矢印キーで読んでいくことになります。
閲覧用の文書はブロック要素やある程度の長さ単位、それにリンクなど操作対象単位で改行されます。なので、1単位があまり短いと、下矢印キーをたくさん押すことになります。もちろんINSERTキー+下矢印で全文まとめて読ませることもできますが、閲覧のコントロールを失った気がして私はあまり使いません。
たとえばこんな感じに見えます。
新年早々失礼します。 リンク Linux を端末で操作している時、失敗したことにすぐに気づかないことがあります。私の場合、結果を リンク 点字 ディスプレイなどで確認するのですが、絶対成功する.....(以下略)
読むのがめんどくさいなと感じるページにはてなダイアリーやWikipedia(というか一般にWiki)があります。これらでは、文中のキーワードがリンクになっています。そのため、上のように細切れになり、とても面倒に感じるわけです。
JAWSには表示モードとして、リンクごとに改行せず、もっと1行を長く表示するモードがあります。INSERT+Vを押し、「D 文書表示モード」を「簡易レイアウト」から「画面レイアウト」にすることで、リンクいっぱいの文書もざっくり読みやすくなります。リンクの部分は「リンク」という言葉を前置きして読み上げられるので、ほんとにリンク先を見たいならTabキーでそのリンク部分に移動してEnterキーを押せばいいわけです。
ところがこの設定はブラウザを閉じたりタスクを切り替えると元に戻ってしまいます。また、切り替えた後はすべてのサイトで画面レイアウトになってしまうため、それはそれで困ることもあります。
そこで、INSERT+Shift+V(個別設定)を利用します。特別扱いしたいサイトで個別設定を開き、同じように画面レイアウトに設定すると、以後そのサイト(d.hatena.ne.jpなどFQDN単位)でその設定が有効になります。その他のサイトでは依然として簡易レイアウトのままです。
という使い方、知っていたのですがふと思い出したので先ほど設定してみました。幸せになれるでしょうか。
2009-01-03
■[PC]コマンドが失敗したらビープを鳴らす(zsh)
新年早々失礼します。
Linuxを端末で操作している時、失敗したことにすぐに気づかないことがあります。私の場合、結果を点字ディスプレイなどで確認するのですが、絶対成功すると思い込んでいる時には確認をサボりがちで、そういう時に限ってミスっているというようなことが最近もありました。
こちらのページで、zshにprecmdという関数があることを知りました。プロンプトが表示される直前に実行されるので、これを定義しておくことでコマンド実行後に何かさせることができます。
これを応用してコマンドが0以外のステータスコードを返したらビープをならすようにしてみました。
precmd () {
if [ $? != 0 ]; then
echo -n \\a
fi
}
これの問題点はCTRL+Cで入力を中断したときもビープがなってしまうことですが、EmacsだってC-Gでビープするし、問題ないでしょう。
ちなみに、bashでもできないのかと調べてみると、precmd/preexecをbashで実現する方法を考えた人がいるようです。まだ試してはいません。