as3: Improve a screen reader

Last revised: April 21, 2021
Assigned:
  • April 5, 2021
Due:
  • April 21, 2021

Learning Goals

The goal of this activity is to

Overview

People who are blind or visually impaired (BVI) access computers through screen readers. Simply put, screen readers are software that render the graphical user interface in audio (synthesized speech and sounds) or Braille (using a refreshable braille display). There are different types of screen readers, that run on a variety of platforms; from desktops, to smartphones, to smart-watches to smart speakers. One such screen reader is the Non Visual Desktop Access (NVDA) screen reader, a free, open source screen reader for windows. As per the WebAIM: Screen Reader User Survey #8 Results, NVDA is the most used screen reader among respondents.

In this homework, you will be working on a bug in the NVDA screen reader. Your approach should improve the usability of the NVDA screen reader for its intended audience. (remember, NVDA is developed by a huge community of developers who may be BVI so they are your target audience too!)

To reduce the complexity of contributing to an open source project in a short time frame, we curated a list of potential github issues that you could work on. You are also free to pick other open issues from the NVDA github repository. We however recommend refraining from issues with high complexity or issues where a consensus has not been reached. You can find the full list of issues below.

Once you decide the github issue that you would like to work on, please join the corresponding group on Canvas. You may start working individually on a solution right away, but the group is there to share ideas and for phase 1’s handin.

NVDA Issues

  1. NVDA announces “Article” before every article while browsing the articles via quick keys #11103
  2. Failing the checkPot step should be more obvious. #10928
  3. Report status of screen curtain at startup when “Play a sound when toggling screen curtain” is disabled. · Issue #10692 (bug affecting screen reader announcement of screen curtain status. Picked up by a developer, but abandoned).
  4. Add script for aria figure to input gestures and give the user the possibility to turn off reporing of this role in document formating settings · Issue #10826 (feature request to make NVDA announcement of “figure” optional.
  5. Shorten “out of element” message #10446
  6. Selection not announced when jumping to Top/Bottom of Page · Issue #5549
  7. aria-labelledby element gets read twice #10512 (potentially a blocker on chrome?)
  8. Grid cells with focusable controls get read twice #10096 (abandoned, and potentially a spec conformance but annoying behavior)
  9. Table navigation doesn’t respect colspan · Issue #7278

Phase 1: Jointly prepare solution approach submission for NVDA (only for us)

You will work as a group to prepare a solution approach, proposing one or multiple ways of working on a bug to improve the user experience for NVDA users. To do this you should all try to replicate the issue and think individually about solutions. Then summarize your results in a group-constructed document.

You will not submit these to NVDA; you will submit these proposals as a group to this Canvas Assignment for review by the course staff.

You will also give a group presentation discussing:

You will need to submit accessible slides to this canvas assignment. Please make your presentations accessible, and present accessibly (here is a short video that provides some guidance)

Phase 2: Your personal perspective

Please turn in an approximately 1 page write up answering the following questions

Optional Phase 3: Submitting your solution to NVDA

Your group may start communicating with NVDA after receiving approval from the staff. Please keep in mind that you should consider the opinions expressed by the NVDA user community through comments on the github issue of your choosing.

If your approach is approved by the NVDA community, you and any other group members who use the same approach will have the opportunity to actually submit the best of your solutions.

NVDA setup and other pre-requisites

You will need a Windows computer running Windows 10 and python 3.7 (32-bit) to install NVDA. If you do not have a Windows machine, please reach out to us as soon as possible. We have a limited number of machines that can be accessed remotely. The instructions to build NVDA are in the NVDA github repository readme. Please also be sure to read the contributing guide.

Grading

This is a 10 point assignment.