Open1

視力0になった場合に備えて、自分用ツールを作る

kako-junkako-jun

目と心臓と足が悪いのです

視力は0.01くらい
乱視もあって、矯正しないと信号機が7個の緑のꙮに見えます

漫画の世界では

  • この月光、生来目が見えん とか
  • もはや目が見えん、大魔王(バーン)はどっちだ とか
  • ワムウのスイッチングとか
  • 幸村やプッチ神父やサガに視覚を奪われるとか

ピンチの演出として、視力0はメジャーですが
リアルで起きたら最も怖いことの1つです


WindowsにもAndroidにも
視力0用の読み上げ機能は、標準で備わってます

まずはその機能をオンにして
世界の賢い先人が、どんな補助がベストと判断してるかを調べよう

視力0でも文章を書いてる人はいるらしい

視力0でも、プログラミングはできるんだろうか……
中括弧とかインデントとか
文章とは一味違う、読み上げ方法、カーソル移動方法、入力方法が必要な気がする


視力が0になったら
それまでに見た景色の記憶を頼りに
想像で移動することになるんだろう

新しく行く場所には、怖くてすぐには対応できないだろう

いじけながら、点字の読み書きの練習を始めるのだろう

後天的でも、できるようになった人は多くいるという情報を
音声で聞いて、徐々に境遇を納得してくのだろう


新しい世界に納得し
それまでの延長の娯楽を諦め

新しい娯楽を探すのだろう

視力0でプログラミングはできないものならば悲しい
世界中に1人くらいいないだろうか

SNSを読んだり投稿したりは
できそうだという想像がつく

Androidの読み上げ機能は
画面内の触った箇所をとにかく読み上げ
2回タップで実行する仕様だから

いろんな箇所を1回ずつタップして
今の画面の状況の把握するのだろう


それは、OS内で動作する全アプリに対して
共通の挙動を有効にするモードだから

統一感あって
命綱になる機能だろうけど

あくまで目の見える人用のアプリを元にしてるわけで

もし視力0用アプリとして
最初から開発されたアプリがあったとしたら

使い勝手では、OS純正の補助機能に勝てるのでは……?


そのようなアプリはニーズがあると思う

ただ、目の良い人は
作ろうと思わないだろう

失明したプログラマーは
目の見えるうちに作っておけば!と後悔してるかもしれない

頭にコードは浮かんでるのに作れないもどかしさを解消するために
このようにコードを打ってくれれば作れるから!
と協力者に依頼して、付きっきりで作ろうとするだろうけど

そんな無敵な開発者はレアだから
結局思ったものにならず、未完成で終わるか妥協するかもしれない


営利企業は作らないだろう

オープンソースコミュニティは作るだろうか?

Linuxの読み上げ機能はオープンソースで作られてるけど
日本語は優先順位が低そう

盲学校で利用されているWindowsには
大昔からある視覚障害者用ポータルアプリが入ってて
キーボードショートカットを中心に操作するそう

まずそのアプリを使う訓練を、徹底的にするらしい

ただ、そのアプリは歴史が古いぶん
モダンな設計ではないみたい

Windows95のアプリのように、灰色で四角い
(まぁ、色は関係ないのだけど……)


そして、PC用OSでは
そのような視覚障害者用ポータルアプリが存在するのに

スマフォやタブレットの世界では
そんな常に全体化で起動させておくような

そのアプリを起点にして
他のアプリを経由せず、SNSの読み上げなど娯楽を楽しめるような

そういうポータルアプリは見つけられなかった


なので作ろうと思う

すでにある仕組みを最大限に再利用する仕様にする

読み上げ機能は、ブラウザ内蔵の音声(多言語対応済み)を使う

OS標準の支援モードもオンにするだろうから
それと衝突しないようにする
(2重読み上げとか)

そのように考えると
インストール型のアプリでなく

Webサイトとして
PC、スマフォ、タブレットに応じてレスポンシブに切り替わるような
視覚障害者用ポータルサイトを作り

自由にアクセスしてもらう
という構成になりそう


周りに介助の人がいない場合とか

心細い状況での話し相手とか

WebSocketでリアルタイムに
助けを求められるようなページも作れば

即効性のある解決手段として、便利かもしれない


Vue3、Tailwind CSS、Expressでプロトタイプは作成済みで

VPS(GCPのCompute Engine)で動作させて
実際に目をつぶって操作してみて、課題が分かったので

本番として

  • 画面側は、Vite + Reactで作り、DockerでCloudflare Pagesにデプロイ
  • サーバー側は、Denoで作り、DockerでGoogle Cloud Runにデプロイ

をやってみる

そこまでできたら
アナウンスして、フィードバックを集めよう