システム開発2016/03/03
スクリーンリーダー(画面読み上げソフト)の音声を聞かれたことがあるでしょうか。以前より書いておりますように私は全盲で、スクリーンリーダーを使ってシステム開発~プログラミングを行っています。
まずは、簡単なプログラムを作成した際の音声を録音してみましたので、どのように読み上げが行われるのか、お聞きになってみてください。
スクリーンリーダーを録音した音声
いかがでしたでしょうか。感想は様々かと思いますが、ある程度高速に操作内容を読み上げていることがお分かりいただけるかと思います。また、お聞きいただいてお分かりになった方もいらっしゃるかもしれませんが、一般的にスクリーンリーダーを使わない方が同じ操作をする場合とは異なる操作(そもそもマウスを使わずキーボードのみで操作しているという時点で、一般的な操作方法とは異なりますが、それはおいておいて)をいくつかしている箇所があります。その内容を踏まえて、スクリーンリーダー環境でのプログラミングにおいて、どのような工夫をしているのか、いくつか紹介させていただきます。
今回の操作内容
まず、今回の音声作成にあたっては、以下の操作を行いました。
- Microsoft Visual Studio(以下VS)でC#のコンソールアプリケーションプロジェクトを作成
- エクスプローラから該当ソリューションのprogram.csを開いて編集
→「hello」と表示するだけのとくに意味のないコードを書いています - VSでビルド
- エクスプローラでビルドモジュールの場所に移動し、バッチを作成して実行
→「exec.bat」というファイルを作成し、プログラムを実行した結果を「result.txt」にリダイレクトしています - 再度program.csを開いて若干編集
→「こんにちは 1」「こんにちは 2」と10まで出力する、これもまた特に意味のないコードに変更しています - VSでリビルド
- バッチにて実行して、結果ファイルを確認
上記の操作について、いくつかご説明します。
2.エクスプローラから該当ソリューションのprogram.csを開いて編集
これは、VSの画面上で編集するのがやりにくいために、VSとは関係ないエディタにて対象ソースを開いて編集しています。「やりにくい」というのは、具体的には保管機能やインテリセンスなどの機能により、自分の感知しない部分でコードが書き換わることで、現状の把握がしにくいということを意味しています。私はこれが嫌で、VS等のIDE(統合開発環境)は、ビルド用には利用しますが、コードを書く目的では利用していません。
4.エクスプローラでビルドモジュールの場所に移動し、バッチを作成して実行
これは、コマンドプロンプト上での実行結果をスクリーンリーダー環境で確認しにくいということに起因しています。スクリーンリーダー側の機能向上により、コマンドプロンプト上の文字列の読み上げにも対応するようになってきましたが、出力文字を上下移動して確認したり、切り貼りしたりすることを考えると、ファイルに記載された文字列の方が断然扱いやすいため、私は頻繁にこの方法(バッチにて実行して結果をファイルにリダイレクト)を用いています。
スクリーンリーダー環境でのプログラミングに
関する工夫
スクリーンリーダーを使っての工夫となるとかなり広くなり、こまごまとしたものが沢山でてきてしまうので、今回はプログラミング、それも原則VS上での開発に限って行っている工夫内容を記載します。
なお、あくまで「私なりの工夫」であり、他のスクリーンリーダーユーザに全て当てはまるものではないことをお断りさせていただきます。
- ソリューションは分かりやすい場所に作る(VSのデフォルト作成パスを使いやすい場所を設定しておく)
→上記2.の通り、エクスプローラからソリューション格納場所を開くため、分かりやすい場所に格納することが効率的な操作につながります。また頻繁に利用するソリューションがある場合は、ショートカットを作成しておくことも有用です - CUIプログラムの動作確認は、バッチファイルから実行して、結果をファイルにリダイレクトして確認する
→上記した通り、プロンプト上の出力文字列の確認を行うのに比べ、ファイル出力内容の取り扱いが圧倒的に容易であるためにこの方法を多用しています。また、入力を求めるプログラムであっても、リダイレクト中ファイルを、排他ロックしないエディタ(メモ帳など)であれば読み取り用に開くことが可能であるため、求められている内容を確認しつつ、入力を行えます。 - 命名規則は統一する
→これはスクリーンリーダー環境や視覚障害に限った話でもありませんが、命名規則は統一しておくと、変数名やメソッド名を思い出せなくてコードを読み返すというようなことを避けられるので、作業が効率化できます。特に入力保管などを使わないため、思い出しやすい命名が重要と思っています(そういう意味では当然ですが分かりにくい命名はNG) - 重複コードは書かない
→この辺も一般的な話でもありますが、私の場合コードを一般のエディタで編集している分、VSであれば一箇所直せば自動的に他も直るようなケースでもエディタではそうは行かないので、重複コードは書かない(リファクタリングする)ことを心がけています
今回お聞きいただいた音声
なお、今回は、PC-Talkerというスクリーンリーダーを、下記設定で使用した際の音声となっています。以下設定項目をご覧になっていただくと分かるように、音声の種類や音声スピードなどは聞きやすい内容に変更が可能となっていますので、今回お聞きいただいた音声はあくまで私の利用環境でのものとご理解いただければと思います。
・音声の種類: Show(VOICE TEXT 男性音)
・英語音声の種類: Kate(VOICE TEXT 英語女性音)
・サブ音声は使わない(日本語・英語共)
・日本語スピード: 15
・英語スピード: 9
最後となりますが、スクリーンリーダーの読み上げ音声の公開につきまして、ご承諾いただきました株式会社高知システム開発様にこの場をお借りしてお礼申し上げます。