当前位置:首页 > 文章列表 > 文章 > 软件教程 > 盲人程序员的编程历程及挑战

盲人程序员的编程历程及挑战

2025-05-22 20:07:20 0浏览 收藏

盲人程序员在编程领域展现出令人敬佩的韧性和创造力。尽管面临视力障碍,他们通过使用屏幕阅读器、点字显示和各种辅助工具,成功地在多个操作系统和编程环境中工作。本文汇集了多位盲人程序员的经验和见解,展示了他们如何克服技术障碍,利用如Jaws、NVDA和Emacspeak等工具进行编程,并强调了软件和网站的可访问性对残障人士的重要性。

首先声明,这篇文章虽然不是在微信平台首发,但确实是小鸡君原创。文章创作已有两年,因此在CSDN、博客园以及两个公众号“程序员之家”和“安卓应用频道”上都有转载。阅读原文中的网友“姬光”就是我啦~既然别人转发了这么久,自己不发一个说不过去了,况且,咱还是原创不是?


盲人程序员的编程生涯这里我们无需深入探讨具体的技术细节,主要是了解一下他们的工作状态,以期让更多的朋友关注残障人士的生活与工作。原问题大致如下:

下面整理一些精彩回答:

From Jared:

我是一个完全失明的大学生,已经参加过几个编程实习,所以我的回答将基于这些经验。我使用Windows XP作为操作系统,并使用Jaws的合成语音来阅读屏幕上的内容。对于Java编程,我使用eclipse,因为它是一个全功能可访问的IDE。

根据我的经验,在Java编程中使用SWT作为GUI工具的可访问性要比使用Swing好,这就是为什么我放弃netbeans的原因。对于.net编程,我使用visual studio 2005,因为这是我实习时使用的标准版本,通过使用Jaws和一系列脚本(比如简化表单设计的脚本),可以使操作变得非常简单。

对于C和C++编程,我使用cygwin加上gcc作为编译器,使用emacs或者vim作为编辑器,视具体工作而定。我的大部分实习涉及到Z/OS的编程,我使用一个登录会话通过Cygwin访问USS子系统,并且使用C3270作为我的3270模拟器来访问主框架的ISPF部分。

我通常依赖于带点字(Braille:点字/盲文)显示的合成语音。我发现当标点符号很重要且比较复杂的情况下,使用点字显示的工作效率会更高。一个例子就是当有很多if声明和许多嵌套的括号以及JCL时,标点就显得非常重要了。

更新:

我在玩cygwin下的Emacspeak http://emacspeak.sourceforge.net,我不确定这个作为编程使用的编辑器是否有用,因为它有时好像反应迟钝,不过我还没有查看任何配置选项

盲人程序员的编程生涯From Saqib:

我是一个盲人,已经使用Windows、Mac、Linux和DOS编程大约13年了,使用的语言从C/C++、Python、Java、C#到各种小众语言。尽管原问题是关于环境配置的,不过我认为最好应该从盲人如何使用电脑开始回答。

有些人使用有声环境,例如T. V. Raman提到的Emacspeak环境。迄今为止更通用的解决办法是使屏幕阅读器运行在后台,并监视操作系统的活动,然后通过合成语音或者物理点字显示(一般一次显示20至80个字符)提醒用户。这就意味着盲人可以使用任何可访问的应用程序了。

那么,我自己这些日子在用Visual Studio 2008,只做了很少的更改。我关掉了一些诸如在输入时显示错误等功能,因为我发现这个功能很容易使你分心。在加入微软行列之前,我的所有开发工作都在类似记事本(Notepad)这样的标准的文本编辑器中完成,所以仍然没有任何自定设置。

让屏幕阅读器读出缩进也是可能的,我自己不用这个功能,因为Visual Studio会处理这些,并且C#中是用大括号的。但是在像Python这样空格很关键的语言中就很重要了。最后,Emacspeak可以使用不同的声音/音高来指出语法的不同部分(关键字、注释、标识符等)。

From Manish:

我是一个盲人,已经编程大约12年了。目前我是Sapient Corporation(一个剑桥的顾问公司,专注基于Web的和胖客户端的企业解决方案)的高级架构师。我使用几个屏幕阅读器,不过大部分是在Windows上使用的Jaws和NVDA。

我大部分在微软平台上工作,使用visual studio作为开发环境。我也使用像MS Sql企业版以及其他的数据库操作工具、网络监控工具等。我曾尝试花些时间使用emacspeak,不过由于我的工作大部分基于MS平台,所以不会在那上面花太多时间。我也花过几年在Linux上使用C++,大部分时候是在windows上使用记事本或者visual studio完成所有的编码工作,然后用samba与linux环境共享文件。

我也使用borland C来做些小实验。最近在玩python,它普遍被认为是对盲人用户最不友好的程序语言,因为它使用缩进作为嵌套机制。说到这里,最流行的开源屏幕阅读器NVDA就完全是用python写的,而且这个项目的一些贡献者本身就是盲人。一个很有意思的问题就是,我经常被问到,作为一个架构师我是如何处理各种图表的(UML、Visio以及Rational Rose等等)。

Visio可能是最易操作的图表工具了,我还可以写jaws脚本来为我读出rational rose图表。我曾用过一个叫T-dub(technical diagram understanding for the blind)的工具来处理UML 2.0图表,它是一些德国大学开发出来的。我还用过一个基于java的非常丑陋的工具叫做magic draw来处理模型驱动(model-driven)的开发工作,并且作为androMDA项目的一个提交者(commiter)协助开发了从UML模型生成.Net代码的生成器。

总体来说,我发现我的自力更生激励了整个团队。例如,当一个图表对沟通/文档化一个设计非常重要时,实际的设计过程牵扯到大量的思考和头脑风暴,并且当设计定稿时,你的一个队友可以帮你快速将其整理为一个干净整齐的图片。人们通常将这种情况视为缺乏独立性或能力,而我却认为这是纯正的相互依存,因为我很确定那个队友靠他/她自己或着几人轮流都不可能想出那样的设计,如果我依赖他将设计文档化也是如此。我遇到的大部分障碍都是基于工具的不可访问的问题。例如所有的oracle的产品都鼓吹其访问性好多年了(鄙视他们),但在团队环境中却只搞了个在屏幕阅读器和自定义脚本之上的额外的防御层。

From Edward Kmett:

我为大底特律盲人辅导会(Greater Detroit Society for the Blind)工作三年了,运营一个为盲人访问量身定制的BBS,并且和很多盲人用户一起工作探寻如何能够更好地满足他们的需求,并帮助新的盲人用户训练他们使用软件和硬件。如果不出意外的话,我至少学会了阅读点字(盲文)来防止万一我遇到跟他们一样的处境。

大部分盲人计算机使用者及程序员使用类似屏幕阅读器的东西。Jaws在某种程度上是最受欢迎的。幸运地,现今的大多数应用程序都提供了某种形式的残障人士访问方式。你可能需要将你的环境稍微调整一下,让它少说一些,比如,可以考虑禁止Visual Studio中的智能感知(Intellisense)。

点字显示设备就不那么常用了,相比之下也贵很多,它可以显示40或80列文本,而且可以用在当精确定位/标点很重要的场合。而屏幕阅读器可以配置成快速读出标点,很多人发现它容易令人分心,其实通过它可以很容易找到适合自己的方式。Jaws可以配置成显示驱动的,因此你无法兼顾可访问性应用程序。

同时,很多法律上的盲人用户仍然有一点遗留的视力。使用高对比度的背景和放大功能可以帮助很多这样的用户。

在Windows中使用ToggleKeys可以在你不小心敲击了”caps lock“、”num lock“、”scroll lock“等健时让你能够听到。

我知道至少有一个Haskell(译者注:一种纯函数式编程语言)程序员使用屏幕阅读器,并且不使用Haskell的布局规则直接编程,并且不使用非惯用(non-idiomatic)的选项,而是用支持{;}的。因为它不会使阅读器读出大量的标点,而且还得计算出Haskell布局规则中精确的缩进,这样他就不会太过分心。同样的,我还听说一些盲人程序员在写Python的时候发些牢骚。

最终,你还是要学会发挥自己的长处。

From Kyle Burton:

可以从Blinux项目开始:http://leb.net/blinux/

这个项目描述了如何获得Emacspeak(带文本阅读的编辑器)并且还有许多其他资源。

我曾经跟这样的一个人工作,他的视力导致他不能使用显示器,但他使用屏幕阅读器软件并花费大量时间使用基于文本的应用程序和shell也工作得很好。

维基百科上有个屏幕阅读器得列表,也可以从这里开始:

http://en.wikipedia.org/wiki/Listofscreen\_readers

From ifwzh:

我是来自中国北京的一个研究生,我是计算机科学专业的并且大部分工作是编程。我天生弱视,需要使用放大工具才能看清屏幕上的文字。我在windows上使用微软的放大镜工具,在linux上使用compiz的放大插件。我一般将工具设置成放大原始字体的三倍。对于我来说,放大工具就够了,主要问题是速度,我需要移动鼠标来确保指针跟随我所看到的文本,微软的放大镜提供了一个选项”自动跟随文本编辑光标“,这可以让我在编辑文本或编码时摆脱频繁移动鼠标的困扰。但是这招并不总是管用,因为编辑软件或者IDE可能不支持。linux上的放大工具比较难用。

KDE中自带的KMag拥有令人恐怖的刷新率,让我的眼睛很不舒服,我现在使用的compiz的放大插件还可以,不过没有自动聚焦功能。对我来说,iOS提供了十分完美的全屏放大解决方案,尤其是ipad的9.7英寸显示屏。它们的自动聚焦就没必要了,因为我很少用它们编辑或编码。安卓(Android)系统只提供了非常少的可访问性功能,只有像摇动反馈这样的功能,对我根本没用。在安卓上没有什么放大工具,更别提像iOS上这种全屏放大的功能了。我以前研究Qt,希望做一个linux上好用的放大工具,甚至是安卓上的,不过很难有什么进展。

后话:

通过以上一些回答,我们可以大致了解一些盲人程序员每天的工作状况,我很惊讶居然有这么多盲人程序员,对于我们来说,可能蒙上眼睛就什么也干不了了,真的很敬佩这些同仁们!

我也希望能够通过本文让更多Web开发者更加关注网站的可用性及可访问性问题,更多地关注残障人士。

好了,本文到此结束,带大家了解了《盲人程序员的编程历程及挑战》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多文章知识!

剪映+DeepSeek:爆款短视频脚本与剪辑秘籍剪映+DeepSeek:爆款短视频脚本与剪辑秘籍
上一篇
剪映+DeepSeek:爆款短视频脚本与剪辑秘籍
在HTML中插入YouTube视频非常简单。YouTube提供了嵌入代码,你可以直接复制粘贴到你的网页中。以下是具体步骤:找到视频:打开YouTube,找到你想要嵌入的视频。获取嵌入代码:点击视频下方的“分享”按钮,然后选择“嵌入”。复制代码:你会看到一段<iframe>代码,复制这段代码。粘贴到HTML:将复制的代码粘贴到你的HTML文件中你想要显示视频的位置。下面是一个示例代码:&
下一篇
在HTML中插入YouTube视频非常简单。YouTube提供了嵌入代码,你可以直接复制粘贴到你的网页中。以下是具体步骤:找到视频:打开YouTube,找到你想要嵌入的视频。获取嵌入代码:点击视频下方的“分享”按钮,然后选择“嵌入”。复制代码:你会看到一段<iframe>代码,复制这段代码。粘贴到HTML:将复制的代码粘贴到你的HTML文件中你想要显示视频的位置。下面是一个示例代码:&
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    542次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    508次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    497次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    484次学习
查看更多
AI推荐
  • SEO标题魔匠AI:高质量学术写作平台,毕业论文生成与优化专家
    魔匠AI
    SEO摘要魔匠AI专注于高质量AI学术写作,已稳定运行6年。提供无限改稿、选题优化、大纲生成、多语言支持、真实参考文献、数据图表生成、查重降重等全流程服务,确保论文质量与隐私安全。适用于专科、本科、硕士学生及研究者,满足多语言学术需求。
    37次使用
  • PPTFake答辩PPT生成器:一键生成高效专业的答辩PPT
    PPTFake答辩PPT生成器
    PPTFake答辩PPT生成器,专为答辩准备设计,极致高效生成PPT与自述稿。智能解析内容,提供多样模板,数据可视化,贴心配套服务,灵活自主编辑,降低制作门槛,适用于各类答辩场景。
    43次使用
  • SEO标题Lovart AI:全球首个设计领域AI智能体,实现全链路设计自动化
    Lovart
    SEO摘要探索Lovart AI,这款专注于设计领域的AI智能体,通过多模态模型集成和智能任务拆解,实现全链路设计自动化。无论是品牌全案设计、广告与视频制作,还是文创内容创作,Lovart AI都能满足您的需求,提升设计效率,降低成本。
    65次使用
  • 美图AI抠图:行业领先的智能图像处理技术,3秒出图,精准无误
    美图AI抠图
    美图AI抠图,依托CVPR 2024竞赛亚军技术,提供顶尖的图像处理解决方案。适用于证件照、商品、毛发等多场景,支持批量处理,3秒出图,零PS基础也能轻松操作,满足个人与商业需求。
    54次使用
  • SEO标题PetGPT:智能桌面宠物程序,结合AI对话的个性化陪伴工具
    PetGPT
    SEO摘要PetGPT 是一款基于 Python 和 PyQt 开发的智能桌面宠物程序,集成了 OpenAI 的 GPT 模型,提供上下文感知对话和主动聊天功能。用户可高度自定义宠物的外观和行为,支持插件热更新和二次开发。适用于需要陪伴和效率辅助的办公族、学生及 AI 技术爱好者。
    61次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码