Woody 從小就喜歡將數學應用在日常生活中,對他來說,解決問題的過程充滿著樂趣,就像在玩解謎遊戲一般。他大學主修資訊工程,經常動手寫一些小工具來解決自己遇到的問題。
因視力退化而開始使用螢幕閱讀器後,他發現視障者在閱讀數學資料時面臨許多困難。於是,他結合自己的數學學習經驗、資訊工程專長以及作為一名螢幕閱讀器使用者所累積的使用體驗,開發了 Access8Math。這個工具協助視障者以更通用的方式閱讀和書寫數學內容,使他們在探索數學知識時更加無障礙。Woody 希望透過 Access8Math,讓像他一樣對數理感興趣的學子們能夠有更多的學習機會。
近日,Woody 開發的 Access8Math 更受到了 NVDA 社群的肯定,被列入用戶指南中閱讀數學的章節,成為其中一個解決方案。
好的!從小我是先天性低視能,視力是 0.1 左右,大約就是看那種圖形缺口的視力檢測時,可以看到最大圖形的狀態。在國小和國中時,除了視力還比較好以外,老師也會刻意將黑板上的字寫大一點,因此大致上都還能夠看清楚黑板上的字。但是到了高中,課程變得更加繁重,老師寫的字也越來越小,已經無法看清楚板書了。於是,我必須依賴手邊的課本與講義來上課。
我國高中時就對數理滿有興趣的,解題的過程對我來說就像在玩解謎遊戲一樣有趣,此外我也很喜歡用電腦完成一些生活應用。再加上資訊工程領域的課程比起物理、化學等需要做實驗的理工科系,對視障者來說也更為合適。綜合這些原因,我大學就選擇了資訊工程系。開始接觸程式設計後,我發現寫程式就像解數學題一樣,都是在思考和解決問題。這個過程帶給我很大的成就感,也逐漸培養出了利用程式來解決生活中問題的習慣。
唸碩士時,由於先天青光眼的病情惡化,眼壓一直很高,因此我接受了手術。然而,手術後出現併發症,使得視力進一步惡化。在手術後的休養期間,我開始探索如何使用螢幕閱讀器。我一邊閱讀使用手冊,一邊摸索和練習,重新適應以非視覺的方式操作電腦。
前面有提到,我在高中的時候就比較看不到板書了,因此在上課之前我會先預習課程內容。預習後,我大概就會知道老師可能會講什麼、用哪些例子。在上課過程中,我會一邊聽老師講,一邊對照著手上的課本或講義,並跟著思考他講的內容與我的理解是否有出入。如果有不懂的地方,就會在下課時請教老師。通常比較容易遇到問題的是那些以視覺化方式解釋某個概念或是包含了複雜結構圖形的內容,例如電路圖或流程圖之類的。

此外,在看課本、講義等這類書面資料時,我需要拿著放大鏡一個字一個字的逐一閱讀,這其實滿花時間的。當時,電子化也還沒那麼普及,更不用說電子放大設備或螢幕閱讀器了。因此,小時候我其實對字很多的文科都不太喜歡 XD 。
我想想……其實,我會寫程式後就為自己寫過滿多小工具的。例如,整理檔案的小程式。有時候需要整理大量的照片或檔案,這些檔案產生時可能是用流水號命名的,但我想依據時間重新命名這些檔案,並將它們按日期分到不同的資料夾內。若是一個一個檔案改名和歸類會非常耗時,所以我就自己寫了一個程式來自動化這個過程。
在還不會寫程式的時候,我會上網搜尋符合需求的軟體。後來學會寫程式後,我就會自己動手寫小工具。雖然一開始會比較花時間,但我可以打造出完全符合自己需求的工具。這些小程式可能只有十幾行程式碼,技術上並不困難,但對我來說卻非常實用。
第一個契機是在使用螢幕閱讀器瀏覽網路上的教學文章或研究資料時,常常會看到一些數學內容,但因為是使用圖片而無法查看,導致訊息接收不完整。這讓我回想到過去在學校上課時因無法看黑板而只能依靠課本的經驗,於是我就好奇是否有可以在網頁上無障礙呈現數學內容的方法。
另一個更重要的動機是希望能為與我同樣是中途視障的學生提供幫助。中途視障者不像從小就開始使用點字的先天視障者那樣熟悉點字閱讀,年紀愈大才開始訓練運用手指觸摸的靈敏度會愈差,訓練點字摸讀的難度也更高。而目前許多國中小的數學教材多為數學點字版本,這導致中途視障者在重建數學學習時面臨很高的門檻。

「我希望開發這個工具,能幫助這些族群,給他們持續探索數學的機會,讓他們在未來想要往這方面發展時,多一條路可以選擇。」
因此,我難以想像如果是在國高中時期就發生中途視障這件事,且沒有類似 Access8Math 這樣可以用語音來閱讀數學內容的工具,我是否還能繼續學習數理?會不會因為難度太高而放棄?我希望開發這個工具,能幫助這些族群,給他們持續探索數學的機會,讓他們在未來想要往這方面發展時,多一條路可以選擇。
自從開始使用 NVDA 後,我都會不定期瀏覽官方 GitHub 或更新日誌來獲得最新資訊。除了一般會讓使用者有感的功能更新外,我也會關注給開發者看的 API 更新。在 2015 年的一次更新中,我注意到了 NVDA 開始支援閱讀數學內容,這讓我感到相當好奇。於是,我試著使用這個功能,但發現在中文語系的環境中不夠完整,很多符號讀不出來,效果並不理想,與英文版的體驗有明顯的落差。
經過一番研究,我發現數學無障礙這個主題其實發展了滿長的一段時間了。 W3C 針對數學已經製訂了一套標準,也有各種視覺化編輯工具可以使用,加上 NVDA 也開始支援,雖然功能還不夠完善,但這些事實讓我看到了數學無障礙的可能性,讓我相信有機會開發出更好的解決方案。
其實除了數學,我當時還看了幾個主題,也進行了一些可行性評估。有一個引起我興趣的是結構化圖形(例如流程圖或電路圖)的可訪問性,因為這些結構圖形也是經常出現在理工領域的資料中。然而與數學不同的是,這類結構化圖形不像數學已經有一套標準與生態系,各種工具都有自己的作法,而且查到的資料也比較少。
另一個有印象可行性也滿高的主題是樂譜。我看到有人做了可以讀取樂譜的工具,但因為我本身不是音樂專業背景,很難發覺現有工具存在的問題,也不清楚使用者的痛點在哪裡。所以最後綜合可行性與自身背景後,覺得數學是最適合的主題。
在尋找資料的過程中,我常常會遇到一些附有圖片解說的教學文章,但由於無法看到圖片,我就會需要查閱更多的資料做對照來理解。特別是涉及到流程或關聯圖時,如果文字說明不夠完整,就會難以理解。此外,在前期研究時,我經常需要閱讀規範文件,其中規範文件中會有章節在定義這些標記應該被轉換為怎樣的視覺呈現,就需要有人幫忙描述或確認,才能比較容易看懂。
當時剛好有一位伙伴,她是理工背景,對數學很熟悉。因此,在合作過程中我們能夠很順暢的用共同語言溝通,例如當我們在討論微積分裡面一些特殊的符號,她能夠很清楚正確的敘述出來,不會看不懂那些符號是什麼,這也讓我在理解文件時輕鬆不少。
但我中途視障的背景也帶來了一些局限。由於出社會後的點字資源不像在學校時那麼豐富,日常生活中接觸點字的機會不多,對點字的使用並不是那麼熟悉。開發過程中比較無法體會使用者的需求和痛點。因此,在開發與點字相關的功能時,需要咨詢對這方面比較熟悉的伙伴的想法。
「資訊工程背景讓我能夠評估需求實做的難易程度,並知道需要學習哪些技術來實現這些功能。」
首先是我從小就對數學感興趣,加上使用螢幕閱讀器的經驗讓我能夠很了解使用情境。尤其是在數學方面,我能夠感受到使用螢幕閱讀器在閱讀數學內容時的困難,因此能夠更好地理解使用者痛點,發想出符合使用者需求的功能。
而資訊工程背景讓我能夠評估需求實做的難易程度,並知道需要學習哪些技術來實現這些功能,在研究觀摩 NVDA 與社群附加元件的原始碼時,也比較能夠看懂運用到的技巧,讓我可以快速掌握這些程式碼的意圖是什麼,並把一些片段拆解再組合成我需要的功能。
還記得一開始的時候,NVDA 的源始碼是用 python 寫的,但當時我連 python 都沒學過,去看 NVDA 原始碼時就覺得像在看天書一樣。所以我花了一段時間去學 python,學了之後就試著再去看一下 NVDA 的源始碼,等基礎比較完整之後,就根據他運用到的進階技巧再去查資料,這樣一來一回的觀摩與學習,漸漸的就感受到看的懂更多,也能開始改寫一些東西了。
我在一開始設計時就有將國際化納入考量,所以在開發到一個段落後,也有分享到國際的 NVDA 社群論壇上,也獲得了不少使用者的討論。讓我印象深刻的是一位開發者 Tony Malykh 的來信,他本身也有開發了很多 NVDA 附加元件,在社群上也滿常出沒的。
信中提到在數學方程式閱讀上,Access8Math 比起原先 NVDA 內使用的元件有著更好的無障礙功能,相信會成為 NVDA 社群中很棒的專案。在發佈初期能得到同為開發者的回饋與肯定,讓我更堅定了繼續推進的信心。
另外,收到來自使用者的回饋也令我印象深刻。特別是一位物理系學生的來信,他本身是高中時因為意外中途視障,必須依賴 NVDA 才能繼續學習。他表示多虧有了 Access8Math 他才能繼續學習數理。
「不管是來自同為開發者的鼓勵或是使用者的回饋,看到自己的專案能夠獲得肯定並影響他人的生命,我也更加確信這個開源專案是有價值和有意義的。」
而這個使用者完全是我當時預想會最有幫助的目標族群:讀理工、中途視障、學點字門檻高。這也讓我深刻感受到,Access8Math 對於這樣的族群是有著深遠的影響,這也是我持續努力的動力之一。不管是來自同為開發者的鼓勵或是使用者的回饋,看到自己的專案能夠獲得肯定並影響他人的生命,我也更加確信這個開源專案是有價值和有意義的。
一開始我有分享到 NVDA 社群論壇中,不久就有些人試用並自行寫了分享文章,尤其是中文社群的使用者。例如,有一位視障巡迴老師,他本身對視覺障礙輔助科技就非常有興趣,當他接觸到 Access8Math 後,就在自己的部落格上寫了相關的介紹,並在視巡教師間進行了分享。
另外有一位經常出沒在 NVDA 中文站的社群貢獻者 Eureka,他在高中時期就接觸到了 Access8Math。後來,他也幫忙翻譯與維護簡體中文版的文件,去年還在北京當地舉辦了一場線下教學,向更多人介紹如何使用這個工具。此外,Access8Math 也得到了來自法國、俄國和土耳其等國家使用者的關注,進行了本地化的工作。這些社群伙伴的協助,都讓 Access8Math 能被更多人看到。
直到這兩年功能開發得愈來愈完整,也陸陸續續收到一些詢問如何使用的訊息,於是我們覺得可以將文件與教學做的更完善,並舉辦一些推廣活動。這部份主要是請身為 視障電腦講師的小安幫忙,透過他多年的教學經驗,我們會一起討論上課的內容與形式,以及如何進行推廣等等。我們前幾年也有與臺師大合作,到啟明學校去做了講座。
「我願意實際動手去嘗試,雖然不知道最後的結果會如何,但嘗試行動這件事本身就很重要。願意去實踐遠比只有空想更有價值。」
以現在來看的話會覺得自己真的做了一件很值得的事情。一開始也真的沒有想到會成為 學術研究的對象或可以做為測試與評估 無障礙的工具這些事。在 螢幕閱讀器的隱藏歷史的文章中,NVDA 的創始人 Curran 提到,當時在思考要做免費的螢幕閱讀器這件事時,在當時的視障社群中,其實有很多比他更有經驗或能力做出這件事的人,也有人曾討論過要創建一個免費的螢幕閱讀器,Curran 與他們之間的差別只是 Curran 動手寫下了第一行的程式碼。我讀到這邊的時候很有感覺,我相信一定也不是只有我有能力做 Access8Math 這件事,但我願意實際動手去嘗試,雖然不知道最後的結果會如何,但嘗試行動這件事本身就很重要。願意去實踐遠比只有空想更有價值。
回到自己的心路歷程,雖然從小是低視能,但很多事情還是可以獨立完成。我記得在求學過程其實不需要太多的支持服務。但是在變成重度視障後,你會覺得一些以前很簡單的事情,現在變得很困難。比方說走路這件事,以前如果要到一個陌生的地點,只要出門前查一下 google 地圖,看一下沿途有哪些明顯的地標,走的時候對照著走就能滿順利的到達目地的,但重度視障的話就便的比較麻煩。
對於電腦操作也是,以前透過系統放大鏡就能用滑鼠操作,也沒用過螢幕閱讀器這個東西,但是用了螢幕閱讀器以後就發現用滑鼠很簡單能完成的動作,例如拖曳,在螢幕閱讀器上面變得非常的困難。所以一開始就會對自己失去信心,怎麼這個簡單的事情都沒辦法做,心理上就會有蠻大的挫折感。
「你要去接受什麼事情是你可以做到,什麼事情是你有困難需要協助的。實際上,能做的事情還是很多,但要不斷去嘗試才能走出適合自己的那條路。」
實踐數學無障礙的這趟旅程讓我更深刻的體悟:對於一個中途視障者,能否走出心理上的挫折,重新建立自信是很重要的。你要去接受什麼事情是你可以做到,什麼事情是你有困難需要協助的。實際上,能做的事情還是很多,但要不斷去嘗試才能走出適合自己的那條路。
訪談後記
在訪談的過程中,我無時無刻都能感受到 Woody 對於軟體開發的熱情。他對技術的熱愛與好奇心,不僅解決了自己的問題,更讓更多視障者能夠平等地享受知識的美好,體驗數學的樂趣。一路走來,雖然面臨了不少挑戰,但在不同背景的成員的分工合作與無私付出下,讓他總能找到解決的方法。Woody 的行動與堅持,不僅創造了更好的無障礙數學環境,更吸引了一群對數位無障礙充滿熱情的 Coseeing 社群夥伴,共同朝著目標邁進。
**Access8Math 的開發故事,不僅僅是一趟打造更好無障礙數學工具的旅程,更讓我們看到了開源的價值,以及不同的軟體工程師與社群的多樣面貌。**期待 Access8Math 能夠幫助到更多有需要的人,為他們的學習之路帶來更多便利和無限可能!






