HOME

スクリーンリーダー対応アプリ作成のために

PC-Talker試用記

(株)高知システム開発の「PC-Talker体験版」が届いたので、プログラマ観点で試用記を書いてみる。

発端は、私の作ったフリーソフトについて、PC-Talkerを利用しているという視覚障害者の方からメールをもらったこと。そこでまず、スクリーンリーダー対応にするための情報をWebで探したのだが、「視覚障害者がパソコンを使うために」のようなページはそれなりにあるが、ソフトをスクリーンリーダー対応にするためのプログラマ向けの技術情報はほとんど見つからなかった。ので、(株)高知システム開発に問い合わせのメールを送ったら、「まず体験版を入れてくれ。SDKも送るから。話はそれからだ」(要約)みたいな返事が来たので送ってもらった物(無料)。

冊子小包か何かで来るのかと思ってたら、「点字用郵便」だった。確かにDVDのケースには点字のラベルが貼ってあったが……。あと、SDK(開発キット)はメールの添付ファイルで送ってきた。

とりあえずインストールしてみた。要メモリ512MBと書いてあったが、256MBでも動くようだ。 Microsoft Speech APIを使っているようで、それらしきモジュールもインストールされた。 再起動すると、メニュー等を読み上げ始めた。なかなか面白い。

アプリ起動時の読み上げ。

自動でダイアログボックスが開く時(スパイダソリティアのように)は、それを読み上げる。

メインウインドウにボタン等があり、それに自動でフォーカスがあたるなら、それを読み上げる。

そういった物が無い場合、 (自動では)何も読まない。(←ただし例外がいくつかある。Internet Explororやコマンドプロンプト等)

メニューの読み上げ。

ALTキーを押して離すと、トップメニューの左端(たいていは「ファイル」)を読み上げる。

その後、矢印キーで移動すると、該当メニューを読み上げる。

ALTキー+英字キーでメニューを開くと、トップメニューは読まずにいきなりサブメニューを読む。

その読み上げ内容だが、リソースファイルに(実際には半角で)
"ファイル(¥036F¥037フ)"
と書くと、「ファイル かっこ エフ ふ かっことじ」と読む。

一方、"ファイル(&F)"だと「ファイル エフ」と読む。

英語メニューの場合、"&File"は「ファイル」と読み
"E&xit"は「エグジット」と読むが、
"e&Xit"だと「イー クジット」のようになる。

途中に大文字があると単語の区切りとみなすようだ。(全部大文字なら大丈夫)

あと、"&New..."のように、ピリオドが三個ついていると、「ニュー ウインドウ」のように読み、それを選ぶと別のウインドウ(ダイアログ等)が開くことがわかるようになっている。(日本語でも同じ)

メッセージボックスの読み上げ。

Memomessage

図のようなメッセージボックスだと「メモ帳の警告メッセージ ファイル無題の内容は変更されています 変更を保存しますか エンターははい エヌはいいえ エスケープはキャンセル」と読む。

MessageBox(NULL, "hello, world.", "hello", MB_OK);
だと「ハローのメッセージ ハローワールド エンターはオーケー」と読む。

第三引数をNULLにしたMessageBox(NULL, "hello, world", NULL, MB_OK); だと「エラーのメッセージ ハローワールド エンターはオーケー」と読む。
(この場合、視覚上もタイトルバーに「エラー」と表示されている)

第四引数に|MB_ICONEXCLAMATIONを追加すると「警告メッセージ」になり
|MB_ICONINFORMATIONだと「情報メッセージ」になり
|MB_ICONSTOPもしくは|MB_ICONHANDだと「重要メッセージ」になり
|MB_ICONQUESTIONだと「ヘルプメッセージ」になる。(質問メッセージじゃないのか…)

PC-Talkerの設定で句読点を読むかどうかの設定があるが、その設定状況にかかわらず、メッセージボックスの場合、句読点やクエスチョンマーク、カンマやピリオドは読まない。 それどころか、+も−も×も/も読まないってどういうことよ。

ダイアログボックスの読み上げ(1)

Bmp情報ダイアログ

この図のような、OKボタンが一個だけで、あとは全部スタティックコントロールなダイアログの場合、メッセージボックスと同じ読み方になる。

つまり、まず「○○のメッセージ」(○○はタイトルバーの文字列)のように読み、次にスタティックテキストを「全部」読み、最後に「エンターはオーケー」と読む。

ただし、順番に注意!!

この例では「biSize 40 biWidth 783…」と読んでほしいところだが、読み上げる順番は位置(座標)ではなくリソースファイルに書いた順番なので、それを間違えると縦読みしたりして意味がわからなくなる。(実際、やってしまっていた。)

あと、シフト+Ctrl+上下矢印キーで、各項目を個別に読んだり、
シフト+Ctrl+左右矢印キーで、一文字ずつ読んだりすることができる。
次ページ

コメント、トラックバックはココログ