1分あたり450ワードの開発

「何かがここにありません。」 私の職場をオフィスで見たら、この考えがまず頭に浮かぶでしょう。 モニターとマウスはありません。 キーボードをたたく人がいるだけです。







それは私だけであり、同僚は私が通常危険ではないことを保証します。 私はタンペレ(フィンランド)のVincitのオフィスのプログラマーです。 そして私も盲目です。 この記事では、私がどのように働いているかについて少しお話したいと思います。



あなたは本当に盲目であるという意味で盲目ですか?



そうだね。 日光といくつかの非常に明るいランプを知覚できますが、それだけです。 実際、仕事に役立つものは何もありません。



では、そこで何をしていますか?



みんなと同じ:私はソフトウェアを作り、時間が許せば同僚を楽しませます。 バックエンドに焦点を当てたフルスタックWebプロジェクトに取り組みました。 また、障害者のためのプロジェクトの一般的なアクセシビリティに関するコンサルタントの役割、または警察の役割も引き受けました。 外見に応じて。



コンピューターはどのように使用しますか?



私は、Windows 10で完全に通常のラップトップを使用しています。ソフトウェアのすべての「魔法」。 コンピューターにアクセスするには、スクリーンリーダーと呼ばれるプログラムを使用します。 画面から画像をキャプチャし、点字(別の点字ディスプレイを使用)または音声合成で情報を表示します。 これは、現在のデジタルアシスタントから聞こえる合成音声ではありません。 私は毎分約450語を話すロボットの声を使用しています。 これに対して、ネイティブスピーカーは通常、1分あたり120〜150語を発音します。 私のシステムには1つの機能があります。フィンランド語と英語の両方を定期的に読む必要があるため、フィンランド語の音声合成装置で英語を読みます。 昔、スクリーンリーダーは言語を自動的に切り替えるほど賢くなかったので、私はそのように読むことに慣れていました。 これは私が聞いているこの段落の例です 。 そして、これは英語の音声合成装置による同じテキストです。



当然、マウスは私にとって特に有用ではないので、キーボードのみを使用します。 私のキーボードコマンドは、この記事を読むすべての人になじみのあるものでなければなりません。矢印、ウィンドウ内をナビゲートするTabキー、Alt + Tabキーでウィンドウを切り替えるなどです。 スクリーンリーダーには、たとえばアクティブウィンドウのさまざまな部分を読み取ったり、独自の機能の一部をオン/オフしたりするための独自のホットキーも多数あります。



Webページやその他のフォーマットされたドキュメントを読むとき、すべてが少し面白くなります。 スクリーンリーダーは、この情報を断片的に提供します。 ほとんどの場合、この部分は文字列ですが、単語、記号、またはその他の任意のテキスト部分でもかまいません。 たとえば、Webページで下キーを押すと、次のテキスト行が聞こえます。 このタイプの読書は、目の見える人と同じように画面の内容をスキャンすることはできないことを意味します。 私はすべてを1つずつ読むか、必要のない部分をスキップする必要があります。



音声または点字だけでは、ページがどのように見えるかを正確に伝えません。 すべての情報は直線的に私に与えられます。 Webページをコピーしてメモ帳に貼り付けると、私にはどのように見えるのかという一般的な印象が得られます。 それは、書式設定がほとんどない、互いに重なり合った単なる行です。 ただし、スクリーンリーダーはHTMLからセマンティクスを取得できるため、リンク、見出し、フォームフィールドなどが正しく宣言されます。 これはそうです。スタイルがこのように記述されていない場合、チェックボックスがチェックボックスであることはわかりません。 ただし、これについては後で詳しく説明します。 このトピックに記事全体を捧げます。 私の例は人道に対する罪であることを忘れないでください。



私はほとんどの時間をコマンドラインで過ごします。 実際、Webブラウザーとエディター以外のグラフィックアプリケーションはほとんど使用しません。 多くの場合、マウスユーザーを念頭に置いて設計されたインターフェイスを使用するよりも、コマンドラインで手動でタスクを完了する方がはるかに高速であることがわかりました。



それでは、コマンドラインに対する私の愛を考えて、なぜコマンドラインツールで有名ではないオペレーティングシステムであるWindowsにこだわるのでしょうか。 答えは簡単です。Windowsは最も手頃なシステムです(障害を持つ人にとっては約 トランス。]。 私のお気に入りのNVDAスクリーンリーダーはフリーソフトウェアです。他のスクリーンリーダーよりも積極的にサポートされています。 選択肢があれば、Mac OSを使用します。私の意見では、利便性と機能性の間にはきちんとしたバランスがあります。 残念ながら、このVoiceOverシステムのスクリーンリーダーは長いリリースと一般的な怠慢に悩まされており、そのナビゲーションモデルは私の特定の作業スタイルとあまり互換性がありません。 Gnomeデスクトップ用のスクリーンリーダーもあります。このような小さなユーザー向けに優れたサポートが提供されていますが、まだ鋭い角があるため、私にとっては常に使用するには適していません。 だからWindowsのみ。 Git Bashの内部に住むことで、このOSに固有の欠陥を補います。GitBashには、すぐに使えるGNUおよびその他のコマンドラインユーティリティの優れたセットが付属しています。



どうやってコーディングできますか?



この問題が多くの人々にとって非常に重要である理由を理解するのにかなり時間がかかりました。 行ごとにテキストを読むことについて私が言ったことを覚えていますか? だから私はコードを読んだ。 不要な行をスキップするか、コンテキストのために半分しか聞くことができませんが、本当に理解する必要がある場合は、すべてを小説として読みます。 当然、このように巨大なコードベースを読むことはできません。 これらの場合、頭の中でコードの一部を抽象化する必要があります。このコンポーネントは、実際に何をしても、入力でxを受け取り、yを返します。



このタイプの読書は、目の見える同僚とは異なる方法で特定のタスクを実行することを強制します。 たとえば、コード検査プロセス中、可能な限り生の差分を確認することを好みます。 横並びの差分は、私にはあまり役に立ちません。実際、気を散らすものです。 プラス記号とマイナス記号は、強調表示するよりも、変更された行を示す優れた指標でもあります。 色の名前が読めないからではありません。 プラス記号は、追加された行に使用される複雑な赤の色合いの名前よりも速く発音されます。 (私はあなたを見て、Gerrit)。



これは視覚的なハイライトであるため、インデントやその他の書式設定は完全に見えないままになると思うかもしれません。 False:正しいインデントは、目の見えるプログラマーのように私を助けます。 点字でコードを読んだ場合(ちなみに、音声よりもはるかに効率的です)、目が見えるプログラマーのように、私がいる場所に良い視覚的なキーを与えます。 また、インデント付きまたはインデントなしでテキストブロックを入力すると、ボイスメッセージを受け取ります。 この情報は、頭の中でコードのマップを描くのに役立ちます。 実際、インデントが問題になったことはないので、私が最初に使った実際のプログラミング言語はPythonでした(PHPは考慮されません)。 私は多くの理由できれいで一貫したプログラミングスタイルを強く支持していますが、それは主にそれが私の人生を限界まで複雑にしないからです。



どのエディターが好きですか?



ネタバレ:この質問に対する答えは、文字VまたはEで始まっていません(もちろん、Vimを使用してコマンドラインでgitコミットおよびその他のクイックマーキングに関するメッセージを作成します。この特定の地雷原では中立です)。 1年前のエディターの中では、Notepad ++を選択しました。 これは、軽量で適切に設計されたテキストエディターであり、その役割を果たします。 しかし、1年前、私は大規模なJavaプロジェクトに取り組んでいませんでした。 これが起こったとき、メモ帳++と常識の間で選択する時が来ました。 結局、私は(できる限り)2番目に傾いて、IntelliJ IDEAのためにNotepad ++をドロップしました。 それ以来、これは私のお気に入りのエディターです。 ほとんどのIDEはキーボードからのみ使用することは不可能または非効率的であるため、すべてのIDEに対して根深い嫌悪感を抱いています。 おそらく、私が目撃されていれば、もっと早くIDEに切り替えたでしょう。



Notepad ++を選んだ理由を尋ねるかもしれません。 Sublime TextやAtomのような、より高度な軽量エディターがあります。 答えは簡単です。スクリーンリーダーでは使用できません。 Vimのようなテキストエディターもオプションではありません。スクリーンリーダーにはコンソールアプリケーションのサポートに問題があり、コミットメッセージよりも大きなものにこれらのエディターを使用することができないためです。 残念ながら、アクセシビリティ[視覚障害者-約。 transl。]は私のツールの主な要素です。 ツールを効果的に使用できない場合、そのツールは考慮されなくなります。



フロントエンドコードを使用したことがありますか?



フロントエンド開発は視覚的に非常に視覚的であるため、盲目の開発者には場所がないと思われるかもしれませんが、ほとんどの場合はそうです。 これらのプロジェクトでは基本的に正しいビューを作成する必要があり、機能は後で追加されるため、私自身は基本的な概念を作成しません。



ただし、AngularとReactにも作業があります。 どうして? 多くの最新のWebアプリケーションでは、ほとんどの作業はブラウザーの内部で行われます。 たとえば、数週間に一度、かなり複雑なAngularアプリケーションで国際化サポートを実装しました。 視覚的な作業はまったくありませんでした。



Bootstrapのようなライブラリは、私にとって本当の発見であることがわかりました。 グリッドシステムのおかげで、ユーザーインターフェイスの基本バージョンを自分で作成できます。 それにもかかわらず、私が準備したすべてのインターフェースの変更は、実稼働環境に配信される前にいくつかの目を通します。 要約すると、フロントエンドである程度作業できますが、少なくともプレゼンテーションのレベルに実際には影響を与えません。



あなたが話さなかったことについてはどうですか?



間違いなく、この記事の範囲から多くのものを除外する必要がありました。 約束どおり、適切なセマンティクスの欠如が私のお気に入りのカルスであるため、Webページをよりアクセスしやすくするための技術に記事を捧げます。 しかし、私はそこで止まらない可能性が高いです。 私たちは連絡します!



All Articles