Chat Application for the Visually Impaired

Problem Statement

With the advent of technology and the rapid development in the field of communication, distant communication has become a daily part of our lives. Being able to remotely communicate with others has helped us in multiple ways, from chatting with friends and family to sharing crucial information to colleagues remotely. However, the existing messaging softwares and technologies fail to provide these functionalities to the visually impaired users, which gives rise to the need for a platform with enables such users to remotely communicate with each other.

Solution

Since visually impaired users cannot see the keys on a keyboard, it becomes difficult for them to draft a message. The difficulty increases when touchscreen devices are being used. Secondly, reading the received messages is nearly impossible. Using a screen reader is one possible option. However, it does not completely dedicate to the functionality of messaging. Thus, designing a voice interface would solve the problem by removing the dependency on the user’s visual ability to draft a message or read it.

Knowing the user

For the project, I studied the difficulties faced by the visually impaired people. After communicating a few visually impaired users, I realised that there is no one type of visual impairment, instead there are categories. Further researching the types of visual impairments, I gained knowledge about the three main types of visual impairment.

portfolio-image

These types have further categories. You can visit this article to further the understanding of visual impairment - here

Designing the Interface

Having understood the target users and the way they perceive the interface, I moved on to research about the design methods implemented to built UI for such users. From this, I could come up with suitable solutions for each type of targeted user.

  • Partially Blind Users

    1. Using large text with more horizontal spacing.
    2. Using contrasting colours.
    3. Using large areas for interactive elements on the screens with sufficient white space between each element.

  • Complete Blind Users

    1. Using only the accessible keyboard keys eg, arrow keys and mouse for performing operations.
    2. Using voice interfacing -

      Here, a major challenge is to decide for which actions should the voice interfacing be implemented. For example, navigation can easily be done by the more accessible arrow keys on the keyboard or mouse clicks, this should not require the system to ask “Do you want to move up or down?”

Design Considerations

  1. Making the process as Humanly as possible -
  2. For this, I ensured that the instructions given to the user by the system are in the first person. Eg: You have received 25 new messages, in place of, 25 new messages received.

  3. Feedback on the user's action is provided-
  4. This is to ensure that the user is confident about what he/she is sending. Eg: The system would read the message out and would ask the user’s confirmation before sending the message.

  5. Prioritizing the information provided to the user -
  6. In this case, as the system is responsible to deliver information to the user rather than the user searching for the required information, therefore it becomes necessary to determine which data should be provided to the user first. Eg: Received messages have higher priority over other system notifications.

User Flow

Having decided the action vs command mapping and considered various design aspects, I moved to further define the flow of the system. The User flow diagram helped me determine the sequence of interactions that the user will have to perform to send messages, read messages and manage previous chats. I have tried to explain the user flow in the following diagram with the help of an example, where the user performs various tasks using the system.

portfolio-image

System Prototype

Based on the above User flow the modules were coded in Python using Tkinter for building the interfaces. Additionally, google’s Speech API was used for implementing Voice Interactions which involves speech to text and text to speech operations. The system proposed is a client to client communication model and to enable communication between the visually impaired users, the connection needs to be set up. This is a prototype which can be used as the basis of multiple applications.

portfolio-image

What did learn?

  1. How important it is to understand what the user needs. After interviewing the visually impaired people, the observations and user inputs helped me understand the problem. I learnt that understanding the problem clearly is half way to the solution.
  2. I learnt about the varoius design considerations made while designing user interface for the visually impaired users.
  3. Voice interfacing has certain limitations. These systems do not work well in noisy enviornment. Therefore, these systems need external devices to be effective. For the system to work efficiently I made use of noise cancelling microphones.