Melanie Sumner 是一名软件工程师,专门从事数字无障碍功能方面的工作。 我们聊了她从事工程工作的历程、无障碍设计、Ember.js,以及资助这些工作的重要性。
在了解无障碍功能系列文章中,本篇文章重点介绍了一位社区专家。
Alexandra Klepper:感谢您加入我们!你是谁?你的工作是什么?
Melanie Sumner:我叫 Melanie Sumner,是一名软件工程师,专门从事数字无障碍功能方面的工作。我编写 Web 代码 25 年了我的第一份职业是… 间谍。我曾是美国海军的情报分析师,编程是我的爱好。
我不太喜欢当间谍。事实证明,我不喜欢死亡。而大多数人并不会这样做,因为他们必须离电视更近。我必须决定接下来怎么做,是时候将我的爱好变成我的事业了。在过去 10 年里,我一直专注于无障碍领域的软件工程。
Alexandra:你很少听到“哦,我先是间谍”。没事,是什么让您开始从事无障碍工作?
Melanie:我当时在北卡罗来纳大学 [UNC] 教堂希尔分校在发展系工作。它们不是指 Web 开发等开发活动,而是指筹款等开发活动。
我的直属经理有视力障碍,他不得不将所有内容都缩放到 400% 才能看到。他是一位很棒的软件工程师。实际上,您可能是我遇到过的最好的经理。但他总是在破坏我的东西 因为他会放大看我的作品如果我没有考虑以响应式方式构建内容,它们就会崩溃。
我经理的上司是色盲。我不知道您是否知道 UNC 蓝是什么样的,但它就是这种浅天蓝色。他们非常喜欢在白色背景上使用此字体。
Alexandra:(笑)不行。
Melanie:他的老板一直抱怨他根本看不到我的作品!我必须为我们的网站开发一组互补色和配色方案。这让我想起了色彩对比度,并思考了色盲(或视力受损)人士如何使用网页。
由于 UNC 是州立大学,因此美国联邦政府要求符合 WCAG 无障碍功能级别 AA 的要求。我们力求达到 AAA 级别,因为它是一家教育机构。
随着我深入了解州和联邦要求,并开始阅读 W3C 无障碍规范,我心想:“这一切都是有道理的。”据我所知,大多数网站都不符合相关要求。当然,自 Web 诞生以来,人们就一直在致力于 Web 无障碍方面工作。有时,JavaScript 工程师(尤其是 JavaScript 工程师)在数字无障碍方面接受得比较慢。
我将无障碍功能称为网络的最终前沿。有很多优秀的人员致力于实现无障碍功能自动化,我们需要像解决性能和安全等其他难题一样,努力寻找解决方案。
Alexandra:您在海军和北卡罗来纳大学时,可能读过很多长篇复杂的文档。您是否觉得很难理解规范?
Melanie:我大约看了五遍才看懂,而且我之前看过其他规范。我总是告诉大家,如果不理解规范,不要感到难过,因为我自己也读了五遍!我不是在开玩笑。
熟悉规范语言需要花费大量时间。如果您没有正确解读,就可能会做出错误的决定。此外,请务必了解,许多规范语言都是针对浏览器开发者的请查找“作者应”,因为这指的是 Web 开发者。
Alexandra:如果有更多开发者知道如何解读规范,网络上会有很多地方可以改进。
Melanie:对于为您解读数据的网站,我们有很多话要说。我创建了 a11y-automation.dev,该网站就像我的宝贝、我的副业。我会试着列明每项无障碍功能违规行为,并将其与相关的 WCAG 成功标准关联起来。如果有可防止此错误的自动化操作,我会提供相应解决方案。
您可以熟悉可能违规的行为列表,但更重要的是了解如何解决违规问题。对于不存在的自动修复程序,您或许会受到启发,编写 lint 工具或模板,或许会受到启发,编写某种测试。
我更喜欢从事开源工作,因为这样可以相互启发,提出改进建议(有时是改进,有时不是,但我们都会尽力)。我们会基于彼此的工作进行构建,最终为 Web 带来非常出色的成效。
如何为无障碍功能提供资金
Alexandra:我非常喜欢 pleasefunda11y.com。让开发者了解如何构建无障碍网站非常重要,但如果没有高层领导的资金和批准,他们并不总能拥有充足的资源。你们为何决定建立这个网站?
Melanie:我很沮丧,因为无障碍功能的资金不足。所有开源资金似乎都一直在流向 CSS。我喜欢 CSS,我们可以用它做很多事情
之所以创建该网站,是因为 Chrome 软件工程经理 Addy Osmani 与我联系,说他看到我正在申请无障碍功能方面的资金,但想咨询一下可以资助哪些具体工作。这是一个大问题:开源基金会希望资助特定项目,而不是没有确定结果的一般想法。我花了一些时间写下了一些具体举措,以及需要满足哪些条件以及这些举措如何帮助网站实现无障碍功能。
即使没有我,公司也可以朝着这些方向努力,我们可以显著推进网络无障碍功能的发展。与其他网络工作相比,这笔支出非常小,但对人们的生活会有很大影响。
目前的思维方式通常是:“有多少人有残障?”正确答案是:“任何人与其所用技术的关系是什么?”
有些人告诉我:“我认为色盲不是一种残障。”您可能不会将自己视为残障人士,但色盲症确实会影响您与技术的关系。
Alexandra:请跟我详细说明一下您与技术的关系。这与无障碍功能有何关系?
Melanie:例如,如果您有神经多样性,可能需要非常简单的语言和非常明确的说明。您可能更适合在一个流程中浏览三四个屏幕,一次做出几个选择,直到完成流程。没有针对现代技术应用的良好指南。
我们有全公司都提供 DevOps 服务,如果您尝试使用其中一些网站,您会说:“我的天啊”,您知道吗?我们现在会尽量在所有界面中添加各种功能。
Alexandra:您能举个例子吗?
Melanie:例如,GitHub 提供了包含嵌套标签页的下拉菜单。[气急败坏地叹气]。我不能生气(即使我很沮丧)。现代 Web 必须不断发展,才能满足新的需求。但我们也有责任以不让用户掉队的方式进行构建。
这是我的动力,也是我的热情所在。我不希望有人因为无法使用工作所需的工具而无法找到工作。
Alexandra:完全正确。人们通常会考虑为外部用户打造无障碍产品,但不一定会考虑员工。
Melanie:我想,这些融资建议对每个人都有好处。
我经常听到工程师说,他们很乐意实现无障碍功能,但“我所在的公司并不在意”。我打赌他们肯定会关心!您只需弥合业务逻辑上的差距即可向他们展示对业务有益的结果。当然,该网站是开源的,我非常欢迎贡献和修改。
Alexandra:无障碍功能常常留在流程的最后环节,比如“哦,我们现在让这个功能日后能无障碍访问”。但是,与在整个项目中集成无障碍功能实践相比,日后再添加无障碍功能需要花费更多时间。
Melanie:我经常会问:“您是想付费构建一次,还是付费构建两次?”
Ember.js 和核心无障碍团队
Alexandra:我知道您还参与了 Ember.js 框架核心团队的工作。您是如何参与的?
Melanie:我受雇于 JPMorgan Chase,负责其企业投资银行平台。Ember 是一款重量级 JavaScript 框架,适用于您需要非常稳定(甚至有点乏味)的基础时,可帮助您避免编写会造成大量资金损失的代码。Ember 具有向后兼容性保证,您可以随时升级,即使升级到主要版本也是如此。我们确实是以增量方式完成任务,因此不会破坏您的应用。
总之,我参加了一个 Ember 大会,并在社区中结识了许多人。Ember 团队非常友善。还有非常严格的行为准则,我还没有在其他地方见过。
退役后,我希望从事安全工作。我参加了一个信息安全 Meetup 活动,但没有看到其他女性。一个年长的人看着我说:“你确定在对地方吗,亲爱的?”
Alexandra:[呻吟] 好痛。这完全不足为奇。我遇到过类似的问题。
Melanie:我想说这是 2011 年,也许是 2012 年?形势发生了很大变化我那晚参加了整个 Meetup 活动,就是为了证明一点。我不能让那条评论把我关掉我会开玩笑、做好笔记并参与对话,让大家知道我参与了会议。我觉得我的很多职业生涯都证明了男人是错误的
但是,我不希望女人成为软件工程师,只是为了证明男人是错的。我希望成为一名软件工程师,因为这很有趣,可以创造出令人惊叹的东西。女性应该有这样的职业选择。
Alexandra:没问题。
Melanie:我与 Ember 社区分享了有关无障碍功能的知识,因为作为银行平台,您显然必须遵守美国联邦要求。Yehuda Katz 和 Tom Dale 表示:“我们团队中缺少这方面的人才。我们有很多 JavaScript 专家、效果专家,他们非常聪明,我们还需要有无障碍功能方面的知识。”他们邀请我加入核心团队。
我正在开展一些计划,以帮助 Ember 默认支持无障碍功能。这意味着,当您说 ember new <my-app-name>
时,应立即通过 WCAG 成功标准。
Alexandra:我在 GitHub 上看到了很长的 Ember 无障碍工具列表。您是否发现 Ember 社区中的人们很乐意为这些工具做出贡献?
Melanie:这是这项工作的一个非常令人兴奋的方面。我在 LinkedIn 工作时为 Ember 编写了无障碍 lint 规则。后来,我离开了 LinkedIn 并加入了 Hashicorp,而其他人仍在为 lint 贡献代码,因为它对他们很有用。这正是这项工作让我感到兴奋和激动的地方。
我们认为,无障碍是一项基本人权。这不属于讨论范围。
我们将讨论:我们可以实施哪些措施?何时?如何实现?我们如何教会它并使其向后兼容?如何帮助开发者提供无障碍功能支持,而无需他们构建或规划额外的庞大功能?
Alexandra:无障碍是一项公民权利。这让我毛骨悚然!这应该是我们都知道的真相。
Melanie:有些人会对我说一些不实的话,例如“如果我是个盲人,就不会使用互联网”。或者,“为什么我必须考虑残障人士,而我的 90% 用户都没有问题?”我不会进行这些讨论,因为它们通常会分散注意力。
编写无障碍代码有助于提升网站性能,因为您在构建网站时会参考 W3C 规范。您将使用语义 HTML(而不仅仅是 div),并使用标题。选择 <button>
(而不是向 <div>
添加点击事件)后,性能将得到提升。
只需完成一件事:实现无障碍功能自动化
Alexandra:Web 开发者在构建无障碍网站时应该做哪些事?
Melanie:添加自动化操作。首先,使用适用于您所用框架和代码类型的现有 lint 工具。我无所谓您使用哪个!如果违反其中一条规则,您的 build 应该会中断。
有些事情无法自动执行,因为 AI 还无法解读意图。例如,图片的替代文本值应有意义,但这实际上意味着什么?目前,需要由人来辨别这一点,而不是自动化。
但自动化工具可以告诉您“您未通过色彩对比度测试”。请直接解决。不争论,也不要说“但我不想,我更喜欢那样。” 这与您无关。我们的目标是让世界各地的每个人都能每天使用我们的产品和服务。
无障碍功能是一项长期的事业,您需要不断学习。我从事无障碍功能方面的专业工作已经十多年了,但我仍在不断学习新知识!不要防御,只管去做。
如需了解 Melanie 的工作,请访问她的网站 melanie.codes 和 Twitter 账号 @a11yMel。请访问 pleasefunda11y.com、a11y-info.com 和 a11y-automation.dev,了解她提供的无障碍功能资源。