Melanie Sumner 是軟體工程師,專長是數位無障礙功能。我們討論了她的工程師之路、無障礙設計、Ember.js,以及資助這些工作的必要性。
這篇文章是「學習無障礙功能!」系列的一部分,旨在介紹社群專家。
Alexandra Klepper:感謝你參與本次會議!你是誰,以及你的工作內容?
Melanie Sumner:我是 Melanie Sumner,專長是數位無障礙的軟體工程師。我從事網頁程式碼編寫工作已有 25 年。我的第一份工作是…有點像間諜。我曾是美國海軍的情報分析師,程式設計是我的興趣。
我其實不太喜歡當間諜。結果我並不喜歡死亡。大多數人都不會這麼做,因此必須靠近裝置。我必須決定下一步要做什麼,是時候將興趣轉化為事業了。過去 10 年來,我一直專注於無障礙領域的軟體工程,
Alexandra:「喔,我一開始是間諜。」這種話不常聽到。沒什麼大不了的,是什麼原因讓您投入無障礙工作?
Melanie:當時我在北卡羅來納大學教堂山分校的發展部門工作。他們並非指網頁開發等開發作業,而是指募款等開發作業。
我的直屬主管有視力障礙,必須將所有內容放大 400% 才能看清楚。他是一位出色的軟體工程師,他大概是我遇過最好的經理。但他總是會弄壞我的東西,因為他會放大畫面查看我的作品。如果我沒有考慮建構回應式項目,這些項目就會損壞。
我主管的老闆是藍色色盲。我不知道您是否知道 UNC 藍色是什麼樣子,但就是這種淺天藍色。而且他們很喜歡在白色背景上使用。
Alexandra:(笑) 喔,不。
梅蘭妮:他老闆一直抱怨看不到我的工作成果!我必須為網站開發一組互補色和色彩配置。這讓我開始思考色彩對比,以及色盲 (或其他視障) 使用者如何瀏覽網路。
由於北卡羅來納大學是州立大學,因此美國聯邦政府規定必須遵守 WCAG 無障礙 AA 級規範。我們以 AAA 級為目標,因為這是教育機構。
我進一步瞭解州和聯邦政府的規定,並開始閱讀 W3C 無障礙規格,心想:「這一切都合理。」就我所見,大多數網站都不符合規定。當然,自網路誕生以來,人們就一直致力於提升網頁無障礙功能。有時,JavaScript 工程師 (尤其是) 在數位無障礙方面,可能需要一些時間才能上手。
我將無障礙功能稱為網路的最後疆界。許多優秀人才致力於開發無障礙自動化功能,而我們也需要以解決其他難題 (例如效能和安全性) 的方式,開發相關解決方案。
Alexandra:您在海軍和北卡羅來納大學可能讀過許多複雜的長篇文件。你是否覺得規格難以理解?
Melanie:我讀了五次才瞭解內容,而且我之前也讀過其他規格。我總是告訴大家,如果看不懂,不必覺得難過,因為我讀了五次規格說明才瞭解!我不是在開玩笑。
熟悉規格語言需要花費大量時間。如果解讀有誤,可能會做出錯誤的決定。此外,請務必瞭解許多規格語言是為瀏覽器開發人員而設計。請尋找「作者應」,因為這是指網站開發人員。
Alexandra:如果更多開發人員知道如何解讀規格,網路上的許多內容都會變得更好。
Melanie:如果網站能為你解讀資料,那當然是再好不過。我建立了 a11y-automation.dev,這個網站就像我的孩子,是我的副業。我會盡量列出每項無障礙違規事項,並連結至有問題的 WCAG 成功準則。如果自動化功能可避免錯誤,我會提供相關解決方案。
您可以先熟悉潛在違規事項清單,但更重要的是瞭解如何修正。如果沒有自動修正功能,或許您會想編寫 Lint 或範本,或是編寫某種測試。
我偏好使用開放原始碼,因為大家可以互相切磋,提出改良建議 (有時是改良,有時不是,但我們都會盡力)。我們彼此合作,最終為網路帶來非常出色的成果。
如何資助無障礙功能
Alexandra:我非常喜歡 pleasefunda11y.com。讓開發人員學習如何建構無障礙網站非常重要,但如果沒有高階主管的資金和核准,他們不一定能取得資源。你為什麼決定要建立這個網站?
Melanie:我感到很沮喪,因為無障礙功能經費嚴重不足。所有開放原始碼資金似乎都持續流向 CSS。我喜歡 CSS,因為它能做到很多事。
我建立這個網站,是因為 Chrome 軟體工程經理 Addy Osmani 與我聯絡,表示他看到我申請無障礙功能資金,但想請教我哪些具體工作可以獲得資助。這是一大問題:開放原始碼資助者想將資金投入特定專案,而非沒有確定結果的一般構想。我花了一些時間寫下具體措施、所需資源,以及這些措施如何協助網站無障礙化。
即使公司在沒有我的情況下推動這些工作,我們也能以非常顯著的方式,在網路上推動無障礙功能。相較於其他網路工作,這筆支出非常少,但對人們的生活影響卻很大。
目前的思考方式通常是「有多少人身心障礙?」正確拼法應為「What is any person's relationship to their technology?」
有些人告訴我:「我不認為色盲是殘疾。」色盲可能不會被視為身心障礙,但會影響你與科技的關係。
Alexandra:請進一步說明你與科技的關係。這與無障礙功能有何關聯?
梅蘭妮:舉例來說,如果你的神經多樣性,可能需要非常簡單的語言和非常清楚的指示。您可能比較適合在流程中瀏覽三到四個畫面,一次做出幾個選擇,直到流程結束為止。沒有適用於現代技術應用程式的良好指引。
我們有整個公司都在做開發運營,如果你嘗試使用其中一些網站,你會覺得「我的天啊」,你知道嗎?我們現在會盡量在所有介面中加入各種功能。
Alexandra:可以舉例說明嗎?
Melanie:舉例來說,GitHub 的下拉式選單含有巢狀分頁標籤。而且 [嘆氣]。我不能生氣 (即使感到沮喪)。現代網路必須成長,才能滿足新需求。但我們也有責任以不遺漏任何人的方式建構。
這就是我的動力,也是我的熱情。我不希望有人因為工作上必須使用的工具無法存取,而無法獲得工作機會。
Alexandra:百分之百。許多人會考慮為外部使用者打造無障礙產品,但未必會想到員工。
梅蘭妮:我想,這項資金建議可能對大家都有幫助。
我經常聽到工程師表示他們很想做無障礙功能,但「公司不在乎」。我敢說他們很在乎!您只需要彌補業務邏輯的差距。向他們展示這項功能對業務的助益。這個網站是開放原始碼,我當然很歡迎大家提供內容和編輯。
Alexandra:無障礙功能通常會在流程的最後階段才加入,例如「喔,我們稍後再加入無障礙功能就好」。但如果之後再加入,會比在整個專案中整合無障礙做法花費更多時間。
梅蘭妮:我經常會問:「您想付一次費用建構,還是付兩次費用建構?」
Ember.js 和核心無障礙團隊
Alexandra:據我所知,您也參與了 Ember.js 架構核心團隊。 你是如何參與這項計畫?
梅蘭妮:我受聘於摩根大通,負責該公司的企業投資銀行平台。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 編寫了無障礙檢查規則。後來我離開 LinkedIn,到 Hashicorp 工作,但其他人仍持續為這個 Linter 做出貢獻,因為對他們來說很有用。這就是這份工作最令人興奮的部分。
我們認為,無障礙功能是基本人權。這點無須討論。
我們討論的內容是:我們可以實作哪些功能?發生在何時?如何製作?我們該如何教導這項功能,並確保回溯相容性?我們如何協助開發人員提供無障礙支援,而不必建構或規劃龐大的額外功能?
Alexandra:無障礙是公民權。這讓我感到不寒而慄!這應該是我們都知道的真理。
梅蘭妮:我曾聽過一些不瞭解情況的人說:「如果我是盲人,我不會使用網際網路。」或者「為什麼我需要考慮無障礙功能?只有 5% 的使用者會用到,而且 90% 的使用者都能正常運作」。我不會參與這些討論,因為這類討論通常會分散工作注意力。
撰寫無障礙程式碼時,您會思考如何根據 W3C 規格建構網站,因此成效會有所提升。您會使用語意 HTML,而非僅使用 div,並使用標題。您會選擇 <button>,而不是將點擊事件新增至 <div>,並獲得效能提升。
專注於一件事:自動化無障礙功能
Alexandra:網頁開發人員應採取哪些做法,才能建構無障礙網站?
Melanie:新增自動化動作。無論使用哪種架構或程式碼,都可以從現有的 Linter 開始。我不在乎你用哪一個!如果違反其中一項規則,建構作業應會中斷。
由於 AI 尚無法解讀意圖,因此有些事情無法自動化。舉例來說,圖片的替代文字值應有意義,但這實際上是什麼意思?目前需要由人來判斷,而非自動化程序。
但自動化工具可以告訴您「您未通過色彩對比」。請修正。不要抗拒,也不要說:「但我不想這樣,我比較喜歡這樣。」 這與您無關。我們每天都致力於讓全球使用者都能使用我們的服務。
無障礙功能是一段旅程,您將不斷學習。我專注於無障礙領域超過十年,但仍不斷學習新事物!不要辯解,直接照做。
如要隨時掌握 Melanie 的最新動態,請前往她的網站 (melanie.codes) 和 Twitter 帳戶 (@a11yMel)。如要查看她的無障礙資源,請前往 pleasefunda11y.com、a11y-info.com 和 a11y-automation.dev。