Melanie Sumner 是一名软件工程师,专门研究数字无障碍功能。我们探讨了她在工程设计、无障碍设计、Ember.js 的经历,以及为这些工作提供资金的重要性。
此帖子是学习无障碍计划的一部分,其中重点介绍了一位社区专家
Alexandra White:感谢参加!你是谁?你是做什么的?
Melanie Sumner:我叫 Melanie Sumner,是一名软件工程师,专门研究数字无障碍功能。我编写网络代码已经 25 年了我的第一份职业是...有点像间谍。我曾在美国海军担任情报分析师,编码是我的爱好。
我其实并不喜欢做间谍。事实证明,我并不怀念死亡。因为大多数人都做不到,当他们必须靠近他们时。我必须确定接下来想做什么,是时候将我的爱好变成我的职业了。在过去的 10 年中,我一直专注于无障碍功能领域的软件工程,
Alexandra:您不经常听到“哦,原来我是间谍。”没事,是什么让您萌生了开发无障碍方面的工作?
Melanie:我当时在北卡罗来纳大学 [UNC] 查普希尔开发部工作。它们的意思不是像 Web 开发那样开发,而是筹款等开发工作。
我的直属经理有视力障碍,他必须将所有内容放大到 400% 才能看到。他是一位出色的软件工程师。事实上,可能是我见过最棒的管理者了但他总是在破坏我的东西 因为他会放大查看我的作品如果我没有考虑过如何响应式构建 它们肯定会损坏
我经理的老板是蓝盲。我不知道 UNC 的蓝色是什么样子,不过这是浅天蓝色的。他们非常喜欢在白色上衣着使用它。
Alexandra:(笑声)哦,糟糕。
Melanie:他的老板总是抱怨根本看不到我的作品!我必须为我们的网站制定一套互补的颜色和配色方案。这让我想到色彩对比度,并思考色盲(或视障人士)如何使用网络。
由于北卡罗来纳大学是一所州立大学,因此美国联邦要求符合 WCAG 无障碍级别 AA。我们的目标是 AAA 级 因为这家机构是教育机构
当我详细了解了州和联邦的要求,并开始阅读 W3C 无障碍功能规范后,我想:“所有这些都是有道理的。”据我了解,大部分网络都不符合规定。当然,自网络存在以来,人们就一直致力于网络无障碍功能。有时,JavaScript 工程师(尤其是)在数字无障碍方面掌握得有点慢。
我认为无障碍功能是网络的最终前沿。许多优秀人才致力于实现无障碍功能的自动化,而我们需要像处理其他难题(例如性能和安全性)一样来寻找解决方案。
Alexandra:您可能在海军和北卡罗来纳大学阅读过大量复杂的长文档。您是否发现很难理解规范?
Melanie:我得读了五次左右才能明白,而且我之前看过其他规范。我一直告诉大家,如果不理解也不要心烦,因为我必须读五次规范!我根本就不是开玩笑。
需要花费大量时间来熟悉规范语言。如果不能正确解读,就有可能出错。此外,您务必要明白,许多规范语言都是面向浏览器开发者的。查找“authors should”(作者应),因为它引用了 Web 开发者。
Alexandra:如果有更多开发者知道如何解读规范,网络上的很多内容会变得更好。
Melanie:对于为你提供此类解释的网站,需要说的太多。我构建了 a11y-automation.dev,该网站有点像我的孩子,是我的副业。我会逐项列举出每一个无障碍功能违规情况,并将其与相关 WCAG 成功标准相关联。如果有可以避免错误的自动化操作,我会提供该解决方案。
您或许能熟知潜在违规行为列表,但更重要的是学习如何纠正这些违规行为。对于不存在的自动修复程序,您可能会受到启发,编写 linter 或模板,或者受到启发,编写某种测试。
我更喜欢在开源环境中工作,因为你们可以互相启发、提出改进(有时是改进,有时不能,但我们会尽力而为)。我们利用彼此的内容进行扩展,最终为网络带来了一个绝佳的成果。
如何为无障碍功能提供资金支持
Alexandra:我非常喜欢 pleasefunda11y.com。帮助开发者学习如何构建无障碍网站是非常重要的,但如果没有高管层的资金和批准,他们将不可能获得资源。你们为什么决定打造这个网站?
Melanie:我很失望,因为无障碍方面的资金不足。所有开源资金似乎都继续捐赠给 CSS。我喜欢 CSS 我们可以用它来做很多事情
我建立这个网站是因为 Chrome 软件工程经理 Addy Osmani 联系了我,他说他看到我在申请无障碍功能资金,但他想就哪些具体工作可以得到资助。这是一个很大的问题:开源资助者希望为特定项目提供资金,而不是为没有明确结果的一般想法提供资金。我花了点时间写下了一些具体的计划、所需满足的要求,以及这些举措将如何帮助网站实现无障碍设计。
即使一些公司在没有我的情况下采用这些技术,我们也可以大幅度地改进网络上的无障碍功能。与其他 Web 项目相比,这种投入很少,而且会对人们的生活产生巨大的影响。
目前的思维方式往往是,“嗯,有多少人患有残疾?”应该是:“某人与其技术有何关系?”
有人跟我说:“我不认为色盲不是一种残疾。”如果您是色盲,您可能不会认为自己患有残疾,但这确实会影响您与技术的关系。
Alexandra:详细了解您与技术的关系。这与无障碍有何关系?
Melanie:例如,如果您具有神经多样性,可能需要使用简单易懂的语言和明确指示。最好一次导航三个或四个屏幕,一次做出几个选择,直到最后才完成。对于现代技术应用,没有很好的指导。
我们全都从事 DevOps 工作。如果您尝试使用其中一些网站,就会觉得:“天哪,”如今,我们试图将厨房水槽融入 所有界面
Alexandra:您能举例说明吗?
Melanie:例如,GitHub 提供了包含嵌套标签页的下拉菜单。而且 [气愤地叹气]。我不会生气(即使我很沮丧)。现代网络必须不断发展以满足新的需求。但是,我们也有责任在构建应用时不让别人丢掉工作。
这也是我的动力源泉,也是我的激情所在。我不希望某人无法获得工作,因为他们工作时必须使用的工具无法访问。
Alexandra:百分百。人们常常会想为外部用户构建无障碍产品,但未必会考虑他们的员工。
Melanie:我想,这条资助建议可能会对所有人有所帮助。
一直有工程师们告诉我,他们很想开发无障碍功能,但“我公司并不在意”。我敢打赌他们一定在意!您只需要弥合业务逻辑差距。向他们展示业务有益的成果。当然,这个网站是开源的,我喜欢贡献内容和修改。
Alexandra:无障碍功能通常一直留在流程的最后,例如“噢,我们以后可以简化无障碍功能。”但相较于在整个项目中集成无障碍做法,以后添加此类模型要花费更多时间。
Melanie:我经常说“你愿意花钱构建一次,还是花钱构建两次?”
Ember.js 和核心无障碍团队
Alexandra:我知道您也加入 Ember.js 框架核心团队。您是如何参与的?
Melanie:我受聘在 JPMorgan Chase 负责其企业投资银行平台。Ember 是一种繁重的 JavaScript 框架,用于您需要一个非常稳定(甚至可能很无聊)的基础,可帮助您避免编写会损失大量银行资金的代码。Ember 具有向后兼容性保证,即使遇到主要版本,也可以每次升级。我们确实是循序渐进的,因此不会影响您的应用。
不管怎样,我参加了一场 Ember 会议,在社区中遇到了很多人。安珀的家伙真是太友好了。有一个我未在其他地方看到过的非常棒的行为准则。
从部队出来后,我想去安防部门。我参加了一场信息安全聚会 没在那里看到任何其他女性其中一个年长的人看着我,说:“亲爱的,你确定在正确的房间吗?”
Alexandra:[Groans] 很痛。毫无疑问,我也遇到过类似的情况
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 编写了无障碍功能 lint 规则。后来我离开 LinkedIn,为 Hashicorp 工作,其他人仍在为 linter 做贡献,因为这对他们有用。这就是作品的一部分 这让我既发自内心又让我兴奋
我们接受,作为一项基本概念,无障碍设施是一项公民权利。这个不好讨论啊
我们要讨论的是:我们能实现什么?何时?我们是如何制作出来的?我们如何进行训练并使其向后兼容?我们如何帮助开发者提供无障碍功能支持,而无需他们必须构建或规划的大量额外功能?
Alexandra:无障碍是一项民权。这真是令人毛骨悚然!那应该就是我们众所周知的真相。
Melanie:我让人们对我说一些不知情的话,例如“如果我失明,就不会使用互联网”。或者,“既然只有 5% 的用户在使用,我还要考虑残障问题,但目前只有 90% 的用户能使用。”我不会进行这些讨论,因为它们经常会分散您的注意力。
编写易于访问的代码时,性能将得到提升,因为您考虑构建符合 W3C 规范的网站。您将使用语义 HTML 而不只是 div,并且您将使用标题。您需要选择 <button>
而不是向 <div>
添加点击事件,并且您可以提升性能。
只做一件事:自动化无障碍功能
Alexandra:Web 开发者应该采取下面哪一项行动来构建无障碍网站?
Melanie:添加自动化操作。从适用于您拥有的任何框架(无论您使用的是何种代码)的现有 linter 开始。不管你使用的是哪一个!如果其中一条规则被破坏,您的构建应该就会被破坏。
有些事情无法自动化,因为 AI 还无法解读意图。例如,图片的替代文本值应该有意义,但这实际上是什么意思呢?目前,人类需要辨明这一点,而不是自动化。
但自动化工具可以告诉您,“您没有通过色彩对比度”。只需修复它即可。不要和它争吵,不要说“但我不想,我更喜欢这样。” 这不是关于您的。而是让世界上的每个人都能每天做得更好
无障碍是一个需要的过程,您不断学习。我专注于无障碍功能已有十多年时间,并且仍在不断学习新事物!不要防备,只管去做就行。
通过访问 melanie.codes 和 Twitter @a11yMel 了解 Melanie 的工作进展。请访问 pleasefunda11y.com、a11y-info.com 和 a11y-automation.dev,查看她的无障碍资源。