Towards an Accessible World: A Software Engineering Approach

The ability to use software with ease is important for everyone, especially for approximately 15% of the world population with disabilities. Even the simplest operations, taken for granted by nondisabled users, can be daunting tasks for disabled users. A recent observational study found that to simply open a web browser, enter a search term, and navigate to the first result on a mobile device, it can take over 50 interactional turns for a blind person. Because of this, blind users often resort to rote memorization of navigation sequences, decline to update apps they have committed to memory, or stop using apps altogether.

Director Sam MalekAccording to professor Sam Malek, “For decades, the software engineering research community has been developing techniques to evaluate and improve the quality attributes (e.g., reliability, security) of software. Among the various quality attributes, however, accessibility has received significantly less attention in the literature. This is while software organizations are in dire need of solutions that can help them develop and deliver accessible software.” Professor Iftekhar Ahmed adds, “Mandates from government regulations, such as the Rehabilitation Act and the Americans with Disabilities Act (ADA) are bringing further attention to accessibility factors in software. In fact, the number of software accessibility-related lawsuits has been growing rapidly, by 180% in just the past year.”

Professor Iftekhar AhmedMalek and Ahmed believe there is an opportunity to improve the lives of millions of disabled users through innovative, interdisciplinary research at the intersection of software engineering and accessible computing. Their objective is to develop software engineering solutions for use by developers to eliminate accessibility issues prior to the release of software. Broadly, ISR research in this area can be categorized under three thrusts: (1) Understanding the disabled users’ concerns. Disabled users have unique concerns that are often poorly understood by software developers. (2) Means of identifying and presenting accessibility issues to developers in an effective way. For instance, identifying accessibility issues and ranking them based on their impact on the overall usability of the application, thereby allowing developers to prioritize their effort in resolving them. (3) Automatic solutions for fixing the accessibility issues. For example, by mining fixes from the large repositories of open-source applications.

High-level overview of research thrusts.While elaborating more regarding the first thrust of research, Ahmed explains, the software engineering community by and large does not have a good understanding of the challenges faced by disabled users. For instance, all of the existing techniques for detection of accessibility issues in software focus only on individual UI elements, e.g., check the color contrast or font size of a UI widget, or determine whether a button has a proper label for screen reader. However, recent research shows that even if all UI elements are individually free from known accessibility issues, the overall functionality composed of those elements may be prohibitively difficult to use. Thus, the first research thrust aims to better understand the challenges faced by disabled users through conducting observational studies. Malek and Ahmed believe such studies will be quite informative, providing them with detailed insights into the challenges faced by disabled users.

The second thrust of research has resulted in the largest empirical study to-date, aimed at understanding the prevalence of accessibility issues in Android apps. To evaluate the accessibility features of Android apps, Abdulaziz Alshayban, a software engineering Ph.D. student co-advised by Malek and Ahmed, developed an automated accessibility evaluation tool that is capable of reporting 11 types of accessibility violations in Android. In extensive experiments on a dataset of 1,500 Android applications, the researchers found that almost all apps (99.6%) are riddled with accessibility issues, hindering their use by disabled people. On average, the apps had an inaccessibility rate of 6.4%, i.e., ratio of inaccessible user interface elements in apps to all user interface elements. They then investigated the developer sentiments through a survey of 66 developers aimed at understanding the root causes of so many accessibility issues. They found that developers in large part are unaware of accessibility design principles and analysis tools, and the organizations in which they are employed do not place a premium on accessibility. The result of this work has been accepted for publication at ICSE 2020 – the International Conference on Software Engineering.

Distribution of inaccessibility rate among 1500 studied apps.The third thrust of ISR research in this space focuses on automated accessibility repair. Malek explains, “To the best of our knowledge, none of the existing software engineering tools recommend ways of fixing the accessibility issues. Only identifying the problems and not recommending ways to fix them leads to developer apathy toward adopting the tools. We are creating a large dataset of mobile applications with “positive” and “negative” accessibility experiences. In our next steps, we will examine ways of leveraging this data to recommend suggestions and examples to fix accessibility issues, and eventually automatically fix the issues whenever possible.”

Malek and Ahmed believe there is a lot more future work in this space. In fact, Malek, Ahmed, and Informatics professor Stacy Branham recently received a School of ICS Exploration grant to work toward solutions for improving the accessibility of software. Malek explains, “In spite of the promising results we have obtained so far, our tools suffer from the well-known limitations of static program analysis and produce a large number of warnings (a.k.a., “wall of bugs”), making it difficult for developers to sift through them to identify the important accessibility issues.” To mitigate these limitations and make the technology more useful for practitioners, Malek and Ahmed are now working on combining dynamic analysis with static analysis to reduce the number of generated warnings and to prioritize them. Additionally, they are developing tools to provide application designers and developers with suggestions and examples to fix accessibility issues.

For more information on these projects visit Malek’s Software Engineering and Analysis Lab (SEAL) website and Ahmed’s Software Engineering & Testing Using Artificial Intelligence for Reliable Software (STAIRS) website.

This article appeared in ISR Connector issue: