如果你是盲人,你怎么能编程呢?
视觉是大多数程序员认为理所当然的感官之一。 大多数程序员会花几个小时看着电脑显示器(尤其是当他们在区域时),但我知道有盲人程序员(例如目前在 Google 工作的 TV Raman)。
如果你是一个盲人(或者慢慢变得盲人),你会如何设置你的开发环境来帮助你编程?
(请每个答案提出一个建议。这个问题的目的是将好的想法放在首位。此外,屏幕阅读器可以更早地阅读好想法。)
Sight is one of the senses most programmers take for granted. Most programmers would spend hours looking at a computer monitor (especially during times when they are in the zone), but I know there are blind programmers (such as T.V. Raman who currently works for Google).
If you were a blind person (or slowly becoming blind), how would you set up your development environment to assist you in programming?
(One suggestion per answer please. The purpose of this question is to bring the good ideas to the top. In addition, screen readers can read the good ideas earlier.)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(24)
我是一名完全失明的大学生,有过几次编程实习经历,所以我的答案将基于这些。 我使用 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 部分。
我通常依赖合成语音,但有盲文显示器。 我发现我通常在语音方面工作得更快,但在标点符号很重要且变得复杂的情况下使用盲文显示器。 例如,带有大量嵌套括号的 if 语句和 JCL,其中标点符号非常重要。
更新
我正在 cygwin 下使用 Emacspeak http://emacspeak.sourceforge.net 我不确定这是否将可用作编程编辑器,因为它似乎有些无响应,但我还没有查看任何配置选项。
I am a totally blind college student who’s had several programming internships so my answer will be based off these. I use windows xp as my operating system and Jaws to read what appears on the screen to me in synthetic speech. For java programming I use eclipse, since it’s a fully featured IDE that is accessible.
In my experience as a general rule java programs that use SWT as the GUI toolkit are more accessible then programs that use Swing which is why I stay away from netbeans. For any .net programming I use visual studio 2005 since it was the standard version used at my internship and is very accessible using Jaws and a set of scripts that were developed to make things such as the form designer more accessible.
For C and C++ programming I use cygwin with gcc as my compiler and emacs or vim as my editor depending on what I need to do. A lot of my internship involved programming for Z/OS. I used an rlogin session through Cygwin to access the USS subsystem on the mainframe and C3270 as my 3270 emulator to access the ISPF portion of the mainframe.
I usually rely on synthetic speech but do have a Braille display. I find I usually work faster with speech but use the Braille display in situations where punctuation matters and gets complicated. Examples of this are if statements with lots of nested parenthesis’s and JCL where punctuation is incredibly important.
Update
I'm playing with Emacspeak under cygwin http://emacspeak.sourceforge.net I'm not sure if this will be usable as a programming editor since it appears to be somewhat unresponsive but I haven't looked at any of the configuration options yet.
我是盲人,在 Windows、Mac、Linux 和 DOS 上编程已有大约 13 年,使用的语言包括 C/C++、Python、Java、C# 以及各种较小的语言。 虽然最初的问题是关于配置环境的,但我认为最好的答案是看看盲人如何使用计算机。
有些人使用说话环境,例如 TV Raman 和其他答案中提到的 Emacspeak 环境。 到目前为止,更常见的解决方案是使用一个屏幕阅读器,在后台运行,监视操作系统活动,并通过合成语音或物理盲文显示器(通常一次显示 20 到 80 个字符)提醒用户。 这意味着盲人可以使用任何可访问的应用程序。
所以,这些天我个人使用 Visual Studio 2008,并且只需要很少的修改就可以运行它。 我关闭了某些功能,例如在键入时显示错误,因为我发现这会分散注意力。 在加入 Microsoft 之前,我的所有开发都是在记事本等标准文本编辑器中完成的,因此再次没有进行自定义。
可以配置屏幕阅读器来宣布缩进。 我个人不使用这个,因为 Visual Studio 会处理这个,而 C# 使用大括号。 但这对于像 Python 这样空格很重要的语言来说非常重要。 最后,Emacspeak 确实使用不同的声音/音调来指示语法的不同部分(关键字、注释、标识符等)。
I'm blind, and have been programming for about 13 years on Windows, Mac, Linux and DOS, in languages from C/C++, Python, Java, C# and various smaller languages along the way. Though the original question was around configuring the environment, I think it's best answered by looking at how a blind person would use a computer.
Some people use a talking environment, such as T. V. Raman and the Emacspeak environment mentioned in other answers. The more common solution by far is to have a screen reader which runs in the background monitoring OS activity and alerting the user via synthetic speech or a physical braille display (generally showing somewhere from 20 to 80 characters at a time). This then means a blind person can use any accessible application.
So, I personally use Visual Studio 2008 these days, and run it with very few modifications. I turn off certain features like displaying errors as I type since I find this distracting. Prior to joining Microsoft all my development was done in a standard text editor like Notepad, so once again no customisations.
It is possible to configure a screen reader to announce indentation. I personally don't use this, since Visual Studio takes care of this, and C# uses braces. But this would be very important in a language like Python where whitespace matters. Finally, Emacspeak does make use of different voices/pitches to indicate different parts of syntax (keywords, comments, identifiers, etc).
当我遇到 Sam Hartman 时,他是 2000 年以来著名的 Debian 开发人员,而且是个盲人。 在这次采访中,他讨论 Linux 用户的可访问性。 他使用 Debian 和 gnome-orca 作为屏幕阅读器,它与 Gnome 配合使用,并且“在 Iceweasel/Firefox 和 Libreoffice 方面做得相对较好”。
他具体谈到编程时说:
Once I met Sam Hartman, he is a famous Debian developer since 2000, and blind. On this interview he talks about accessibility for a Linux user. He uses Debian, and gnome-orca as screen reader, it works with Gnome, and "does a relatively good job of speaking Iceweasel/Firefox and Libreoffice".
Specifically speaking about programming he says:
回到新西兰时,我认识一个患有黄斑变性的人,因此视力不佳。 他是一位非常有才华的程序员,最终使用了 Delphi,因为他可以通过识别单词形状来工作。使用类似 Pascal 的语法比使用 C 风格的波浪括号语法更容易做到这一点。 他有一个网站,但似乎根本没有提到黄斑变性,所以我不会透露他的名字。
Back in New Zealand I knew someone who had macular degeneration, so was partially sighted. He's a very talented programmer and wound up using Delphi because he could work by recognizing word shapes This was easier to do with a Pascal-like syntax than a C-ish squiggly bracket one. He has a web site, but doesn't seem to mention macular degeneration at all, so I won't name him.
我是个盲人,几个月来我一直在使用 VINUX(基于 Ubuntu 的 Linux 发行版)和 SODBBEANS(netbeans 的一个版本,带有名为 SAPPY 的插件,添加了 TTS 支持)。
这个解决方案工作得很好,但有时我更喜欢启动 Win XP 和 NVDA 在 FireFox 上启动许多页面,因为当您尝试打开 3 个以上的 FireFox 窗口时,Vinux 不能很好地工作......
I'm blind and from some months I'm using VINUX (a linux distro based on Ubuntu) with SODBEANS (a version of netbeans with a plug-in named SAPPY that add a TTS support).
This solution works quite well but sometimes I prefer to launch Win XP and NVDA for launching many pages on FireFox because Vinux doesn't work very well when you try to open more than 3 windows of FireFox...
正如许多人指出的那样,对于许多老黑客来说,emacspeak 一直是持久的跨平台解决方案。 由于它开箱即用地支持 Linux 和 Mac,因此它已成为我开发 Windows 不可知项目的首选方法。
对于通过听觉而不是视觉来实际了解语法的问题,我发现存在多种技术可以接近语法,即使不是在同一个竞争环境中。
例如,听觉图标可以代替言语描述符。 您可以设置音调来指示行缩进的距离。 音调越长,缩进越远。 由于音调可以与文本到语音并行播放,因此信息会在同一时间范围内传输,并且不会串行化如此基本的通信。
盲文可以快速准确地向用户解码一行的确切语法。 这对于日常生活中使用盲文的人来说更有用; 最大的优点是可以随机访问显示的内容。 可刷新单元通常在每个字符单元格上方都有路由器键,可以将光标放置到该单元格上。 无需摆弄箭头键 O(n) op vs O(1) access。
听觉维度(音高、速率、音量、音调、丰富度、重音等)可以传达概念(关键词、类别、变量、错误等)。 例如,评论可以用单调的变化来阅读......适合,如果我可以这么说:)。
Emacs 和其他较小程度的编辑器 (Visual Studio) 允许编码器以符号方式仔细阅读程序(下一个块、折叠块、向下 defun、跳转到 def、沿着解析树向上走等)。 通过这样做,您可以非常快速地获得整个项目结构的“大”图; 通过像 Cedet 这样的扩展,您可以在文本编辑器中获得 VS/Eclipse/etc 跨平台的优点。
可能会继续下去,但简而言之,这就是为什么我们中的一些人在工业界、学术界或我们的地下室里进行黑客攻击的基础:)。
As many have pointed out, emacspeak has been the enduring solution cross platform for many of the older hackers out there. Since it supports Linux and Mac out of the box, it has become my prefered means of developing Windows egnostic projects.
To the issue of actually getting down syntax through an auditory one as opposed to a visual one, I have found that there exists a variety of techniques to get one close if not on the same playing field.
Auditory icons can stand in place for verbal descriptors for one example. You can, put tones for how far a line is indented. The longer the tone, the further the indent. Since tones can play in parallel with text to speech, the information comes through in the same timeframe and doesn't serialize the communication of something so basic.
Braille can quickly and precisely decode to the user the exact syntax of a line. This is something more useful for people who use braille in daily life; the biggest advantage is random access to the contents of the display. Refreshable units typically have router keys above each character cell which can place the cursor to that cell. No fiddling with arrow keys O(n) op vs O(1) access.
Auditory dimensionality (pitch, rate, volume, inflection, richness, stress, etc) can convey a concept (keyword, class, variable, error, etc). For example, comments can be read in a monotone inflection...suiting, if I might say so :).
Emacs and other editors to lesser extents (Visual Studio) allow a coder to peruse a program symantically (next block, fold block, down defun, jump to def, walk up the parse tree, etc). You can very quickly get the "big" picture of the structure of an entire project doing this; with extensions like Cedet, you can get the goodness of VS/Eclipse/etc cross platform and in a textual editor.
Could probably go on and on, but that in a nutshell, is the basis of why a few of us are out there hacking away in industry, adacdemia, or in our basements :).
来自南伊利诺伊大学爱德华兹维尔分校和华盛顿州立大学的一群学生正在为盲人开发一种编程语言:
http://www.youtube.com/watch?v=lC1mOSdmzFc
A group of students from Southern Illinois University Edwardsville and Washington State University are working on a programming language for the blind:
http://www.youtube.com/watch?v=lC1mOSdmzFc
harald van Breederode 是荷兰著名的 Oracle DBA 专家、培训师和演讲者,他是一位盲人。 他的博客包含一些针对视障人士的有用提示。
harald van Breederode is a well-known Dutch Oracle DBA expert, trainer and presenter who is blind. His blog contains some useful tips for visually impaired people.
盲文键盘到底是什么?
有盲文书写器之类的东西,但你永远不会将其用作计算机的输入设备。
如果您只是谈论带有盲文符号的键盘,这也是一个非常糟糕的主意。 打字时你将需要触碰更多的按键,而且速度仍然会变慢。
盲打不是是一种视觉技能,盲人可以和视力正常的人一样做到这一点。
What in the world would a braille keyboard even be??
There are such things as braille writers but you would never use one as an input device for a computer.
If you're simply talking about a keyboard with the braille symbols on it this would also be a very bad idea. You're going to have a lot more keys to reach while typing and it would still be slower.
Touch typing is NOT a visual skill, a blind person can do it just as well as a sighted person.
我认为这在使用结对编程原理的极限编程中会很有效。 如果你正在为盲人开发软件,那么谁能比真正了解业务需求的人更好地开发它,所以我认为这根本不是很牵强。
至于编写代码,除非有某种反馈,否则我认为一个人可能会在语法上遇到困难。 不过,音频反馈可能会有所帮助。
I think that this would work well in extreme programming using the pair programming principle. If you're making software for blind people, who better to make it then someone who would literally be in touch with the business requirements, so I don't think it's very far fetched at all.
As for writing code, well unless there was some kind of feedback I think a person may struggle with syntax. Audio feedback may help to a point though.
NVDA 是一个很好的 win 开源屏幕阅读器。
NVDA is a good open source screen reader for win.
发明某种插入 USB 端口的设备怎么样?它基本上是一块“橡胶片”,可以自我修改以显示代码的盲文,让盲人可以阅读它而不是听到它?
What about inventing some kind of device that you plug in a usb port and that would be basically a "sheet of rubber" that would modify itself to show brail of your code, allowing blind people to read it instead to hear it?
有多种工具可以帮助盲人或弱视者,包括语音反馈和盲文键盘。 http://www.rnib.org.uk/Pages/Home.aspx是一个提供有关这些问题的帮助和建议的好网站。
There are a variety of tools to aid blind people or partially sighted including speech feedback and braillie keyboards. http://www.rnib.org.uk/Pages/Home.aspx is a good site for help and advice over these issues.
我是个盲人,在过去 12 年左右的时间里我一直是一名程序员。 目前是一名高级架构师,在 Sapient Corporation(一家位于剑桥的咨询公司,创建基于 Web 和基于胖客户端的企业解决方案)工作。
我使用多种屏幕阅读器,但大多坚持使用 Jaws for windows 和 NVDA。
我主要在 Microsoft 平台和 Visual Studio 作为我的环境中工作。 我还使用 MS Sql enterprise studio 等工具进行数据库访问、网络监控等。
我尝试花一些时间使用 emacspeak,但由于我的工作主要基于 MS 平台,因此从未真正花很多时间在那里。
我还花了几年时间在 Linux 上研究 C++ - 主要使用 Windows 上的记事本或 Visual Studio 进行所有编码,然后使用 samba 与 Linux 环境共享文件。
还使用 borland C 进行一些实验。 最近在玩Python,正如其他人上面指出的那样,它对于盲人用户来说特别不友好,因为它是使用缩进作为嵌套机制编写的。 话虽如此,最流行的开源屏幕阅读器 NVDA 完全是使用 python 编写的,该项目的一些提交者本身就是盲目的。
作为一名架构师,我经常被问到的一个特别有趣的问题是如何处理图表 - UML、visio 和 Rational Rose 等。Visio 可能是最容易使用的图表工具。 我能够编写颌骨脚本来为我阅读理性玫瑰图。 我使用了一些德国大学开发的名为 T-dub(盲人技术图表理解)的工具来访问 UML 2.0 图表。 使用基于 java 的丑陋工具 magic draw 进行模型驱动开发,并且是 androMDA 项目的提交者,并帮助从 UML 模型开发 .Net 代码生成器。
总的来说,我发现我在团队环境中最能成长,在那里我可以发挥自己的优势。 例如,虽然图表对于传达/记录设计非常有用,但实际的设计过程涉及大量的思考和集思广益,当设计完成后,您的一位团队成员可以帮助您快速整理出一张整齐的图图片从中出来。
人们错误地将上述误解为缺乏独立性或能力,而我认为这是纯粹的相互依赖——因为我确信团队成员永远不可能独自想出这样的设计。 -反过来,如果我依赖他来记录设计,那就这样吧。
我面临的大多数障碍是基于工具的不可访问性。 例如,多年来,所有甲骨文产品的可访问性都在逐渐下降(对它们感到羞耻),而团队环境基本上为我在屏幕阅读器和自定义脚本之上提供了额外的防御层。
I am blind and have been a programmer for the last 12 years or so. Currently am a senior architect and work with Sapient Corporation (a cambridge-based consulting company creating both Web-based and thick client based enterprise solutions).
I use several screen readers but mostly stick with Jaws for windows and NVDA.
I have mostly worked on the Microsoft platform and visual studio as my environment. I also use tools like the MS Sql enterprise studio and others for DB access, network monitoring etc.
I tried to spend some time with emacspeak but since my work was mostly based on the MS platform, never really spent a lot of time there.
I have also spent a couple of years working on C++ on linux - mostly used notepad or visual studio on windows for all the coding and then samba to share files with the linux environment.
Also used borland C for some experimental stuff. Have recently been playing around with python, which as other people have noted above is particularly unfriendly for a blind user because it is written using indentation as the nesting mechanism. Having said that, NVDA, the most popular open source screen reader is written completely using python and some of the commiters on that project are themself blind.
A particularly interesting question I get frequently asked as an architect is how do I deal with diagrams - UML and visio and rational rose etc. Visio is probably the most accessible diagraming tool out there. I was able to write jaws scripts to read rational rose diagrams for me. I've used a tool called T-dub (technical diagram understanding for the blind) developed by some german university for accessing UML 2.0 diagrams. Have used a java-based ugly tool called magic draw for doing model-driven development and was a commiter on the androMDA project and helped develop the .Net code generator from a UML model.
In general, I find that I thrive most in a team environment where I can work on my strengths. For example, while a diagram is extremely useful to communicate/document a design, the actual design process involves a lot of thinking and brainstorming and when the design has been thought out, one of your team mates can help you quickly put together a neatly drawn picture out of it.
People incorrectly mis-construe the above to be lack of independence or ability while I see this as pure inter-dependence -- as in I am sure that the team mate alone could never have come up with that design on his/her own and in-turn, if I depend on him to document the design, so be it.
Most hurdles I face are tool-based inaccessibility. For example all oracle products have been progressively declining in accessibility over the years (shame on them) and a team environment basically allows me an extra layer of defense against these over and above my screen readers and custom scripts.
我是一名盲人开发人员,在 Windows、GNU Linux 和 MacOS X 下工作。每个平台对于盲人用户都有不同的工作流程。 这取决于盲人开发人员使用的屏幕阅读器。
盲人开发人员无法完全使用开发工具。 我可以在所有 IDE 中输入代码并使用编译功能,但是如果我必须使用 Interface Builder、XGlade 等设计工具来设计界面,则会出现很多问题。 当我使用 Borland Delphi 进行开发时,我可以添加一个控件(例如按钮),并且可以使用对象检查器窗口修改控件的每个视觉属性。 许多 IDE 使用对象检查器窗口来修改视觉和非视觉属性,但盲人开发人员面临的问题是添加新控件,因为添加新控件的方法包括将控件从调色板拖放到画布上。 Visual Studio 200x 使用替代方法来执行此操作,但 IDE 的界面在每个新版本中都会发生变化,这是一个大问题,因为 Windows 的屏幕阅读器需要使用脚本的特殊支持来识别某些非标准应用程序的每个区域。 盲人开发人员可以通过屏幕阅读器使用 Visual studio 2008,但是当该 IDE 的新版本出现时,他必须等待该版本 IDE 的新版本脚本。
带有 Interface builder 的 Xcode 还没有拖放任务的替代方案。 我多次向苹果提出这个问题,但他们正在做其他事情。 我在应用商店发布了 3 个应用程序(Accessibleminesweeper、accessiblefruitmachine 和 Programar aciegasRSS),我必须通过代码设计所有界面。 这是一项艰苦的工作,但我可以管理每个控件的所有功能。
Eclipse 有一个易于访问的代码编辑器,但其他开发工具(如调试控制台、用于设计或文档区域的插件)给盲人用户的辅助工具带来了问题。
对于盲人开发人员来说,文档也是一个问题。 许多示例和演示都使用图像来显示说明(按照图片中的方式设置环境设置)
我认为问题不是盲目的。 问题是公司和开发团队认为可访问性会影响最终软件,但不会影响开发软件。 他们认为盲人用户应该是客户,但盲人用户不能成为开发伙伴。
盲人协会要求产品和服务的可访问性,但他们忘记了盲人开发人员。 盲人可以担任律师、记者、教师,但盲人开发商即使对于盲人来说也是一个奇怪的概念。 很多时候我感到孤独,因为我的一些盲人朋友无法理解我的工作。
您可以在我的博客 http://www.programaraciegas.net/2010/11/05/la-accesibilidad-en-crisis-para-los-desarrolladores-ciegos/
网页中有翻译工具。 抱歉,我没有翻译它。
I am a blind developer and I work under Windows, GNU Linux and MacOS X. Each of platform has different workflows for blind users. This depends on the screen reader that the blind developer uses.
Development tools are not completely accessible for blind developers. I can type code and use compiling functions in all IDEs but there are many problems if I have to design an interface using designing tools as Interface Builder, XGlade or other. When I was developing with Borland Delphi I could add a control, a Button for example, and I could modify each visual attribute of the control using object inspector window. Many IDEs use object inspector windows to modify visual and non visual attributes but the problem for a blind developer is add new controls because the method to add a new control consists of dragging and dropping a control from the palette to the canvas. Visual studio 200x uses alternative methods to do this but the interface of the IDE changes in each new version and this is a big problem because screen readers for Windows need special support, using scripts, to identify each area of some non standar applications. A blind developer can use Visual studio 2008 with his screen reader but when a new version of this IDE appears he has to wait for a new version of scripts for this version of the IDE.
Xcode with Interface builder has no alternative for dragging and dropping tasks yet. I asked it to Apple many times but they are working in other things. I published 3 apps in the App store (Accessible minesweeper, accessible fruitmachine and Programar a ciegas RSS) and I had to design all the interface by code. It's a hard work but I can manage all features of each control.
Eclipse has an accessible code editor but other development tools as debug console,plugins for designing or documentation area present problems for assistive tools for blind users.
Documentations is a problem for blind developers too. Many samples and demonstrations use images to show the explanation (set the environment settings as you can in the picture)
I think the question is not being blind. The question is the companies and development groups think accessibility affects final software but it doesn't affect development software. They think a blind user should be a client but a blind user can't be a development mate.
Blind associations ask accessibility for products and services but they forgot blind developers. Blind people can work as lawyers, journalists, teachers but a blind developer is a strange concept even for the blind. Many times I feel alone because some blind friends of mine can't understand my work.
You can read my opinion about this issue in this article, in Spanish, in my blog http://www.programaraciegas.net/2010/11/05/la-accesibilidad-en-crisis-para-los-desarrolladores-ciegos/
there is a translation tool in the web page. Sorry but I didn't translate it.
Emacs 有许多扩展允许盲人用户操作文本文件。 您必须咨询该主题的专家,但 emacs 具有文本转语音功能。 可能还有更多。
此外,还有 BLinux:
http://leb.net/blinux/
盲人 Linux。 已经存在很长时间了。 我想十几年了,已经很成熟了。
Emacs has a number of extensions to allow blind users to manipulate text files. You'd have to consult an expert on the topic, but emacs has text-to-speech capabilities. And probably more.
In addition, there's BLinux:
http://leb.net/blinux/
Linux for the blind. Been around for a very long time. More than ten years I think, and very mature.
请记住,“盲人”是一系列的情况——有些人在法律上是盲人,可以在很大的显示器或放大镜的帮助下阅读,还有一些人根本没有视力。 我记得大学时的一个同学有一个特殊的设备可以放大书籍,还有一个特殊的软件可以用来放大屏幕的一部分。 她正在努力学习以完成大学学业,因为她的视力越来越差并且即将完全消失。
编程也有一系列的需求——有些人擅长编写大量代码,而有些人更擅长查看大局和架构。 我想,考虑到屏幕界面带来的困难,失明可能会增强你了解全局的能力......
Keep in mind that "blind" is a range of conditions - there are some who are legally blind that could read a really large monitor or with magnification help, and then there are those who have no vision at all. I remember a classmate in college who had a special device to magnify books, and special software she could use to magnify a part of the screen. She was working hard to finish college, because her eyesight was getting worse and was going to go away completely.
Programming also has a spectrum of needs - some people are good at cranking out lots and lots of code, and some people are better at looking at the big picture and architecture. I would imagine that given the difficulty imposed by the screen interface, blindness may enhance your ability to get the big picture...
Hanselman 最近与一位盲人开发者一起一个非常有趣的播客。
Hanselman had a really interesting podcast with a blind developer recently.
我在大底特律盲人协会工作了三年,运营着一个专为盲人访问量身定制的 BBS,并与许多盲人用户一起研究如何更好地满足他们的需求,并与新盲人用户一起工作,让他们适应可用的硬件和技术。当时可用的软件产品。 如果不出意外的话,我至少学会了阅读盲文,以防止我遇到同样的情况!
大多数盲人计算机用户和程序员都使用某种屏幕阅读器。 Jaws 特别受欢迎。 幸运的是,如今大多数主要应用程序都提供某种形式的残障人士访问。 您可能需要稍微调整您的环境以减少干扰,例如考虑在 Visual Studio 中禁用 Intellisense。
盲文显示器不太常见,而且相对昂贵得多,可以显示 40 或 80 列文本,并且可以在精确定位/标点很重要时使用。 虽然屏幕阅读器可以配置为快速读出标点符号,但很多人发现它会分散注意力,而且在许多情况下更容易摸索。 Jaws 可以配置为驱动显示器,因此您无需处理辅助功能应用程序。
此外,许多法定盲人用户仍然有一些视力。 使用高对比度背景和放大功能可以帮助很多这样的用户。
在 Windows 中使用 ToggleKeys 会让您在不小心点击“大写锁定”、“数字锁定”、“滚动锁定”等模式键之一时听到声音。
我知道至少有一位 Haskell 程序员使用屏幕阅读器,并且在不使用 Haskell 布局规则的情况下显式编程,而是选择使用相当不惯用但受支持的
{;}
,因为对他来说,让屏幕阅读器读出标点符号比找出符合 Haskell 布局规则的精确缩进更容易/更少分散注意力。 同样,我还听到一些盲人程序员抱怨他们何时必须编写 Python。最终,你学会发挥自己的优势。
I worked for the Greater Detroit Society for the Blind for three years running a BBS tailored for blind access and worked with a number of blind users on how to better meet their needs, and with newly blind users to get them acclimated to the available hardware and software offerings that were available at the time. If nothing else, I at least learned to read Braille as a hedge against the case where I ever wound up in the same situation!
The majority of blind computer users and programmers use a screen reader of some sort. Jaws in particular is popular. Fortunately, most major applications these days offer some form of handicapped access. You may have to tune your environment slightly to cut down on the chatter, e.g. consider disabling Intellisense in Visual Studio.
A Braille display is less common and is comparatively much more expensive and can show 40 or 80 columns of text, and can be used when exact positioning/punctuation is important. While a screen reader can be configured to rattle off punctuation, a lot of people find it distracting, and it is easier in many cases to feel your way through it. Jaws can be configured to drive the display, so you're not juggling accessibility applications.
Also, a lot of legally blind users still have some modicum of sight left to them. Using high contrast backgrounds and the magnification functionality can help a lot of these users.
Using ToggleKeys in Windows will let you hear when you accidentally tap one of the modal 'caps lock', 'num lock', 'scroll lock', etc. keys as well.
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.Ultimately, you learn to play on your strengths.
我不记得来源了,但我听说过/读到过一种可听语法“着色”的形式 - 这样就可以将字符串赋值读取为
字符串部分将以不同的音调或声音读取,以使元素的分离更清晰。
I can't recall the source, but I've heard/read about a form of audible syntax "colouring" - so that instead of a string assignment being read as
the string part would be read with a different pitch or voice to make the separation of elements clearer.
一个起点是 Blinux 项目:
http://leb.net/blinux/
该项目描述了如何获取 Emacspeak(具有文本转语音功能的编辑器)并拥有许多其他资源。
我与一个人一起工作,他的视力完全阻止了他们使用显示器 - 他们在屏幕阅读器软件方面做得很好,并且花了很多时间使用基于文本的应用程序和外壳。
维基百科的屏幕阅读器包列表是另一个起点: http://en.wikipedia.org/wiki/屏幕读者列表
One place to start is the Blinux project:
http://leb.net/blinux/
That project describes how to get Emacspeak (editor with text-to-speech) and has a lot of other resources.
I worked with one person who's eye sight all but prevented them from using a monitor - they did well with Screen reader software and spent a lot of time using text based applications and the shell.
Wikipedia's list of screen reader packages is another place to start: http://en.wikipedia.org/wiki/List_of_screen_readers
我是中国北京的一名研究生。 我的专业是计算机科学,我的很多工作都是编程。
我天生视力不佳,需要使用放大工具才能清楚地看到屏幕上的字体。 我在 Windows 上使用 microsoft 的 magnify 工具,在 Linux 上使用 compiz 的 magnify 插件。 我通常将工具设置为原始字体大小的三倍放大。
对我来说,放大工具还可以,主要问题是速度,我必须移动鼠标才能使光标跟随我正在查看的文本,微软的放大工具提供了“自动跟随文本编辑点”的选项,这让我从编辑或编码时连续移动鼠标。 但它并不总是有效,因为编辑软件或 IDE 可能不支持它。
Linux 上的放大工具很难用。 KDE自带的KMag刷新率太差,眼睛不舒服,我现在用的compiz的放大镜还可以,但是没有自动对焦功能(对焦自动跟随)。
iOS为我提供了相当完美的全屏放大解决方案,尤其是在ipad的9.7英寸屏幕上。 自动对焦是不必要的,因为我几乎不使用它们来编码或做其他编辑工作。
Android提供的辅助功能很少,只有摇动反馈之类的,对我来说没什么用。
Android上还没有什么好的放大工具,更不用说iOS上的全屏放大等高级功能了。
我曾经研究过Qt,想在linux上构建一个有用的放大工具,甚至在android上。 但几乎没有什么进展。
I'm a postgraduate student in Beijing,China. I major in computer science and a lot of my work is programming.
I am born with low sight, I need to use magnifying tools to see fonts on screen clearly. I use microsoft's mgnify tools on windows and use compiz's magnify plug in if on linux. I usally set the tool to magnify as three times many as the original font size.
For me maginify tools is ok, the main problem is the speed,I have to move mouse to keep cursors follow the text I'm looking at, microsoft's magnify provides a option of "auto follow the text edit points",that set me from continuously mouse movement when editting or coding. But it doesn't always works because of the edit software or IDE may not support that.
Magnifying tools on linux are hard to use. The KMag come with KDE has a terrible refresh rate which make my eyes unconfortable, compiz's magnifying plugs which I'm using now is OK,but has no function of auto focus(focus auto following).
iOS provides quite perfect solution for me with full screen magnifying, especially on ipad's 9.7 inches screen. there auto focus is not necessary because I hardly use them to code or do other edit stuff.
Android provides very little accessibility functions, only like shake feedback, which is useless for me.
there is no any kind of good magnifying tools on android , not to mention advance function like full screen magnify on iOS.
I used to study Qt, want to build a useful magnify tools on linux, even on android. But hardly have some progress.
当我在读研究生时,我们的研究团队中有一位失明的成员。 他年纪稍大一些,大概40多岁。 他告诉我们他如何对他的第一台计算机进行编程(这远远早于文本转语音普及之前)以摩尔斯电码输出屏幕内容。 为了克服明显的先有鸡还是先有蛋的问题,他每次都必须从头开始完全重写代码,直到代码运行良好,可以让他读回代码为止。
现在,他使用文本转语音技术,尽管他在实际编写任何代码之前都非常彻底地规划了代码,以最大限度地减少调试循环。
他还非常擅长进行 PowerPoint 演示,尽管他视力不佳,但其格式与任何视力正常的演示者的演示一样好。
When I was in grad school, we had a member of our research team who was blind. He was a bit older, maybe mid-40s. He told us about how he programmed his first computer (which was well before text-to-speech was common) to output the contents of the screen in Morse Code. To overcome the obvious chicken-and-egg problem, he had to completely rewrite the code each time through from scratch until it was working well enough for him to have it read back to him.
Now he uses text-to-speech, though he plans the code very thoroughly before actually writing any of it, to minimize the debug loop.
He was also pretty good at giving PowerPoint presentations that, despite his lack of sight, were just about as well formatted as any sighted presenter's.
此博文提供了有关 Visual Studio 团队如何使其产品易于访问的一些信息:
Visual Studio核心团队的无障碍实验室参观活动
许多程序员都使用 Emacspeak:
Emacspeak -- 完整的音频桌面
This blog post has some information about how the Visual Studio team is making their product accessible:
Visual Studio Core Team's Accessibility Lab Tour Activity
Many programmers use Emacspeak:
Emacspeak --The Complete Audio Desktop