视觉是大多数程序员认为理所当然的感官之一。大多数程序员会花几个小时盯着电脑显示器(尤其是在他们全神贯注的时候),但我知道有些程序员是盲人(比如目前在谷歌工作的T.V. Raman)。

如果您是一个盲人(或逐渐失明),您将如何设置您的开发环境来帮助您编程?

(每个回答一个建议。这个问题的目的是把好的想法带到最高层。此外,屏幕阅读器可以更早地阅读到好的想法。)


当前回答

我在大底特律盲人协会工作了三年,经营一个专为盲人访问而设计的BBS,并与许多盲人用户合作,以更好地满足他们的需求,并与新盲人用户合作,让他们适应当时可用的硬件和软件产品。如果不出意外的话,我至少学会了阅读盲文,以避免自己陷入同样的境地!

大多数盲人电脑用户和程序员使用某种屏幕阅读器。《大白鲨》尤其受欢迎。幸运的是,目前大多数主要应用程序都提供了某种形式的残疾人访问。你可能需要稍微调整你的环境来减少杂音,例如考虑在Visual Studio中禁用智能感知。

盲文显示器不太常见,而且相对昂贵得多,可以显示40或80列文本,并且可以在精确定位/标点符号很重要的情况下使用。虽然屏幕阅读器可以配置成快速读出标点符号,但很多人觉得这会分散注意力,而且在很多情况下,你更容易自己摸索。Jaws可以配置为驱动显示,因此您不必同时处理辅助应用程序。

此外,许多合法失明的用户仍有一定程度的视力。使用高对比度背景和放大功能可以帮助这些用户。

在Windows中使用ToggleKeys会让你听到当你不小心点击一个模式“caps lock”,“num lock”,“scroll lock”等键。

I know at least one Haskell programmer who uses a screen reader and who explicitly programs without using Haskell's layout rules, and instead opts to use the rather non-idiomatic, but supported {;}'s instead, because it is easier/less distracting for him to get his screen reader to read off punctuation than for him to figure out exact indentation that complies with Haskell's layout rules. On that same note, I've heard some grumbling from a couple of blind programmers about when they have to write Python.

最终,你学会了发挥自己的优势。

其他回答

我在大底特律盲人协会工作了三年,经营一个专为盲人访问而设计的BBS,并与许多盲人用户合作,以更好地满足他们的需求,并与新盲人用户合作,让他们适应当时可用的硬件和软件产品。如果不出意外的话,我至少学会了阅读盲文,以避免自己陷入同样的境地!

大多数盲人电脑用户和程序员使用某种屏幕阅读器。《大白鲨》尤其受欢迎。幸运的是,目前大多数主要应用程序都提供了某种形式的残疾人访问。你可能需要稍微调整你的环境来减少杂音,例如考虑在Visual Studio中禁用智能感知。

盲文显示器不太常见,而且相对昂贵得多,可以显示40或80列文本,并且可以在精确定位/标点符号很重要的情况下使用。虽然屏幕阅读器可以配置成快速读出标点符号,但很多人觉得这会分散注意力,而且在很多情况下,你更容易自己摸索。Jaws可以配置为驱动显示,因此您不必同时处理辅助应用程序。

此外,许多合法失明的用户仍有一定程度的视力。使用高对比度背景和放大功能可以帮助这些用户。

在Windows中使用ToggleKeys会让你听到当你不小心点击一个模式“caps lock”,“num lock”,“scroll lock”等键。

I know at least one Haskell programmer who uses a screen reader and who explicitly programs without using Haskell's layout rules, and instead opts to use the rather non-idiomatic, but supported {;}'s instead, because it is easier/less distracting for him to get his screen reader to read off punctuation than for him to figure out exact indentation that complies with Haskell's layout rules. On that same note, I've heard some grumbling from a couple of blind programmers about when they have to write Python.

最终,你学会了发挥自己的优势。

一个开始的地方是linux项目:

http://leb.net/blinux/

该项目描述了如何获得Emacspeak(文本到语音的编辑器),并提供了许多其他资源。

我曾经和一个人一起工作,他的视力几乎阻止了他们使用显示器——他们用屏幕阅读器软件做得很好,花了很多时间使用基于文本的应用程序和shell。

维基百科的屏幕阅读器包列表是另一个开始的地方:http://en.wikipedia.org/wiki/List_of_screen_readers

我是个盲人,已经在Windows、Mac、Linux和DOS上编程了大约13年,使用的语言包括C/ c++、Python、Java、c#和各种较小的语言。虽然最初的问题是关于配置环境的,但我认为最好的回答是看看盲人如何使用计算机。

有些人使用谈话环境,比如在其他答案中提到的拉曼和Emacspeak环境。到目前为止,更常见的解决方案是有一个屏幕阅读器,它在后台监控操作系统活动,并通过合成语音或物理盲文显示(通常一次显示20到80个字符)提醒用户。这意味着盲人可以使用任何可访问的应用程序。

因此,我个人现在使用Visual Studio 2008,并且运行它时只做了很少的修改。我关闭了某些功能,比如在打字时显示错误,因为我觉得这会让人分心。在加入微软之前,我所有的开发都是在一个标准的文本编辑器(如记事本)中完成的,所以同样没有定制。

可以配置屏幕阅读器来宣布缩进。我个人不使用这个,因为Visual Studio会处理这个问题,而c#使用大括号。但这在Python这样的语言中是非常重要的,因为这里有空格。最后,Emacspeak使用不同的声音/音调来表示语法的不同部分(关键字、注释、标识符等)。

这篇博文有一些关于Visual Studio团队如何使他们的产品易于访问的信息:

Visual Studio核心团队的无障碍实验室参观活动

许多程序员使用Emacspeak:

Emacspeak—完整的音频桌面

盲文键盘到底是什么?

有像盲文书写器这样的东西,但你永远不会用它作为计算机的输入设备。

如果你只是在谈论一个带有盲文符号的键盘,这也是一个非常糟糕的主意。当你打字的时候,你会有更多的键要触到,而且它仍然会变慢。

触摸打字不是一种视觉技能,盲人也能做到和正常人一样好。