我认为你第一次看到我的事情间肯定这样想 —— “总觉得少些什么”。没有显示器和鼠标,却有个人敲打着键盘,不知注目着哪里。
这便是我,我同事可以证明我没问题。我是位于坦佩雷(芬兰西南部一座城市)的 Vincit 写字楼中的一名软件开拓者。我双目失落明。这篇文章中我将讲述有关我事情中的事情。
推举下我的前端群:524262608,不管你是小白还是大牛,
https://www.vincit.fi/wp-content/uploads/2017/08/mpsample.mp3?_=1

下面是英语合成器发出的声音:
https://www.vincit.fi/wp-content/uploads/2017/08/essample.mp3?_=2
鼠标对付我来说并不是非常有用,以是我仅仅通过键盘事情。在座的各位该当十分熟习我用到的命令:方向键和 tab 键掌握窗口内的移动,alt+tab 切换窗口等等。屏幕阅读器也有很多自己的快捷键,比如阅读活动窗口的不同区域或开关一些功能特性。
有趣的是阅读网页和其他格式化文档。你看,屏幕阅读器分块呈现信息。每一块可能是一行,也可能是一个单词、一个字母,亦或是文本的片段。举个例子,我在网页中按向下的方向键,我听到页面的下一行。我并不能像正凡人一样用眼睛从屏幕上阅读内容。相反,我听到一块一块的内容,或跳过我不感兴趣的部分。
语音或盲文并不能描述出窗口的显示布局。信息以线性办法呈现给我。如果你把网页复制粘贴进记事本,你就能明白我看到的网页是什么样子的。便是剥离大部分格式的多行文本。然而屏幕阅读器可以获取网页上的 HTML 语法,以是我也能知道超链接、标题、表单等等。事实上,如果非复选框元素展示成复选框样式,我并不能知道这是复选框。我之后将写一篇文章详细讲述这些内容,记住我刚刚举的是个“反人类”例子。 (译者注:溘然感到自责和羞愧,深深明白了一个道理:不要用各种有含意义的传统标签 hack 布局和样式,也不要由于 css 的强大而
我花费大量韶光事情在命令行上。事实上我常日用浏览器和编辑器,很少用其他图形运用程序。比较那些为鼠标用户打造的图形界面,我创造用命令行处理手边的事情更加高效。
既然我如此热爱命令行,为什么我却要选择 Windows 这个并不以命令行出名的操作系统呢?答案很大略:Windows 是最方便的操作系统。 NVDA 是我所选择的屏幕阅读器,它是开源的并且掩护比其他阅读器更频繁。如果上天再我一次机会,我可能会选 Mac 系统,由于我认为它是易用性和功能性平衡的典范。不幸的是 Mac 系统上的屏幕阅读器 VoiceOver 经历了漫长的发布周期从而被遗忘,并且它的导航模型和我独特的事情办法并不折衷。当然这里也有一个 Gnome 桌面上的屏幕阅读器 ,虽然用户很少,依然被很好地掩护着,不过还有一些不完善的地方和我日常事情不折衷。以是,我选择 Windows。由 GNU 出身的 Git Bash 和其他命令行工具填补了 Windows 内置命令行的毛病。
你如何写代码?我花费好永劫光才明白为什么大家以为这个问题是个很博识的问题。记得我上面说过一行一行地阅读文本吗?我也是通过这种办法读代码。常日我会跳过无用的行,或仅听半行来获取内容,但当我须要知道完全信息的时候,我不得不像读小说一样读完所有东西。我当然无法阅读全体代码库。这种情形下我会在脑中抽象一部分代码:这个组件输入 x 返回 y,并不用关心细节逻辑。
这种阅读办法让我和正常同事的事情办法有些差异。举个例子,当代码审查时,我喜好看原始 diff 输出,并列窗口显示 diff 对我并不适用,而且还随意马虎让人分心。有修正的代码行上用符号 + 和 – 比用不同背景色标注也要好太多,并不是由于我不能获知颜色名字,而是由于在新增的一行中,读“加”这个字比读“带繁芜阴影的高亮赤色”用更短的韶光。(嘿,我说你呢 Gerrit (一款代码审核对象))
你或许会认为缩进和其他代码格式和我无关,由于都是基本的视觉问题。并不是这样,精确的缩进对我的帮助和正常开拓者一样。当我用盲文(比语音更加高效)读代码时,我像其他正常程序员一样清楚代码构造。当我进入一段有缩进或无缩进的代码时,我也会得到语音提醒。这些信息帮助我在脑中描述代码构造。事实上我学的第一门措辞便是 Python (PHP 不算),它逼迫利用代码缩进,这对我来说并不是问题。我有浩瀚情由来强烈建议利用整洁统一的代码风格,个中之一便是不要让我的生活变得更加困难了,好吗。
你喜好哪款编辑器?剧透一下:这个答案并不因此 V 或者 E 开头(我虽然通过命令行用 Vim 来写 git commit 信息和其他备注。我认为我在这场圣战中是中立的)(译者注:Vim 和 Emacs 梗)一年前我认为 Notepad++ 最棒,它是轻量级的做工风雅的文本编辑器。然而一年前我还没有打仗大规模 Java 项目,当我打仗这种项目时,意味着我该当在 Notepad++ 和理智之间做个选择。末了我选择理智,抛弃 Notepad++ 转投 IntelliJ IDEA 的怀抱。从那之后 IntelliJ IDEA 便是我首选编辑器。我曾对各种 IDE 有深深怨念,它们大多数在纯键盘流操作下麻烦又低效。如果我视力没问题,我肯定早就跳到 IDE 阵营了。
但你可能会问,为什么当初选 Notepad++。还有其他很多更前辈的轻量级编辑器,比如 Sublime 或 Atom。缘故原由很大略:屏幕阅读器无法访问它们。Vim 一类的文本编辑器也是如此,我利用的屏幕阅读器对命令行程序的支持有问题,在这些编辑器上无法处理多于 commit 信息的文本。很遗憾,可用性决定了我能够利用的工具。纵然我不能高效事情,也不是什么大问题。
你编写过前端代码吗?你该当认为前端开拓和视觉有关,注定与盲人程序员无缘。基本上是这样。我从来不自己做观点原型,我做都是有界面,须要随后加入功能的项目。
末了还是要推举下我的前端群:524262608,不管你是小白还是大牛,
然而,我也做过 Angular 和 React 事情任务。怎么会这样?如今很多 APP 基于浏览器。举个例子,我曾花费两周韶光为一个 Angular APP 增加国际化支持。我并不须要做任何视觉上的改动。
我创造对付我这类开拓者开说,像 Bootstrap 这类的库切实其实是上天的礼物。正由于栅格系统(Bootstrap的相应式布局办理方案),我可以自己构建一个粗糙的界面。只管如此,我做的有关界面的改动在呈现给用户之前仍旧要有一双眼睛检讨。以是,总而言之,我可以在一定程度上做些前端开拓,至少不是和表现层太干系。
web前端学习方法履历可以关注我的微信"大众年夜众号:‘学习web前端’,每天一篇案例源码或履历分享,关注后回答‘给我资料’可以领取一套完全的学习视频