熱愛程式設計的開發者,致力於運用程式設計輔助提身視障者的資訊獲取與教學教育,參與開源螢幕閱讀程式NVDA的開發。
程式設計者多一點巧思,視障者就多一些便利。
從螢幕閱讀程式 - NVDA - 探討資訊輔助科技與使用者介面可及性發展
- Location: R1
- Slot: Day 2, 11:15‑12:00
- Category: Education
- Language: Chinese talk w. Chinese slides
- Python Level: Novice
Abstract
螢幕閱讀程式是一種將電腦系統上之數位內容以語音、點字的方式提供給使用者。隨著軟體技術的快速發展更迭,新型態的使用者操作介面與互動方式不斷推陳出新,螢幕閱讀程式亦不斷推出更新以因應這些新型態的變化。
本演講以 NVDA 為例,透過使用者與開發者的角度切入分享螢幕閱讀程式的基本功能與運作原理,並搭配實際操作展示的方式輔助說明。
NVDA 是一套開源的螢幕閱讀程式,起源於2006年,主要由澳洲的程式設計師開發。在 NVDA 出現之前,一套螢幕閱讀程式和許多特殊輔具一樣,因市場小而單價高,對於那些社服尚未成熟國家的視障者來說,因補助經費的限制要使用電腦更加困難。而NVDA 大大改變了此現象,打開了資訊平權的大門。
NVDA 充份發揮了不同語言的特性,使用 python 設計抽象層的物件繼承與系統架構以快速開發高層功能。使用 C++ 處理大量運算場景以提升使用者體驗。
NVDA 約有 80% 的程式碼使用 python 撰寫,包括監聽事件觸發、資訊展現、文字轉語音、點字顯示、附加元件擴充機制等等高層功能。
盼透過此內容使程式設計師對資訊可及性有基本認知,進而在開發軟體介面時,有更好的可及性設計。
讓我們來看看 python 程式如何改善一群人的資訊廣度吧!
Description
### 演講內容
#### Accessibility 設計指南
內容綜整國外可及性指引與討論,並加入自身體驗而成,希望不僅能從學理角度介紹,更能有實際具體的展示,讓聽眾更能了解可及性究竟要注意哪些重點項目。
#### NVDA 功能與原理
可及性體驗與使用的螢幕閱讀程式有著高度的關聯,此部份會介紹 NVDA 大項功能,說明 NVDA 是如何提供個類資訊給使用者。
基於 NVDA 功能的介紹上,進一步針對 NVDA 使用 python 如何設計程式架構進而與使用者介面進行互動的說明,盼能讓開發者了解其工作原理,進而在開發軟體介面時,有更好的可及性設計與測試。
### 參考
#### 入門
入門參考是針對 NVDA 的基本介紹
* [NV Access](http://www.nvaccess.org/)
* [NVDA: The free software empowering blind people world wide](https://www.youtube.com/watch?v=Ks7AwV_uxO0)
* [NVDA User Guide](https://www.nvaccess.org/files/nvda/documentation/userGuide.html)
#### 測試
測試參考為對開發者如何運用 NVDA 測試可及性的教學
* [Accessibility Testing with the NVDA Screenreader](https://www.youtube.com/watch?v=Vx1vSd5uYS8)
#### 開發
開發參考為對 NVDA 開發有興趣想投入的開發者所提供的資訊與教學
* [GitHub - nvaccess/nvda NVDA, the free and open source Screen Reader for Microsoft Windows](https://github.com/nvaccess/nvda)
* [NVDA Developer Guide](https://www.nvaccess.org/files/nvda/documentation/developerGuide.html)
* [NVDA Add-on Development Guide](https://addons.nvda-project.org/devDocs/devDocs.en.html)
* [NVDA feature internals](https://github.com/nvaccess/nvda-community/wiki/internals)