Answers:
我是一个完全盲的大学生,曾经有过几次编程实习,所以我的答案将基于这些。我使用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,我不确定这是否可以用作编程编辑器,因为它似乎反应迟钝,但是我没有看过任何配置选项然而。
我是盲人,并且已经在Windows,Mac,Linux和DOS上使用C / C ++,Python,Java,C#和各种较小的语言编写了大约13年的程序。尽管最初的问题与配置环境有关,但我认为最好的方法是看盲人如何使用计算机。
有些人使用谈话环境,例如其他答案中提到的拉曼电视和Emacspeak环境。到目前为止,更常见的解决方案是在后台监视OS活动时运行屏幕阅读器,并通过合成语音或物理盲文显示器(通常一次显示20到80个字符)来警告用户。这意味着盲人可以使用任何可访问的应用程序。
因此,这些天我个人使用Visual Studio 2008,并且只需很少的修改即可运行它。由于发现这种干扰,我关闭了某些功能,例如在键入时显示错误。在加入Microsoft之前,我的所有开发工作都是在标准文本编辑器(如记事本)中完成的,因此再次无需进行任何自定义。
可以将屏幕阅读器配置为宣布缩进。我个人不使用它,因为Visual Studio会处理此问题,而C#使用花括号。但这对于像Python这样的空格很重要的语言来说非常重要。最后,Emacspeak确实利用不同的声音/音调来指示语法的不同部分(关键字,注释,标识符等)。
我是盲人,过去十二年来一直是程序员。目前是高级架构师,并与Sapient Corporation(基于剑桥的咨询公司,创建基于Web和基于胖客户端的企业解决方案)合作。我使用了几种屏幕阅读器,但大多数情况下都将Jaws用于Windows和NVDA。
我的环境主要是在Microsoft平台和Visual Studio上工作。我还使用MS Sql企业工作室等工具进行数据库访问,网络监控等。我试图花一些时间在emacspeak上,但是由于我的工作主要是基于MS平台,因此从来没有真正花费很多时间。我也花了几年的时间在Linux上使用C ++进行开发-在Windows上大多数使用记事本或Visual Studio进行所有编码,然后使用Samba与Linux环境共享文件。还使用了borland C做一些实验性的东西。最近一直在使用python,正如上面其他人所指出的那样,对于盲人用户特别不友好,因为它是使用缩进作为嵌套机制编写的。话虽如此,NVDA 最流行的开源屏幕阅读器是完全使用python编写的,并且该项目中的某些提交者本身是盲目的。作为一名架构师,我经常被问到的一个特别有趣的问题是如何处理图表-UML和visio以及有理玫瑰等。Visio可能是其中最易于访问的图表工具。我能够编写下颌脚本来为我阅读合理的玫瑰图。我使用了一些德国大学开发的称为T-dub(盲人的技术图表理解)的工具来访问UML 2.0图表。已使用基于Java的丑陋工具(称为Magic draw)进行模型驱动的开发,并且是androMDA项目的提交者,并帮助从UML模型开发.Net代码生成器。作为一名架构师,我经常被问到的一个特别有趣的问题是如何处理图表-UML和visio以及有理玫瑰等。Visio可能是其中最易于访问的图表工具。我能够编写下颌脚本来为我阅读合理的玫瑰图。我使用了一些德国大学开发的称为T-dub(盲人的技术图表理解)的工具来访问UML 2.0图表。已使用基于Java的丑陋工具(称为Magic draw)进行模型驱动的开发,并且是androMDA项目的提交者,并帮助从UML模型开发.Net代码生成器。作为一名架构师,我经常被问到的一个特别有趣的问题是如何处理图表-UML和visio以及有理玫瑰等。Visio可能是其中最易于访问的图表工具。我能够编写下颌脚本来为我阅读合理的玫瑰图。我使用了一些德国大学开发的称为T-dub(盲人的技术图表理解)的工具来访问UML 2.0图表。已使用基于Java的丑陋工具(称为Magic draw)进行模型驱动的开发,并且是androMDA项目的提交者,并帮助从UML模型开发.Net代码生成器。我能够编写下颌脚本来为我阅读合理的玫瑰图。我使用了一些德国大学开发的称为T-dub(盲人的技术图表理解)的工具来访问UML 2.0图表。已使用基于Java的丑陋工具(称为Magic draw)进行模型驱动的开发,并且是androMDA项目的提交者,并帮助从UML模型开发.Net代码生成器。我能够编写下颌脚本来为我阅读合理的玫瑰图。我使用了一些德国大学开发的称为T-dub(盲人的技术图表理解)的工具来访问UML 2.0图表。已使用基于Java的丑陋工具(称为Magic draw)进行模型驱动的开发,并且是androMDA项目的提交者,并帮助从UML模型开发.Net代码生成器。
总的来说,我发现我最擅长在团队环境中发挥自己的优势。例如,虽然图表对于传达/记录设计非常有用,但实际的设计过程涉及很多思考和脑力激荡,并且在构思出设计之后,您的团队伙伴之一可以帮助您快速将整齐的设计图图片出来。人们错误地将以上观点误解为缺乏独立性或能力,而我将其视为纯粹的相互依存-因为在我看来,仅队友永远不可能独自或独自提出这种设计。 -转,如果我依靠他来记录设计,就这样吧。我面临的大多数障碍都是基于工具的不可访问性。
我是一个盲人开发人员,我在Windows,GNU Linux和MacOS X下工作。每个平台针对盲人用户都有不同的工作流程。这取决于盲人开发人员使用的屏幕阅读器。盲人开发人员无法完全使用开发工具。我可以在所有IDE中键入代码并使用编译功能,但是如果我必须使用诸如Interface Builder,XGlade或其他设计工具来设计接口,则会遇到很多问题。在使用Borland Delphi进行开发时,我可以添加一个控件,例如一个Button,并且可以使用对象检查器窗口修改该控件的每个可视属性。许多IDE使用对象检查器窗口来修改视觉和非视觉属性,但盲开发人员的问题是添加新控件,因为添加新控件的方法包括将控件从调色板拖放到画布上。Visual Studio 200x使用替代方法来执行此操作,但是IDE的界面在每个新版本中都会发生变化,这是一个大问题,因为Windows的屏幕阅读器需要使用脚本来提供特殊支持以识别某些非标准应用程序的每个区域。盲人开发人员可以将Visual Studio 2008与他的屏幕阅读器一起使用,但是当此IDE的新版本出现时,他必须等待该IDE版本的新脚本。Xcode with Interface构建器尚无可替代的拖放任务。我多次问苹果公司,但是他们在做其他事情。我在App Store中发布了3个应用程序(可访问的扫雷器,可访问的水果机和对ciegas RSS编程),并且必须通过代码设计所有界面。这是一项艰苦的工作,但是我可以管理每个控件的所有功能。Eclipse具有可访问的代码编辑器,但其他开发工具(如调试控制台,用于设计的插件或文档区域)为盲人用户提供了辅助工具方面的问题。
对于盲人开发人员来说,文档编制也是一个问题。许多示例和演示都使用图像来显示说明(可以在图片中设置环境设置)
我认为问题不是盲目的。问题是公司和开发团队认为可访问性会影响最终软件,但不会影响开发软件。他们认为盲人用户应该是客户,但盲人用户不能成为开发伙伴。
盲人协会要求获得产品和服务的可访问性,但他们忘记了盲人开发者。盲人可以担任律师,新闻工作者,教师,但是盲人开发人员即使对于盲人来说也是一个奇怪的概念。很多时候我感到孤独,因为我的一些盲人朋友不理解我的工作。
您可以在西班牙语中的本文http://www.programaraciegas.net/2010/11/05/la-accesibilidad-en-crisis-para-los-desarrolladores-ciegos/中阅读我对这个问题的看法。 网页中有翻译工具。抱歉,我没有翻译。
Emacs具有许多扩展,允许盲人用户操纵文本文件。您必须咨询该主题的专家,但是emacs具有文本转语音功能。可能还有更多。
此外,还有BLinux:
盲人使用Linux。住了很长时间。我认为已经十多年了,而且很成熟。
Hanselman 最近与一位盲人开发人员进行了非常有趣的播客。
我在底特律大盲人协会工作了三年,专门为盲人访问量身定制了一个BBS,并与许多盲人用户一起探讨如何更好地满足他们的需求,并与新的盲人用户一起使他们适应可用的硬件和当时可用的软件产品。如果没有别的,我至少学会了将盲文作为对冲我的案例,因为我曾经遇到过同样的情况!
大多数盲人计算机用户和程序员都使用某种屏幕阅读器。尤其是大白鲨。幸运的是,如今大多数主要应用程序都提供了某种形式的残疾人通道。您可能需要微调您的环境以减少cut不休,例如考虑在Visual Studio中禁用Intellisense。
甲盲文显示器是不常见的且是相对昂贵得多并能显示文本的40个或80列,而当精确定位/标点符号是重要都可以使用。虽然可以将屏幕阅读器配置为消除标点符号,但许多人发现它会分散注意力,并且在许多情况下,您更容易感觉到标点符号。可以将下颌配置为驱动显示器,因此您无需摆弄辅助功能应用程序。
同样,许多合法盲人用户仍然有一些视线。使用高对比度的背景和放大功能可以帮助很多这些用户。
在Windows中使用ToggleKeys,当您不小心轻触模式“大写锁定”,“数字锁定”,“滚动锁定”等键之一时,也会让您听到声音。
我知道至少有一个Haskell程序员,他使用屏幕阅读器并且显式地编程而不使用Haskell的布局规则,而是选择使用相当惯用但受支持{;}
的,因为这样会使他更容易/分神他的屏幕阅读器会读取标点符号,而不是让他找出符合Haskell布局规则的确切缩进。在同一点上,我听到一些盲人程序员抱怨何时编写Python。
最终,您将学会发挥自己的优势。
一个开始的地方是Blinux项目:
该项目描述了如何获取Emacspeak(具有文本转语音功能的编辑器),并具有许多其他资源。
我与一个视力都很好的人一起工作,但是阻止他们使用监视器-他们在Screen Reader软件上做得很好,并花了很多时间在基于文本的应用程序和外壳程序上。
Wikipedia的屏幕阅读器软件包列表是另一个起点:http://en.wikipedia.org/wiki/List_of_screen_readers
我是中国北京的研究生。我主修计算机科学,我的许多工作是编程。我天生视力低下,我需要使用放大工具才能清楚地看到屏幕上的字体。我在Windows上使用Microsoft的mgnify工具,并在Linux上使用compiz的magnify插件。我通常将工具设置为放大到原始字体大小的三倍。对我而言,maginify工具还可以,主要问题是速度,我必须移动鼠标以使光标保持在我要查看的文本后面,Microsoft的magnify提供了“自动跟随文本编辑点”选项,这使我从编辑或编码时连续鼠标移动。但是由于编辑软件或IDE可能不支持,所以它并不总是有效。Linux上的放大工具很难使用。随KDE一起提供的KMag具有极差的刷新率,这使我的眼睛无法辨认,我现在使用的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上构建有用的放大工具。但几乎没有任何进展。
这篇博客文章包含有关Visual Studio团队如何使其产品可访问性的一些信息:
许多程序员使用Emacspeak:
回到新西兰,我认识一个患有黄斑变性的人,因此部分被发现。他是一个非常有才华的程序员,并且精通Delphi,因为他可以通过识别单词形状来工作。使用类似Pascal的语法比使用C-ish弯弯的括号更容易做到。他有一个网站,但似乎根本没有提到黄斑变性,所以我不愿透露他的名字。
正如许多人指出的那样,emacspeak一直是那里许多老龄黑客的持久解决方案跨平台。由于它开箱即用地支持Linux和Mac,因此它已成为我开发Windows egnostic项目的首选方法。
关于通过听觉而不是视觉来降低语法的问题,我发现存在多种技巧,即使不在同一个游戏环境中也可以使一种技巧接近。
对于一个例子,听觉图标可以代替语言描述符。您可以为线条缩进多远设置色调。音调越长,缩进越远。由于音调可以与文本到语音并行播放,因此信息是在相同的时间范围内传递的,因此不会序列化如此基本的信息。
盲文可以快速,准确地向用户解码行的确切语法。这对于在日常生活中使用盲文的人来说更有用。最大的优点是可以随意访问显示内容。可刷新单元通常在每个字符单元上方具有路由器键,可以将光标放置到该单元上。无需摆弄箭头键O(n)op与O(1)的访问权限。
听觉维度(音高,速率,音量,变形,丰富度,压力等)可以传达一个概念(关键字,类别,变量,错误等)。例如,如果我可以这样说,则注释可以单调变奏形式显示。
Emacs和其他编辑器(Visual Studio)在较小程度上允许编码器对称地阅读程序(下一个块,折叠块,向下defun,跳转到def,向上分析树等)。您可以非常快速地获得整个项目结构的“概况”。使用Cedet之类的扩展,您可以在文本编辑器中获得VS / Eclipse / etc跨平台的优点。
大概可以继续下去,但总而言之,这就是为什么我们中的一些人在工业,学术性贫血或我们的地下室中乱砍的基础:)。
来自南伊利诺伊大学爱德华兹维尔分校和华盛顿州立大学的一群学生正在为盲人编写一种编程语言:
harald van Breederode是一位著名的荷兰Oracle DBA专家,培训师和演示者,她是盲人。他的博客包含一些对视障人士有用的提示。
盲文键盘到底是什么?
有盲文编写器之类的东西,但是您永远不会将其用作计算机的输入设备。
如果您只是在谈论带有盲文符号的键盘,这也是一个非常糟糕的主意。键入时,您将要碰到更多的键,但它仍然会比较慢。
触摸打字不是视觉技能,盲人和盲人都能做到。
我认为这在使用结对编程原理的极限编程中会很好。如果您要为盲人开发软件,那么谁最好还是要与真正符合业务需求的人合作,那么我认为这根本不是一件难事。
至于编写代码,除非有某种反馈,否则我认为一个人可能会在语法上遇到困难。音频反馈可能会有所帮助。
有多种工具可以帮助盲人或弱视人群,包括语音反馈和盲文键盘。http://www.rnib.org.uk/Pages/Home.aspx是一个很好的网站,可以为您提供有关这些问题的帮助和建议。
当我遇到Sam Hartman时,他从2000年开始就是著名的Debian开发人员,而且是盲人。在这次采访中,他谈到了Linux用户的可访问性。他使用Debian和gnome-orca作为屏幕阅读器,与Gnome一起使用,并且“在说Iceweasel / Firefox和Libreoffice方面做得相对不错”。
具体说到编程,他说:
尽管[gnome-orca]确实讲了gnome-terminal,但说我喜欢的终端程序还不够好。因此,我使用Emacspeak软件包运行Emacs。在那儿,我运行Emacs终端仿真器,在那儿,我倾向于运行Screen。为了增加乐趣,我经常在内部屏幕中运行Emacs的其他实例。