見出し画像

視覚障害者はプログラマーとして生きられるか  音のみでプログラミングをする際の諸問題とその解決策について

こんにちは、土田淳也(@mocoatuya)です。
網膜色素変性症という目の病気により視覚障碍者となりながらも、プログラマーとして生きていくために考えたこと、実践したことなどを綴る記事です。

最近、音情報のみを頼りにプログラミングが出来るようになるために日々奮闘しています。今回の記事ではその奮闘の際に直面した問題の一部と私なりの解決策などについて書いていきます。

環境:Windows10 + NVDA version 2020.2jp + VSCode

一行が長いコードを把握できない問題

NVDAではカーソルを合わせた1行を読み上げてくれます。読み上げの速度もそれなりに速くすることができるので、基本的にはこの1行ごとの読み上げを利用してコードを書くことになると思います。
しかし、ここで問題に直面しました。
1行が短い場合、1行ごとの読み上げで内容を把握することが可能なのですが、1行が長いコードだと行の後半部分が読まれる頃には行の前半部分が記憶から飛んでいるため、1行のコードの内容を理解することができません。訓練を重ねれば1行が長いコードでも把握できるようになるのかもしれませんが、暫定的にこの問題を解決する方法として

Ctrlキー+矢印キーによりカーソルを移動させるという方法を見つけました。

Ctrlキー+矢印キーによりカーソルを移動した場合、一定のかたまりごとに読み上げがおこなわれます。1文字ずつの読み上げよりも速いペースで読み上げを行うことができ、また自分のペースでカーソルを動かすことができるのでコードの把握もしやすいです。よって効率的な開発には必須の手法だと思います。

大文字と小文字が区別できない問題

プログラミングでは大文字と小文字を区別して書かなければいけないケースがほとんどだと思います。このことからすべてのコードの大文字と小文字を把握する必要があると考えていました。しかし、上記の1行ごとの読み上げでは大文字と小文字を区別した読み上げをしてくれません。
1文字ずつの読み上げを行えば大文字と小文字の区別をつけることは可能ですが、すべてのコードに対してそれを行うとなると膨大な時間がかかります。ここで私の心は折れかかったのですが、よくよく考えてみると

大文字と小文字を把握する必要はない
と気が付きました。

VSCodeには予測変換機能があり、入力を予測変換により確定することで以前に宣言された変数などが大文字であるのか小文字であるのかを意識する必要がなくなります。この機能により大部分の大文字小文字問題は解決されると思います。

ターミナルの出力が一気に読み上げられる問題

VSCodeには統合ターミナルというものがあり、エディタとターミナルはCtrl + @ で行き来することができます。この統合ターミナルを使う際にも問題に直面しました。ターミナルの出力が一気に読み上げられる問題です。
ファイル実行の際に長いエラーが出力されたときなどは、延々と出力の読み上げが行われ、読み上げが終わったころには何も記憶に残っていないという事態が頻発しました。この問題は
Ctrlキー+上下矢印キーによりターミナルの1行ごとの読み上げをおこなうことで解決できます。Ctrlキー+上下矢印キーによる操作を行うとターミナルの入力が一時的にできなくなるのですが、Escキーを押すと再度ターミナルの入力を行うことができるようになります。また NVDAキー+スペースキーを押し、ブラウズモードに切り替えることで一定のかたまりごとや1文字ごとの読み上げも行うことができます。ターミナルに入力を行う場合は再度NVDAキー+スペースキーを押しフォーカスモードに切り替える必要があります。

まとめ

今回とりあげた問題以外にも解決しなければならない問題(ターミナルのコマンド履歴を読み上げてくれない問題など)が山積みですが、私なりの解決策が見つかったらまた記事として投稿したいと考えています。
記事を読んでいただきありがとうございました。

この記事が気に入ったらサポートをしてみませんか?