Accessible Tech Blog

ここはロービジョンの筆者がアクセシビリティや支援技術に関する情報を発信するブログです
このブログについて
2023-06-255 min read

視覚を使わずにプログラミングをする環境を考えてみた

はじめに

今回は目が見えない・見えづらい方でもプログラミングをするための環境作りについてお話します。
ここで紹介した方法は僕の実体験に基づいています。誰かの参考になれば幸いです。

Windows の導入

Windows には標準でナレーターという読み上げソフトがインストールされています。
「Win + Ctrl + Enter」でいつでもナレーターを起動できるので、初期セットアップ画面やログイン画面でも視覚を使わずに操作できます。

Mac にも「ボイスオーバー」という読み上げ機能があるのですが僕は Mac 歴が浅いのでまだあまり使いこなせていません。
(iPhone の方のボイスオーバーは毎日使っておりとても重宝しています)

ナレーター機能は Windows のあらゆる画面を読み上げくれるので基本的な操作が可能です。
しかし普段遣いするには少し機能が物足りないので普段は後述する NVDA という読み上げソフトを使用しています。

Windows には他にも画面を拡大する「拡大鏡」機能も最初からインストールされています。
「Win + テンキーのプラス」で拡大「Win + テンキーのマイナス」で縮小ができます。マウスのサイドボタンに割当しておくと便利です。
設定画面では全画面で拡大したり色を反転させたりといった細かい設定もできます。


プログラミング環境としては WSL(Windows Subsystem for Linux)という Windows 上で Linux OS を扱える機能がメリットです。
スクリーンリーダー利用者にとっては GUI よりも CUI の方が扱いやすいと思います。
最近はコンテナ技術のおかげでコマンドを 1 つ実行するだけで簡単にプログラミング環境を構築できる便利な時代になったと思います。

NVDA の導入

NVDA(NonVisual Desktop Access)は高機能でオープンソースのスクリーンリーダーです。
画像内のテキスト認識や読み替え機能など、標準のナレーターより機能が豊富なのでこちらを普段遣いしています。

プログラミングにおいては頻出するキーワードを自分好みに読み替え設定しておくとコードの理解が速くなります。

  • 読み上げ速度は速くするほど読み上げにかかる時間は短くなりますが聞き逃しが発生しやすくなります。僕は 60%程度に設定しています
  • 標準では一部の英語の読み方が不自然なのでEnglish Reading Enhancer というプラグインをインストールするしています
  • 読み上げ辞書機能により読み上げにかかる時間や認知コストを減らすことができます。例えば「/」を「スラ」と読ませたり「{」を「なみ」、「}」を「なみとじ」と読ませています
  • 読み上げが不要なものは読み上げされないように設定しています。例えばクリック可能なオブジェクトをフォーカスすると「クリック可能」と読み上げされますが不要なので読み替え後を空欄にして読み上げされないようにしています

WEB ブラウザさえ使えればプログラミングはできる

NVDA を使うと視覚を使わずに WEB ブラウザを操作できます。
そして昨今はプログラミングから公開までを WEB ブラウザだけで完結できるサービスが増えました。

例えば Google App Script、Google Colab、Cloudflare Workers、GitHub Codespaces など。
他にも Google スプレッドシートや Slack などスクリーンリーダーに対応しているサービスは数多く存在します。
これらを組み合わせれば視覚を使わずに十分プログラミングができます。

もちろんローカル PC に開発環境を作ることもできます。
その場合は後述する VS Code を使う方法がおすすめです。

VS Code の導入

VS Code は現在世界で最も多く利用されているテキストエディタです。
簡単な文章作成はもちろん、様々なプログラミング言語での開発やモバイルアプリ開発さえもできてしまいます。

開発元が Windows と同じく Microsoft なのでアクセシビリティにも優れています。
ナレーターや NVDA 等のスクリーンリーダーを自動認識して最適化してくれます。

その他にも以下のようなメリットがあります。

  • ショートカットが豊富なためキーボードだけで操作できます。もちろん自分好みにショートカットをカスタマイズできます。
  • ショートカットを忘れた場合は「F1」または「Ctrl + Shift + P」でコマンドパレットを開くと操作可能なコマンド一覧が表示されます。キーワードで絞り込みもできます。
    • ターミナルが一体化しておりすぐにコマンドを実行できます。コマンドを実行後「Shift + Tab」でコマンド出力エリアに移動できます。「Tab」を押すとコマンド入力エリアに戻れます。

マウスは使わなくなった

スクリーンリーダーを使い初めてから徐々にキーボード操作だけにシフトしていきました。
まだ少し見えていた頃は Windows の拡大鏡機能を使って頑張ってマウスでカーソルを合わせていましたが、キーボードのショートカットを使えば一瞬で操作が完了することに気付きました。
例えば Windows で現在のウィンドウを最小化する手順は以下の通りです。

マウスの場合:

  1. ウィンドウ右上の最小化アイコンにマウスカーソルを合わせる
  2. クリックする

キーボードの場合:

  1. キーボードで「Win + 下矢印キー」を押す

キーボードの場合はマウスカーソを合わせたりキーボードからマウスに持ち替えたりしなくてもいいので操作にかかる時間や集中力が大幅に削減されます。

ディスプレイは必要な時だけ

QR コードの確認やスクリーンリーダーで読み上げされない時(BIOS 画面や Windows Update 画面等)以外は使わないので普段はディスプレイの電源を切っています。
ディスプレイに映ったテキストや画像は iPhone の Seeing AI というアプリで読み上げしています。

AI によって情報が「見える」ようになる?

昨今の AI の進化によって画像内のテキスト認識の精度が上がっています。
iPhone なら Microsoft 製アプリの「Seeing AI」を使ってカメラに写ったテキストを次々と読み上げできます。
活字であれば日本語・英語問わずに高い精度で読み上げてくれます。
他にも明るさを音の高さで教えてくれる機能や色を読み上げてくれる機能もあります。

また、昨今は ChatGPT などの対話型 AI の進化も著しいです。
いずれは画像認識と組み合わせて AI が対話式で写真や映像の説明をしてくれるようになるかもしれません。
そうすると以下のようなことができるようになると思います。

  • 写真内の人物の髪型・髪色・表情・ポーズなどを教えてくれる

  • 家電の操作盤の説明をしてくれる(どのボタンを何回押せば良いか等)

  • テレビや映画の副音声で場面を説明してくれる(現在は対応作品が少ない)

  • ゲームのガイドやシーンの説明をしてくれる(現在は対応作品が少ない)

  • 漫画の場面を説明してくれる(現在はセリフしか認識してくれない)

  • イラスト・実写・人形などを区別してくれる

  • 細かい色合いを説明してくれる(白色だけでもオフホワイト、スノーホワイト、パールホワイト等様々なバリエーションがある)

  • 材質や質感を説明してくれる(木製、金属製、光沢がある、ざらざらしている等)

    このように写真や映像から多くの情報が取得できるようになれば私たち視覚障がい者はもっと生活しやすくなると思います。
    今回は以上です。

関連記事