回答:
私は完全に盲目の大学生で、プログラミングのインターンシップを何回か受けているので、私の答えはこれらに基づいています。私はオペレーティングシステムとしてwindows xpを使用し、Jawsを使用して画面に表示されるものを合成音声で読みます。Javaプログラミングでは、アクセス可能なフル機能のIDEであるため、私はEclipseを使用します。
一般的なルールとしての経験では、GUIツールキットとしてSWTを使用するjavaプログラムは、Swingを使用するプログラムよりもアクセスしやすいため、ネットビーンズから離れています。どの.netプログラミングでも、私はビジュアルスタジオ2005を使用しています。これは、インターンシップで使用された標準バージョンであり、フォームデザイナーなどをよりアクセシブルにするために開発されたJawsおよびスクリプトセットを使用して非常にアクセスしやすいためです。
CおよびC ++プログラミングでは、gccをコンパイラーとして、cygwinをコンパイラーとして使用し、必要に応じて、emacsまたはvimをエディターとして使用します。私のインターンシップの多くはZ / OSのプログラミングに関係していました。Cygwinを介してrloginセッションを使用してメインフレーム上のUSSサブシステムにアクセスし、3270エミュレーターとしてC3270を使用してメインフレームのISPF部分にアクセスしました。
私は通常、合成音声に依存していますが、点字ディスプレイがあります。通常はスピーチを使う方が速く作業できますが、句読点が重要で複雑になる状況では点字ディスプレイを使用します。これの例は、句読点が非常に重要である多くのネストされた括弧とJCLを含むifステートメントです。
私はcygwin http://emacspeak.sourceforge.netの下でEmacspeakで遊んでいます。これはプログラミングエディタとして使用できるかどうかはわかりません。まだ。
私は盲目で、Windows、Mac、Linux、DOSで約13年間、C / C ++、Python、Java、C#などのさまざまな言語でプログラミングを行っています。元々の質問は環境の構成に関するものでしたが、目の不自由な人がコンピューターをどのように使用するかを検討することで最もよく答えられると思います。
一部の人々は、他の回答で言及されているテレビラマンやEmacspeak環境などの会話環境を使用しています。より一般的な解決策は、OSアクティビティをバックグラウンドで監視し、合成音声または物理的な点字ディスプレイ(通常、一度に20から80文字のどこかを表示する)でユーザーに警告するスクリーンリーダーを使用することです。これは、視覚障害者がアクセス可能なアプリケーションを使用できることを意味します。
したがって、私は最近Visual Studio 2008を個人的に使用し、ほとんど変更を加えずに実行しています。入力時にエラーが表示されるなど、特定の機能をオフにします。Microsoftに参加する前は、すべての開発はメモ帳などの標準的なテキストエディターで行われていたため、改めてカスタマイズする必要はありませんでした。
インデントを通知するようにスクリーンリーダーを構成することができます。Visual Studioがこれを処理し、C#が中かっこを使用するため、私は個人的にはこれを使用しません。しかし、これは空白が重要なPythonのような言語では非常に重要です。最後に、Emacspeakは異なる音声/ピッチを使用して、構文の異なる部分(キーワード、コメント、識別子など)を示します。
私は盲目で、過去12年ほどプログラマーでした。現在はシニアアーキテクトであり、サピエントコーポレーション(ケンブリッジベースのコンサルティング会社で、Webベースとシッククライアントベースのエンタープライズソリューションの両方を作成しています)と協力しています。私はいくつかのスクリーンリーダーを使用していますが、ほとんどの場合、ウィンドウズとNVDAのジョーズを使用しています。
私の環境としては、主にMicrosoftプラットフォームとビジュアルスタジオに取り組んできました。私はまた、MS Sqlエンタープライズスタジオなどのツールを使用してDBアクセス、ネットワーク監視などを行っています。emacspeakで時間を費やそうとしましたが、私の作業は主にMSプラットフォームに基づいていたため、実際に多くの時間を費やすことはありませんでした。私はまた、LinuxでC ++に取り組んで数年を費やしました-ほとんどすべてのコーディングにWindowsのメモ帳またはビジュアルスタジオを使用してから、Linux環境とファイルを共有するためにSambaを使用しました。ボーランドCをいくつかの実験的なものに使用しました。最近Pythonで遊んでいます。これは、他の人が上記で指摘したように、ネストメカニズムとしてインデントを使用して記述されているため、視覚障害を持つユーザーにとって特に不親切です。そうは言っても、NVDA、最も人気のあるオープンソースのスクリーンリーダーは完全にpythonを使用して記述されており、そのプロジェクトのコミッターの一部は盲目です。アーキテクトとしてよく聞かれる特に興味深い質問は、UMLやVisio、Rational Roseなどの図の扱い方です。Visioはおそらく最もアクセスしやすい図ツールです。合理的なバラ図を読むための顎スクリプトを書くことができました。私は、UML 2.0図にアクセスするために、ドイツの大学が開発したT-dub(視覚障害者向けの技術図理解)と呼ばれるツールを使用しました。マジックドローと呼ばれるJavaベースの醜いツールを使用してモデル駆動型開発を行い、androMDAプロジェクトのコミッターであり、UMLモデルからの.Netコードジェネレーターの開発を支援しました。アーキテクトとしてよく聞かれる特に興味深い質問は、UMLやVisio、Rational Roseなどの図の扱い方です。Visioはおそらく最もアクセスしやすい図ツールです。合理的なバラ図を読むための顎スクリプトを書くことができました。私は、UML 2.0図にアクセスするために、ドイツの大学が開発したT-dub(視覚障害者向けの技術図理解)と呼ばれるツールを使用しました。マジックドローと呼ばれるJavaベースの醜いツールを使用してモデル駆動型開発を行い、androMDAプロジェクトのコミッターであり、UMLモデルからの.Netコードジェネレーターの開発を支援しました。アーキテクトとしてよく聞かれる特に興味深い質問は、UMLやVisio、Rational Roseなどの図の扱い方です。Visioはおそらく最もアクセスしやすい図ツールです。合理的なバラ図を読むための顎スクリプトを書くことができました。私は、UML 2.0図にアクセスするために、ドイツの大学が開発したT-dub(視覚障害者向けの技術図理解)と呼ばれるツールを使用しました。マジックドローと呼ばれるJavaベースの醜いツールを使用してモデル駆動型開発を行い、androMDAプロジェクトのコミッターであり、UMLモデルからの.Netコードジェネレーターの開発を支援しました。合理的なバラ図を読むための顎スクリプトを書くことができました。私は、UML 2.0図にアクセスするために、ドイツの大学が開発したT-dub(視覚障害者向けの技術図理解)と呼ばれるツールを使用しました。マジックドローと呼ばれるJavaベースの醜いツールを使用してモデル駆動型開発を行い、androMDAプロジェクトのコミッターであり、UMLモデルからの.Netコードジェネレーターの開発を支援しました。合理的なバラ図を読むための顎スクリプトを書くことができました。私は、UML 2.0図にアクセスするために、ドイツの大学が開発したT-dub(視覚障害者向けの技術図理解)と呼ばれるツールを使用しました。マジックドローと呼ばれるJavaベースの醜いツールを使用してモデル駆動型開発を行い、androMDAプロジェクトのコミッターであり、UMLモデルからの.Netコードジェネレーターの開発を支援しました。
一般的に、私は自分の強みに取り組むことができるチーム環境で最も成功することがわかります。たとえば、図は設計を伝達/文書化するのに非常に役立ちますが、実際の設計プロセスには多くの思考とブレーンストーミングが含まれ、設計が検討されたとき、チームメイトの1人がきちんと描画されたものをすばやくまとめるのに役立ちますそれから写真。私はこれを純粋な相互依存性と見なしている間、人々は上記を独立性や能力の欠如であると誤って誤解しています-私はチームメイトだけでは彼/彼女自身とその設計を思いつくことができなかったと確信しています-ターン、私が彼に依存してデザインを文書化するなら、そうしてください。私が直面するほとんどのハードルは、ツールベースのアクセス不能です。
私は視覚障害者の開発者であり、Windows、GNU Linux、MacOS Xで働いています。各プラットフォームには、視覚障害者向けの異なるワークフローがあります。これは、ブラインド開発者が使用するスクリーンリーダーによって異なります。盲目の開発者は開発ツールに完全にはアクセスできません。すべてのIDEでコードを入力してコンパイル機能を使用できますが、インターフェイスビルダー、XGladeなどのデザインツールを使用してインターフェイスをデザインする必要がある場合、多くの問題があります。Borland Delphiで開発しているときに、たとえばボタンなどのコントロールを追加し、オブジェクトインスペクターウィンドウを使用してコントロールの各視覚属性を変更できました。多くのIDEはオブジェクトインスペクタウィンドウを使用して視覚的属性と非視覚的属性を変更しますが、新しいコントロールを追加する方法はパレットからキャンバスにコントロールをドラッグアンドドロップすることからなるため、視覚障害者の開発者にとっての問題は新しいコントロールの追加です。Visual Studio 200xはこれを行うために別の方法を使用しますが、IDEのインターフェイスは新しいバージョンごとに変更されます。これは大きな問題です。Windowsのスクリーンリーダーは、非標準アプリケーションの各領域を識別するためにスクリプトを使用して特別なサポートを必要とするためです。盲目の開発者はスクリーンリーダーでVisual Studio 2008を使用できますが、このIDEの新しいバージョンが表示されたら、このバージョンのIDEの新しいバージョンのスクリプトを待つ必要があります。XcodeとInterface Builderには、タスクのドラッグアンドドロップに代わるものはまだありません。私は何度もアップルにそれを尋ねましたが、彼らは他のことで働いています。App Storeで3つのアプリ(アクセシブルマインスイーパ、アクセシブルフルーツマシン、Programar a ciegas RSS)を公開し、すべてのインターフェイスをコードで設計する必要がありました。大変な作業ですが、各コントロールのすべての機能を管理できます。Eclipseにはアクセス可能なコードエディターがありますが、デバッグコンソール、設計用のプラグイン、ドキュメント領域などの他の開発ツールには、視覚障害者向けの支援ツールに問題があります。
ドキュメンテーションは、盲目の開発者にとっても問題です。多くのサンプルやデモンストレーションでは、説明を示すために画像を使用しています(図のように環境設定を設定してください)。
問題は盲目ではないと思います。問題は、企業や開発グループがアクセシビリティは最終的なソフトウェアに影響を与えるが、開発ソフトウェアには影響しないと考えていることです。彼らは、盲目のユーザーはクライアントであるべきだと考えていますが、盲目のユーザーは開発の仲間になることはできません。
ブラインドアソシエーションは製品やサービスのアクセシビリティを求めていますが、ブラインド開発者を忘れていました。視覚障害者は弁護士、ジャーナリスト、教師として働くことができますが、視覚障害者は視覚障害者にとっても奇妙な概念です。私の盲目の友人が私の仕事を理解できないので、私はしばしば孤独を感じます。
この問題に関する私の意見は、この記事、スペイン語、私のブログhttp://www.programaraciegas.net/2010/11/05/la-accesibilidad-en-crisis-para-los-desarrolladores-ciegos/で読むことができます。 ウェブページに翻訳ツールがあります。申し訳ありませんが、翻訳はしていません。
Emacsには、視覚障害のあるユーザーがテキストファイルを操作できるようにする拡張機能がいくつかあります。このトピックについては専門家に相談する必要がありますが、emacsには音声合成機能があります。そしておそらくもっと。
さらに、BLinuxがあります。
視覚障害者のためのLinux。非常に長い間存在していました。私は10年以上、非常に成熟していると思います。
「盲目」とはさまざまな状況にあることを覚えておいてください。法的に盲人で、非常に大きなモニターを読んだり、倍率の助けを借りたりできる人もいれば、まったく視力がない人もいます。本を拡大するための特別なデバイスと、画面の一部を拡大するために彼女が使用できる特別なソフトウェアを持っていた大学の同級生を覚えています。彼女は視力が悪化して完全に消え去ろうとしていたので、大学を卒業するために一生懸命働いていました。
プログラミングにもさまざまなニーズがあります。一部の人々はたくさんのコードをクランキングするのが得意で、一部の人々は全体像とアーキテクチャをよく見ています。画面のインターフェースによって課せられる難しさを考えると、失明によって全体像を把握する能力が高まる可能性があると思います...
Hanselmanは最近、盲目の開発者と本当に面白いポッドキャストをしました。
私はブラインドアクセス用に調整されたBBSを3年間使用してGreater Detroit Society for the Blindに勤務し、多くのブラインドユーザーと協力してニーズをより適切に満たす方法と、新たにブラインドユーザーと利用可能なハードウェアに慣れるために当時利用できたソフトウェア製品。他に何もないとしても、私は点字を、同じ状況で巻き起こった事件に対するヘッジとして読むことを少なくとも学びました!
ブラインドコンピュータユーザーとプログラマの大多数は、何らかのスクリーンリーダーを使用しています。特に顎が人気です。幸いなことに、最近のほとんどの主要なアプリケーションは、何らかの形の障害者アクセスを提供しています。おしゃべりを減らすために、環境を少し調整する必要がある場合があります。たとえば、Visual StudioでIntellisenseを無効にすることを検討してください。
A 点字ディスプレイは、あまり一般的であり、比較的はるかに高価であるとテキストの40のまたは80列を表示することができ、かつ正確な位置決め/句読点が重要な場合に使用することができます。スクリーンリーダーは句読点をガタガタ鳴らすように構成できますが、多くの人がそれを気が散ることに気づき、多くの場合、読みやすさを感じるのが簡単になります。ジョーはディスプレイを駆動するように構成できるため、ユーザー補助アプリケーションを操作する必要はありません。
また、多くの合法的に盲目のユーザーは、まだ少しの視力が残っています。ハイコントラストの背景と拡大機能を使用すると、これらのユーザーの多くを助けることができます。
WindowsでToggleKeysを使用すると、モーダルの「caps lock」、「num lock」、「scroll lock」などのキーのいずれかを誤ってタップしたときにも聞こえるようになります。
スクリーンリーダーを使用し、Haskellのレイアウトルールを使用せずに明示的にプログラミングし、代わりにかなり慣用的ではないがサポートされているを使用することを選択した少なくとも1人のHaskellプログラマーを知っ{;}
ています。彼のスクリーンリーダーは、Haskellのレイアウトルールに準拠する正確なインデントを理解するよりも、句読点を読み上げます。同じことについて、私は何人かの盲目のプログラマーから、いつPythonを書かなければならないかについて不平を言うのを聞いたことがあります。
最終的に、あなたは自分の長所でプレーすることを学びます。
ソースを思い出せませんが、可聴構文「カラーリング」の形式について聞いた/読んだので、文字列の割り当ての代わりに
fooは引用符に等しいこれは文字列引用符です
文字列部分は、要素の分離を明確にするために、異なるピッチまたは音声で読み取られます。
開始する1つの場所はBlinuxプロジェクトです。
このプロジェクトは、Emacspeak(テキスト読み上げ機能付きのエディター)の入手方法を説明しており、他にも多くのリソースがあります。
私はすべて視力のある人と一緒に作業しましたが、モニターを使用できませんでした-彼らはスクリーンリーダーソフトウェアでうまく機能し、テキストベースのアプリケーションとシェルを使用して多くの時間を費やしました。
ウィキペディアのスクリーンリーダーパッケージのリストは、最初に開始する場所です。http://en.wikipedia.org/wiki/List_of_screen_readers
私は中国の北京の大学院生です。私はコンピューターサイエンスを専攻しており、私の仕事の多くはプログラミングです。私は視力の弱い方で生まれました。拡大ツールを使用して画面上のフォントをはっきりと確認する必要があります。私はMicrosoftのmgnifyツールをWindowsで使用し、Linuxの場合はcompizの拡大プラグインを使用します。通常、ツールを元のフォントサイズの3倍に拡大するように設定します。私の拡大ツールは大丈夫です、主な問題は速度です、私が見ているテキストにカーソルを合わせるためにマウスを動かす必要があります、マイクロソフトの拡大は「テキスト編集ポイントに自動的に従う」オプションを提供し、編集またはコーディング時の継続的なマウスの動き。ただし、編集ソフトウェアまたはIDEがサポートしていない場合があるため、常に機能するとは限りません。Linuxの拡大ツールは使いにくいです。KMagにはKDEが付属していますが、リフレッシュレートがひどいので目がゆがんでしまいます。現在使用しているcompizの拡大プラグは問題ありませんが、オートフォーカス(フォーカスオートフォロー)の機能はありません。iOSは、特にiPadの9.7インチ画面で、フルスクリーン拡大で私に非常に完璧なソリューションを提供します。コーディングや他の編集作業にはほとんど使用しないため、オートフォーカスは必要ありません。Androidは、シェイクフィードバックと同様に、ユーザー補助機能をほとんど提供していません。Androidには優れた拡大ツールはなく、iOSの全画面拡大のような高度な機能は言うまでもありません。私はQtを研究していて、Linuxでも、Androidでも、便利な拡大ツールを構築したいと思っていました。しかし、ほとんど進展がありません。オートフォーカス(フォーカスオートフォロー)の機能はありません。iOSは、特にiPadの9.7インチ画面で、フルスクリーン拡大で私に非常に完璧なソリューションを提供します。コーディングや他の編集作業にはほとんど使用しないため、オートフォーカスは必要ありません。Androidは、シェイクフィードバックと同様に、ユーザー補助機能をほとんど提供していません。Androidには優れた拡大ツールはなく、iOSの全画面拡大のような高度な機能は言うまでもありません。私はQtを研究していて、Linuxでも、Androidでも、便利な拡大ツールを構築したいと思っていました。しかし、ほとんど進展がありません。オートフォーカス(フォーカスオートフォロー)の機能はありません。iOSは、特にiPadの9.7インチ画面で、フルスクリーン拡大で私に非常に完璧なソリューションを提供します。コーディングや他の編集作業にはほとんど使用しないため、オートフォーカスは必要ありません。Androidは、シェイクフィードバックと同様に、ユーザー補助機能をほとんど提供していません。Androidには優れた拡大ツールはなく、iOSの全画面拡大のような高度な機能は言うまでもありません。私はQtを研究していて、Linuxでも、Androidでも、便利な拡大ツールを構築したいと思っていました。しかし、ほとんど進展がありません。Androidは、シェイクフィードバックと同様に、ユーザー補助機能をほとんど提供していません。Androidには優れた拡大ツールはなく、iOSの全画面拡大のような高度な機能は言うまでもありません。私はQtを研究していて、Linuxでも、Androidでも、便利な拡大ツールを構築したいと思っていました。しかし、ほとんど進展がありません。Androidは、シェイクフィードバックと同様に、ユーザー補助機能をほとんど提供していません。Androidには優れた拡大ツールはなく、iOSの全画面拡大のような高度な機能は言うまでもありません。私はQtを研究していて、Linuxでも、Androidでも、便利な拡大ツールを構築したいと思っていました。しかし、ほとんど進展がありません。
私が大学院にいたとき、私たちは盲目の研究チームのメンバーがいました。彼はもう少し年上で、おそらく40代半ばでした。彼は、モールス符号で画面の内容を出力するように最初のコンピューター(テキスト読み上げが一般的になるずっと前だった)をどのようにプログラムしたかについて話してくれました。鶏と卵の明らかな問題を克服するために、コードを最初から最後まで完全に書き直して、コードが十分に機能し、読み返せるようにする必要がありました。
現在は音声合成を使用していますが、実際にコードを書く前に徹底的にコードを計画し、デバッグループを最小限に抑えています。
彼はまた、彼の視力の欠如にもかかわらず、目の見えるプレゼンターのそれとほぼ同じようにフォーマットされたPowerPointプレゼンテーションを行うこともかなり得意でした。
このブログ投稿には、Visual Studioチームが製品にアクセスできるようにする方法に関するいくつかの情報が含まれています。
Visual Studioコアチームのアクセシビリティラボツアーアクティビティ
多くのプログラマーがEmacspeakを使用しています:
ニュージーランドに戻って、黄斑変性症の人を知っていたので、部分的に目が見えていました。彼は非常に才能のあるプログラマーであり、単語の形を認識することで作業できるため、Delphiを使い始めました。これは、Cっぽい波線括弧よりもPascalのような構文で行う方が簡単でした。彼はウェブサイトを持っていますが、黄斑変性症についてはまったく触れていないようですので、私は彼に名前を付けません。
多くの人が指摘しているように、emacspeakはそこにいる古いハッカーの多くにとって永続的なソリューションクロスプラットフォームです。そのままでLinuxとMacをサポートしているので、Windowsのエグノスティックプロジェクトを開発する上で私が好む手段となっています。
視覚的なものではなく、聴覚的なものを介して実際に構文を取得するという問題に対して、同じ分野に属さないにせよ、これを取得するためのさまざまな手法が存在することがわかりました。
一例として、音声アイコンは、言葉による記述子の代わりに立つことができます。行をどこまでインデントするかについてトーンを付けることができます。トーンが長いほど、インデントが強くなります。トーンはテキスト/スピーチと並行して再生できるため、情報は同じタイムフレームで送信され、基本的なものの通信をシリアル化しません。
点字は、行の正確な構文をユーザーにすばやく正確にデコードできます。これは、日常生活で点字を使用する人々にとってより便利なものです。最大の利点は、ディスプレイのコンテンツへのランダムアクセスです。通常、更新可能なユニットでは、各セルにカーソルを置くことができる各セルの上にルーターキーがあります。矢印キーをいじる必要はありませんO(n)op vs O(1)アクセス。
聴覚の次元(ピッチ、レート、ボリューム、屈折、豊かさ、ストレスなど)は、概念(キーワード、クラス、変数、エラーなど)を伝えることができます。たとえば、コメントは単調な変化形で読むことができます。
Emacsや他のエディタ(Visual Studio)を使用すると、コーダーはプログラムを対称的に閲覧できます(次のブロック、ブロックの折りたたみ、defunのダウン、defへのジャンプ、解析ツリーのウォークなど)。これを行うプロジェクト全体の構造の「全体像」を非常にすばやく得ることができます。Cedetなどの拡張機能を使用すると、VS / Eclipse / etcクロスプラットフォームの優れた機能をテキストエディタで取得できます。
おそらく続く可能性がありますが、一言で言えば、私たちの何人かが業界、学界、または私たちの地下室でハッキングしている理由です。
南イリノイ大学エドワーズビルとワシントン州立大学の学生のグループは、視覚障害者向けのプログラミング言語に取り組んでいます。
harald van Breederodeは、オランダのオラクルDBAのエキスパート、トレーナー、プレゼンターとして知られています。彼のブログには、視覚障害者のための役立つヒントがいくつか含まれています。
点字キーボードとは一体何でしょうか?
点字ライターなどはありますが、コンピューターの入力デバイスとして使用することはありません。
点字の記号が書かれたキーボードについて話しているだけなら、これも非常に悪い考えです。入力中に到達するキーの数が増えても、速度は遅くなります。
タッチタイピングは視覚的なスキルではありません。視覚障害者も視覚障害者と同じように行うことができます。
これは、ペアプログラミングの原理を使用した極端なプログラミングでうまく機能すると思います。目の不自由な人のためにソフトウェアを作成している場合は、それを作成する方が優れており、文字どおりビジネス要件に触れている人がいるので、まったくそう遠くはないでしょう。
コードの記述に関しては、なんらかのフィードバックがない限り、構文に苦労する人がいるかもしれません。音声フィードバックは、ポイントに役立つかもしれません。
視覚障害者や視覚障害者を支援するさまざまなツールがあり、音声フィードバックやブライリーキーボードなどがあります。http://www.rnib.org.uk/Pages/Home.aspxは、これらの問題に関するヘルプとアドバイスを提供する優れたサイトです。
サムハートマンと出会ったとき、彼は2000年以来有名なDebian開発者であり、盲目でした。で、このインタビュー彼はLinuxユーザのためのアクセシビリティについて語っています。彼はDebianを使用し、スクリーンリーダーとしてgnome-orcaを使用しています。これはGnomeで動作し、「Iceweasel / FirefoxとLibreofficeを話すのに比較的良い仕事をしています」。
特にプログラミングについて話すと彼は言う:
[gnome-orca]はgnome-terminalを話しますが、ターミナルプログラムを話すには、私が快適に使用できるほど十分ではありません。したがって、私はEmacspeakパッケージでEmacsを実行します。その中で、Emacsターミナルエミュレーターを実行し、その中でScreenを実行する傾向があります。さらに面白くするために、私はしばしば内部画面内でEmacsの追加インスタンスを実行します。