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 无障碍。有时,JavaScript 工程师(尤其是)在数字无障碍方面有点慢。
我将无障碍功能称为 Web 的最后一道屏障。许多优秀的人员都在致力于开发自动化无障碍功能,我们需要以解决性能和安全等其他难题的方式来开发解决方案。
Alexandra:您可能在海军和北卡罗来纳大学 (UNC) 读过很多长篇复杂文档。您是否觉得难以理解规范?
Melanie:我读了大约五遍才理解它,而我之前也读过其他规范。我总是告诉别人,如果你不理解它,不要感到难过,因为我必须阅读规范五次!我可不是在开玩笑。
熟悉规范语言需要花费大量时间。如果您解读不正确,可能会做出错误的决定。另请务必注意,许多规范语言是针对浏览器开发者的。请查找“作者应”,因为这是对 Web 开发者的参考。
Alexandra:如果更多开发者知道如何解读规范,网络上的许多内容都会变得更好。
Melanie:有些网站会为您进行解读,这方面有很多值得称道的地方。我构建了 a11y-automation.dev,这个网站就像我的孩子,我的副项目。我会尝试列出每项无障碍功能违规情况,并将其与相关的 WCAG 成功标准相关联。如果有自动化功能可防止该错误,我会提供相应解决方案。
您可以熟悉潜在违规行为的列表,但更重要的是学习如何修正违规行为。对于不存在的自动化修复,您或许会受到启发,编写一个 lint 或模板,或者编写某种测试。
我更喜欢在开源环境中工作,因为大家可以互相借鉴,提出改进建议(有时是改进,有时不是,但我们都会尽力而为)。我们互相借鉴对方的成果,最终为网络带来了非常出色的成果。
如何为无障碍功能提供资金
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:我受聘于摩根大通,负责其企业投资银行平台。Ember 是一款功能强大的 JavaScript 框架,当您需要非常稳定(甚至有点无聊)的基础时,可以使用它来避免编写会损失大量资金的代码。Ember 具有向后兼容性保证,您可以每次都进行升级,即使是升级到主要版本也是如此。我们确实会尽量以增量方式进行更改,以免破坏您的应用。
总之,我参加了一次 Ember 会议,并在社区中认识了许多人。Ember 的工作人员非常友善。而且,这里有非常严格的行为准则,我在其他地方从未见过。
退伍后,我想从事安保工作。我参加了一次信息安全聚会,但没有看到任何其他女性。其中一个年纪较大的男人看着我说:“甜心,你确定自己没走错房间吗?”
Alexandra:[呻吟] 好疼。这完全在意料之中。我也遇到过类似情况。
Melanie:我想说,这应该是 2011 年,也可能是 2012 年?格局已发生巨大变化。我留在了当晚的聚会中,就是为了证明一个观点。我不会因为那条评论而退缩。我讲笑话、认真做笔记,并参与对话,让大家知道我在场。我觉得我的职业生涯中有很多时候都在证明男性的观点是错误的。
但是,我并不希望女性仅仅为了证明男性是错的而成为软件工程师。我想成为一名软件工程师,创造出令人惊叹的作品,因为这很有趣。女性应该有这样的职业选择。
Alexandra:当然可以。
Melanie:我与 Ember 社区分享了自己所了解的无障碍功能,因为很明显,作为银行平台,您必须遵守美国联邦要求。Yehuda Katz 和 Tom Dale 说:“我们团队存在一个缺口。我们有很多 JavaScript 专家、性能专家、聪明绝顶的人,但我们需要一位具备无障碍知识的人。”他们邀请我加入核心团队。
我正在开展一些计划,以帮助实现 Ember 默认支持无障碍功能。这意味着,当您说 ember new <my-app-name> 时,应立即通过 WCAG 成功标准。
Alexandra:我在 GitHub 上看到了一长串适用于 Ember 的无障碍工具。 您是否发现 Ember 社区中的用户非常乐于为这些工具做出贡献?
Melanie:这是这项工作非常令人兴奋的一部分。我在 LinkedIn 工作期间为 Ember 编写了无障碍功能 linting 规则。后来,我离开了 LinkedIn,开始为 Hashicorp 工作,而其他人仍在为该代码检查工具做出贡献,因为他们觉得它很有用。这部分工作让我感到兴奋和激动。
我们认为,从根本上来说,无障碍是一项公民权利。这不在讨论范围内。
我们讨论的是:我们可以实现什么?何时?我们是如何制作的?我们如何教授这项技术并使其向后兼容?我们如何帮助开发者提供无障碍支持,而无需构建或规划庞大的额外功能?
Alexandra:无障碍是一项公民权利。这让我不寒而栗!这应该只是我们都知道的真理。
Melanie:我曾遇到过一些人说出不了解情况的话,比如“如果我是盲人,我就不会使用互联网”。或者,“为什么我必须考虑残障人士的需求?他们只占我用户的 5%,而我的应用对 90% 的用户来说都能正常运行。”我不会参与这些讨论,因为它们往往会分散工作注意力。
编写无障碍代码时,您会根据 W3C 规范来构建网站,从而提高网站性能。您将使用语义 HTML 而不是仅使用 div,并且您将使用标题。您将选择 <button> 而不是向 <div> 添加点击事件,并且会获得性能提升。
做一件事:实现无障碍自动化
Alexandra:Web 开发者应采取哪些措施来构建无障碍网站?
Melanie:添加自动化操作。无论您使用何种框架、何种类型的代码,都可以从现有的代码检查工具入手。我不在乎你用哪个!如果违反了其中一项规则,您的 build 应该会中断。
有些事情无法自动化,因为 AI 尚无法解读意图。例如,图片的替代文本值应有意义,但实际上这意味着什么?目前,需要人工(而非自动化机制)来辨别这一点。
但自动化工具可以告诉您:“您未通过色彩对比度测试。”只需修复即可。不要抗拒,不要说“但我不想这样,我更喜欢那样”。 这与您无关。我们每天都在努力让世界各地的每个人都能使用我们的产品和服务。
无障碍功能是一段旅程,您将始终处于学习状态。我专注于无障碍功能已有十多年,但仍然一直在学习新知识!不要摆出防御姿态,直接执行即可。
如需随时了解 Melanie 的最新动态,请访问她的网站 melanie.codes 和 Twitter 账号 @a11yMel。请访问 pleasefunda11y.com、a11y-info.com 和 a11y-automation.dev,查看她的无障碍资源。