当前位置:  开发笔记 > 编程语言 > 正文

如果你失明了,你怎么编程?

如何解决《如果你失明了,你怎么编程?》经验,为你挑选了18个好方法。

视觉是大多数程序员认为理所当然的感官之一.大多数程序员会花几个小时看电脑显示器(特别是在他们在区域的时候),但我知道有盲人程序员(例如目前在谷歌工作的电视拉曼).

如果您是一个盲人(或者慢慢变得盲目),您将如何设置开发环境来帮助您进行编程?

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



1> Jared..:

我是一个完全失明的大学生,有过几次编程实习,所以我的回答将基于这些.我使用windows xp作为我的操作系统和Jaws来阅读合成语音中出现在屏幕上的内容.对于java编程,我使用eclipse,因为它是一个可访问的全功能IDE.

根据我的经验,作为一般规则,使用SWT作为GUI工具包的java程序比使用Swing的程序更容易访问,这就是我远离netbeans的原因.对于任何.net编程,我使用visual studio 2005,因为它是我实习时使用的标准版本,并且使用Jaws和一组脚本非常容易访问,这些脚本是为了使表单设计器更容易访问而开发的.

对于C和C++编程,我使用cygwin和gcc作为我的编译器,使用emacs或vim作为我的编辑器,这取决于我需要做什么.我的很多实习都涉及Z/OS的编程.我使用通过Cygwin的rlogin会话来访问大型机上的USS子系统,使用C3270作为我的3270仿真器来访问大型机的ISPF部分.

我通常依赖合成语音,但确实有盲文显示.我发现我通常使用语音更快地工作,但在标点符号很重要且变得复杂的情况下使用盲文显示器.这方面的例子是带有大量嵌套括号和JCL的if语句,其中标点符号非常重要.

更新

我正在使用cygwin下的Emacspeak http://emacspeak.sourceforge.net我不确定这是否可用作编程编辑器,因为它看起来有些反应迟钝但我还没有查看任何配置选项然而.


真的很棒 .恭喜!
假设您也使用笔记本电脑:您是否关闭显示屏以延长电池寿命?因为那将是如此多的胜利.
这是SO第一次回答让我的下巴.
我不知道这是可能的.我不再忘记可访问性.
有一个盲目的父亲,非常了解计算机,知道他经历了什么让窗户可以访问,你的设置让我震惊.恭喜!:)
你应该做一个TED演讲,这是鼓舞人心的材料!
我已经检查了它,但我无法找到一种方法来关闭我的笔记本电脑上的显示器,并在我按下按键时关闭它.如果有人知道如何在del Vostro 1500上这样做我会很感激谷歌没有帮助.
我想打开机箱并拔出连接到显示器的带状电缆可能会起到作用.
我感到很有灵感......谢谢Jared!贾里德++;
打开机箱并拔出连接到显示器的带状电缆是一个非常难的做法,即使*如果*你可以看到.但我想你总能找人帮忙.哎呀,我*可以*看到,并且*总是*在硬件方面寻求帮助!
确定+1.我没有在没有视力的情况下工作,但我确信放弃比继续尝试更容易.谢谢你分享Jared.
即使有视力的祝福,我也不会看到自己在SO上的名声.人的能力是无约束力的.
我的语速设定为每分钟128个字
你说:"我还没看过配置选项." 是一个双关语?:)
@jared,合成声音的速度是多少?我对它实际上有多快和有用的感兴趣.
嘿@EdwardKmett:你可以关掉整个屏幕(假设它不包含扬声器或wifi arial).这是一种令人敬畏的方式,可以让人们出门,使用没有屏幕的笔记本电脑,在火车上等等.
我也是一个盲目的开发者,并且很想知道你是如何使用vim来处理语音的.你在Windows中使用它,还是通过终端使用它?如果通过终端,哪一个?PuTTY不会跟踪我的光标.谢谢!

2> Saqib..:

我是盲人,在Windows,Mac,Linux和DOS上用C/C++,Python,Java,C#和各种较小的语言编写了大约13年的编程.虽然最初的问题是围绕配置环境,但我认为最好通过观察盲人如何使用计算机来回答这个问题.

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

所以,我个人最近使用Visual Studio 2008,只需很少的修改即可运行它.因为我发现这会分散注意力,所以我会关闭某些功能,例如显示错误.在加入Microsoft之前,我的所有开发都是在标准的文本编辑器(如记事本)中完成的,因此再次没有自定义.

可以配置屏幕阅读器以宣布缩进.我个人不使用它,因为Visual Studio负责这一点,而C#使用大括号.但是在像Python这样的空白非常重要的语言中,这一点非常重要.最后,Emacspeak确实利用不同的声音/音高来表示语法的不同部分(关键词,注释,标识符等).


出于兴趣,你掌握了多少程序,工作时需要刷新多少?就像一个来回滚动的人.
嗨Saqib,我很喜欢你对hanselminutes的采访(假设你是同一个人:).ctrl-shift-escape提示对我来说是新的!
记事本,哇.您是否曾使用物理记事本编写代码(使用盲文手写笔,比方说?)您是否使用IntelliSense?你的屏幕阅读器有多快说话?
UpTheCreek指的是:http://channel9.msdn.com/blogs/dan/saqib-shaikh-and-scott-hanselman-designing-for-accessibility

3> Manish..:

我是盲人,过去12年左右一直是程序员.目前,我是一名高级架构师,并与Sapient Corporation(一家基于剑桥的咨询公司合作,创建基于Web和基于胖客户端的企业解决方案)合作.我使用了几个屏幕阅读器,但大多数坚持用于Windows和NVDA的Jaws.

作为我的环境,我主要在Microsoft平台和visual studio上工作.我还使用MS Sql企业工作室等工具进行数据库访问,网络监控等.我试图花一些时间使用emacspeak,但由于我的工作主要基于MS平台,所以从来没有真正花费很多时间在那里.我还花了几年时间在Linux上使用C++ - 主要是在Windows上使用notepad或visual studio进行所有编码,然后使用samba与linux环境共享文件.还使用了borland C进行一些实验性的东西.最近一直在玩python,正如上面提到的其他人对盲人用户特别不友好,因为它是使用缩进作为嵌套机制编写的.话虽如此,NVDA,最流行的开源屏幕阅读器是完全使用python编写的,并且该项目的一些提交者是他们自己的盲人.我作为架构师经常被问到的一个特别有趣的问题是我如何处理图表 - UML和visio以及理性玫瑰等.Visio可能是最容易获得的绘图工具.我能够写下颌脚本来为我阅读理性玫瑰图.我使用了一个名为T-dub的工具(盲人的技术图表理解),由德国一些大学开发,用于访问UML 2.0图表.使用了一个名为magic draw的基于java的丑陋工具来进行模型驱动开发,并且是androMDA项目的一个提交者,并帮助从UML模型开发.Net代码生成器.

总的来说,我发现我在团队环境中最能发展,我可以发挥自己的优势.例如,虽然图表对于沟通/记录设计非常有用,但实际的设计过程涉及大量的思考和头脑风暴,当设计经过深思熟虑时,您的一位队友可以帮助您快速整理出一个整齐的画面.照片出来了.人们错误地将上述错误解释为缺乏独立性或能力,而我认为这是纯粹的相互依赖 - 正如我确信团队伙伴本身永远无法在他/她自己和 - 如果我依赖他来记录设计,那就这样吧.我面临的大多数障碍都是基于工具的不可访问性.例如,多年来所有oracle产品的可访问性逐渐下降(对它们感到羞耻),团队环境基本上允许我在屏幕阅读器和自定义脚本之上进行额外的防御.


你在印度?你在哪里消失了?在这一篇文章之后,你似乎已经消失了.

4> Jonathan Cha..:

我是一名盲人开发人员,我在Windows,GNU Linux和MacOS X下工作.每个平台都为盲人用户提供不同的工作流程.这取决于盲人开发人员使用的屏幕阅读器.盲人开发人员无法完全访问开发工具.我可以在所有IDE中键入代码并使用编译功能,但如果我必须使用设计工具设计接口作为Interface Builder,XGlade或其他,则存在许多问题.当我使用Borland Delphi进行开发时,我可以添加一个控件,例如一个Button,我可以使用对象检查器窗口修改控件的每个可视属性.许多IDE使用对象检查器窗口来修改视觉和非视觉属性,但盲人开发人员的问题是添加新控件,因为添加新控件的方法包括将控件从调色板拖放到画布.Visual Studio 200x使用替代方法来执行此操作,但IDE的界面在每个新版本中都会发生变化,这是一个很大的问题,因为Windows的屏幕阅读器需要使用脚本来识别某些非标准应用程序的每个区域.盲人开发人员可以将Visual Studio 2008与他的屏幕阅读器一起使用,但是当出现此IDE的新版本时,他必须等待此版本IDE的新版脚本.带有"接口"构建器的Xcode也无法拖放任务.我曾多次向苹果公司询问,但他们正在从事其他工作.我在App商店发布了3个应用程序(Accessible minesweeper,access fruitmachine和Programar a ciegas RSS),我不得不按代码设计所有界面.这是一项艰苦的工作,但我可以管理每个控件的所有功能.Eclipse有一个可访问的代码编辑器,但其他开发工具如调试控制台,用于设计的插件或文档区域为盲人用户提供辅助工具的问题.

对于盲人开发者来说,文档也是一个问题.许多样本和演示使用图像来显示说明(尽可能在图片中设置环境设置)

我认为问题不是盲目的.问题是公司和开发团队认为可访问性会影响最终软件,但它不会影响开发软件.他们认为盲人用户应该是客户,但盲人用户不能成为发展伴侣.

盲人协会询问产品和服务的可访问性,但他们忘记了盲人开发人员.盲人可以担任律师,记者,教师,但盲人开发人员甚至对盲人来说也是一个奇怪的概念.很多时候我感到孤独,因为我的一些盲人朋友无法理解我的工作.

您可以在我的博客http://www.programaraciegas.net/2010/11/05/la-accesibilidad-en-crisis-para-los-desarrolladores-ciegos/中阅读本文中有关此问题的意见. 网页中有一个翻译工具.对不起,但我没有翻译.



5> Chris..:

Emacs有许多扩展,允许盲人用户操作文本文件.您必须咨询有关该主题的专家,但emacs具有文本到语音功能.可能更多.

另外,还有BLinux:

http://leb.net/blinux/

Linux为盲人.已经很久了.十多年来我想,而且非常成熟.



6> DGM..:

请记住,"盲目"是一系列条件 - 有些人在法律上是盲目的,可以阅读一个非常大的显示器或放大帮助,然后有些人根本没有视力.我记得在大学里有一个同学放大书籍的特殊设备,以及她可以用来放大屏幕一部分的特殊软件.她正在努力完成大学学业,因为她的视力越来越差,并且会完全消失.

编程也有一系列需求 - 有些人擅长编写大量代码,有些人更擅长查看大图和架构.我认为,鉴于屏幕界面带来的困难,失明可能会增强你获得全局的能力......



7> Dave Ward..:

Hanselman 最近与盲人开发者进行了非常有趣的播客.


这不是上面发布答案的那个人吗?(Saquib)
以下是直播播客的链接:http://www.hanselminutes.com/default.aspx?showID = 143

8> Edward KMETT..:

我为大底特律盲人协会工作了三年,为盲人访问量身定制了BBS,并与一些盲人用户合作,以​​便更好地满足他们的需求,并与新盲人用户一起使他们适应可用的硬件和当时可用的软件产品.如果不出意外的话,我至少学会了阅读盲文作为对抗我遇到同样情况的情况的对冲!

大多数盲人计算机用户和程序员使用某种屏幕阅读器.特别是大白鲨很受欢迎.幸运的是,如今大多数主要应用程序都提供某种形式的残疾人访问.您可能需要稍微调整环境以减少聊天,例如考虑在Visual Studio中禁用Intellisense.

甲盲文显示器是不常见的且是相对昂贵得多并能显示文本的40个或80列,而当精确定位/标点符号是重要都可以使用.虽然可以配置屏幕阅读器来摆脱标点符号,但很多人发现它会分散注意力,并且在许多情况下通过它感觉更容易.可以将钳口配置为驱动显示器,因此您不需要处理可访问性应用程序.

此外,许多合法盲人用户仍然有一些视线留给他们.使用高对比度背景和放大功能可以帮助很多这些用户.

在Windows中使用ToggleKeys可以让你听到意外点击其中一个模态'大写锁定','num lock','滚动锁'等键.

我知道至少有一个Haskell程序员使用屏幕阅读器并且在没有使用Haskell的布局规则的情况下明确编程,而是选择使用相当非惯用的,而是支持{;}的,因为它更容易/更少分散他的注意力他的屏幕阅读器读取标点符号而不是他找出符合Haskell布局规则的精确缩进.在同样的说明中,我听到一些盲人程序员抱怨他们何时必须编写Python.

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



9> Cebjyre..:

我记不起来了,但我听说过/读过一种形式的可听语法"着色" - 所以不要把字符串赋值读作

foo等于引用这是一个字符串引用

字符串部分将以不同的音高或声音读取,以使元素的分离更清晰.


Emacspeak会这样做.

10> Kyle Burton..:

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

http://leb.net/blinux/

该项目描述了如何获得Emacspeak(带文本到语音的编辑器)并拥有许多其他资源.

我与一个睁大眼睛的人一起工作,但却阻止他们使用显示器 - 他们使用屏幕阅读器软件做得很好,并花了很多时间使用基于文本的应用程序和shell.

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



11> 小智..:

我是中国北京的研究生.我主修计算机科学,我的很多工作都是编程.我出生时视力低下,我需要使用放大工具清楚地看到屏幕上的字体.我在windows上使用microsoft的mgnify工具,如果在linux上,则使用compiz的magnify插件.我通常将工具设置为放大为原始字体大小的三倍.对我来说,maginify工具还可以,主要问题是速度,我必须移动鼠标以保持游标跟随我正在看的文本,microsoft的magnify提供了"自动跟随文本编辑点"的选项,这使我从编辑或编码时连续鼠标移动.但它并不总是有效,因为编辑软件或IDE可能不支持.Linux上的放大工具很难使用.KMag配备KDE有一个糟糕的刷新率让我的眼睛不舒服,我现在使用的compiz的放大插头是可以的,但没有自动对焦功能(焦点自动跟随).iOS为全屏放大提供了非常完美的解决方案,特别是在ipad的9.7英寸屏幕上.有自动对焦是没有必要的,因为我几乎不用它们来编码或做其他编辑的东西.Android提供的辅助功能非常少,就像摇动反馈一样,这对我来说毫无用处.Android上没有任何好的放大工具,更不用说iOS上的全屏放大等高级功能了.我曾经研究Qt,想在linux上构建一个有用的放大工具,甚至在android上.但几乎没有取得一些进展.



12> tghw..:

当我在读研究生时,我们有一个盲人的研究小组成员.他有点老了,也许是40多岁.他告诉我们他如何编程他的第一台计算机(在文本转语音很常见之前),以便在莫尔斯电码中输出屏幕内容.为了克服明显的鸡蛋问题,他不得不从头开始完全重写代码,直到它运行得足够好让他回读给他.

现在他使用文本到语音,虽然他在实际编写任何代码之前非常彻底地计划代码,以最小化调试循环.

他也很擅长提供PowerPoint演示文稿,尽管他缺乏视力,但它的格式与任何有视力的演示者一样好.



13> Arthur Vande..:

此博客文章提供了有关Visual Studio团队如何使其产品可访问的一些信息:

Visual Studio核心团队的辅助功能实验室游览活动

许多程序员使用Emacspeak:

Emacspeak - 完整的音频桌面



14> ConcernedOfT..:

回到新西兰,我认识一个患有黄斑变性的人,所以有部分视力.他是一个非常有才华的程序员,并且使用Delphi,因为他可以通过识别单词形状来工作.使用类似Pascal的语法比使用C-ish波浪形支架更容易.他有一个网站,但似乎根本没有提到黄斑变性,所以我不会说出他的名字.



15> Filippo1980..:

我是盲人,有几个月我正在使用VINUX(基于Ubuntu的Linux发行版)和SODBEANS(一个带有名为SAPPY的插件的netbeans版本,增加了TTS支持).这个解决方案效果很好但有时我更喜欢启动Win XP和NVDA在FireFox上启动很多页面,因为当你试图打开超过3个FireFox窗口时,Vinux工作得不好...



16> 小智..:

正如许多人所指出的那样,emacspeak已经成为许多老黑客的持久解决方案.由于它支持Linux和Mac开箱即用,它已成为我开发Windows不可知项目的首选方法.

对于通过听觉而不是视觉方式实际降低语法的问题,我发现如果不在同一个游戏领域,存在各种技术来使其接近.

对于一个例子,听觉图标可以代替口头描述符.您可以为线条缩进的距离设置音调.音调越长,缩进越多.由于音调可以与文本到语音并行播放,因此信息在相同的时间范围内传播,并且不会序列化基本信息的通信.

盲文可以快速准确地向用户解码线路的确切语法.这对于在日常生活中使用盲文的人来说更有用; 最大的优点是随机访问显示内容.可刷新单元通常在每个字符单元上方具有路由器密钥,其可以将光标放置到该单元.没有摆弄箭头键O(n)op vs O(1)access.

听觉维度(音调,速率,音量,变形,丰富度,压力等)可以传达概念(关键词,类,变量,错误等).例如,评论可以单调变形阅读...适合,如果我可以这么说:).

Emacs和其他编辑器到较小的范围(Visual Studio)允许编码器在语义上仔细阅读程序(下一个块,折叠块,向下defun,跳转到def,向上走解析树等).您可以非常快速地获得整个项目结构的"大"图片; 通过像Cedet这样的扩展,您可以在文本编辑器中获得VS/Eclipse/etc跨平台的优点.

可能会继续下去,但简而言之,这就是为什么我们中的一些人会在工业,地方病或我们的地下室里乱砍掉的原因:).



17> Kyle Slatter..:

来自南伊利诺伊大学爱德华兹维尔和华盛顿州立大学的一群学生正在研究盲人的编程语言:

http://www.youtube.com/watch?v=lC1mOSdmzFc



18> 小智..:

harald van Breederode是一位着名的荷兰Oracle DBA专家,培训师和盲人主持人.他的博客包含一些针对视障人士的有用提示.

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有