My current Big Project is my master's thesis - I'm writing about Android accessibility, and my goal is to create a list of checks Android developers could use to create more accessible apps. I'm super excited about the theme, and once it's ready, I will definitely share the results on my blog.
One of the main theoretical themes in the thesis is how Android developers implement accessibility and what challenges prevent them from doing so. Research also provides some solutions to these challenges.
In this blog post, we'll first look through some of the challenges Android developers face (although these are common for other types of development as well) and then discuss proposed solutions.
The Challenges
Let's first look at the challenges developers face. I've listed all the resources used in the Resources section. The list has three studies about Android developers, their accessibility knowledge, and their willingness and readiness to develop accessible apps.
Not Knowing About Accessibility and Lack of Awareness
The first problem I want to mention is that Android developers often lack accessibility knowledge. This lack of familiarity varies - for some, it's total unawareness, but for most, it shows as problems understanding the exact needs of disabled users. 1
This finding is something I can confirm from my own experiences. Often Android developers are familiar with the fact that accessibility should be part of an app. Still, the exact implementation and why they must do something are unclear.
Companies Ignoring Accessibility Requirements
Another aspect of the lack of awareness is that companies ignore the accessibility requirements. Patel et al. 2 found out that the leadership in companies often prioritized other things over accessibility when a deadline was approaching. They usually see accessibility as an extra cost rather than an opportunity. This attitude is also visible in the internal policies, so for developers, it's often hard to find time to fix accessibility issues retroactively.
Another thing that is related to fixing accessibility as an afterthought is that it can be considered hard - and it might lead to a situation where those accessibility issues don't get fixed. 1
I can again confirm these findings - throughout my career, I've witnessed situations where accessibility is not part of the company's requirements, which means there is no time or resources to consider accessibility.
Little to No Exposure or Background with Accessibility
Vendome et al. 3 found out that developers often don't have exposure or background with accessibility and assistive technology, and that leads to misunderstandings, e.g., in questions developers ask on platforms like Stack Overflow. For example, they might ask about how TalkBack reads phone numbers and how to force it to read them in a particular way. (For those unfamiliar with TalkBack: TalkBack users can control this with settings, and developers should not force it on apps.)
On the other hand, opportunities to interact with people with disabilities were considered as a helpful way to understand user expectations better. 2 I think this all comes down to the fact that it's helpful to talk to users to understand their expectations and needs. It's a crucial part of creating good apps.
Accessibility is Only About Screen Reader Accessibility
One challenge for accessibility is that it's mostly about screen reader accessibility. Vendome et al. 3 found out that the most discussed topic on Stack Overflow (in the material they collected) was screen reader accessibility.
I can second that finding from my experience - when discussing accessibility, it's often about screen reader accessibility. And it's an important aspect, but it's necessary to remember that it's not all. Considering interaction for people who can see or have low vision is as important as is, e.g., cognitive accessibility.
Belief of Accessibility Having Negative Effects on the App's Aesthetics and Usability
Another finding I've witnessed is that some developers (and designers) believe that if they incorporate accessibility into their apps or designs, it will affect the app's aesthetics and/or usability. Di Gregorio et al. 1 found that developers might meet ideas about progressive functionality or interfaces negatively because they can add complexity to the app.
As a developer, I can understand where this comes from. Especially requirements added as an afterthought do increase complexity - so it's important to include accessibility right from the start, and building these interfaces is less work.
Lack of Tools
The second to last finding is the lack of tools for developing accessible apps. Also, some developers have had situations where free tools have disappeared suddenly, and there has been nothing to replace them. 2
Another thing related to different tools (or assistive technology) is that developers often don't have experience with those tools, which can lead to misunderstandings and solving problems that are not problems. One example is the problem described in the section "Little to No Exposure or Background with Accessibility" about TalkBack and numbers. TalkBack handles how numbers are presented, and users can alter that, but because developers didn't know it, they tried to force their app to represent numbers in a certain way when using TalkBack. 3
From the perspective of a mobile dev with a background in web development, I agree that there aren't enough tools for developing accessible Android apps. There are way more tools for accessibility in web development, but for Android, not so much. The situation is changing, but slowly. I've also seen the lack of exposure to assistive technology and how it can lead to interesting outcomes.
Relevant and Usable Information is Hard to Find
The last finding is that it's hard to find relevant and usable information. One interviewee from Di Gregorio et al.'s research noted that it's not just about unawareness of accessibility guidelines but also about not being able to find usable information from the internet to fix the issues. 1 Patel et al. 2 also discovered a lack of resources - especially for building accessible components. And one of their study participants noted that the available accessibility guidelines should be in a form that is more digestible so that developers would use them.
I can fully agree. Especially with Android development, I often know what I should do regarding how the app should behave to be more accessible. Still, it's hard to find usable articles on how actually do the technical implementation. So I can only imagine how hard and frustrating it can feel for someone with less background in accessibility.
We've gone through many challenges Android developers face, and let's look next at the solutions proposed in the research. These solutions don't solve every aspect, but at least some of them.
Proposed Solutions
The three research articles I've looked at list two types of proposed solutions to solve the challenges of building accessible apps for Android: Better tools and education. Let's look at both of them more.
Better Tools for Development
Both Patel et al. 2 and Vendome et al. 3 suggest having better tools for development to address accessibility in specific technical implementations. These tools could be integrated with, e.g., IDEs and could (or from what I've observed and talked with other developers, should) be semi-automated.
I've been following the Android development ecosystem for a while now, and there are ongoing processes to improve the tooling. There are some code checks in Android Studio for XML-based views, but they've been lacking from Compose components. However, in Google I/O, they announced that there would be improvements for Compose previews in the form of these accessibility warnings. (Source: What's new in Android Accessibility)
Increase Accessibility Knowledge Through (Formal) Education
Another proposed solution is to increase accessibility knowledge through education. That could be achieved by adding more accessibility-related topics to curriculums of non-computing fields. Also, within computer science and related fields, learning about addressing accessibility issues during development would be beneficial. 2
This solution goes past formal education - developers would generally benefit from learning more about universal design principles and targeted tutorials and workshops addressing specific accessibility topics. 2 3
From my perspective, on both formal and informal education, I've been happy to notice the increase of accessibility-themed articles and workshops, as well as accessibility in the curriculums of, e.g., universities. There is, of course, a lot to be done, but the direction is correct.
But even if we had many quality articles and other resources, it's always each developer's responsibility to learn more about the topic. Any amount of education or materials is only enough if we, as developers, take the opportunity to learn more.
Wrapping Up
In this blog post, I've gone through some challenges Android developers face regarding accessibility per prior research. I've discussed lack of awareness, companies ignoring accessibility requirements, developers having little to no exposure or background with accessibility, accessibility being only about screen reader accessibility, the belief that accessibility makes the app less usable or beautiful, lack of tools, and that relevant and usable information is hard to find.
I've also shared some suggested solutions: better tooling for development and increasing accessibility knowledge through formal and informal education.
Do you recognize these challenges in your work? Or do you have additional solution ideas?
Resources
- 1 Di Gregorio, M., Di Nucci, D., Palomba, F., & Vitiello, G. (2022). The making of accessible Android applications: An empirical study on the state of the practice. Empirical Software Engineering, 27(6), 145. https://doi.org/10.1007/s10664-022-10182-x
- 2 Patel, R., Breton, P., Baker, C. M., El-Glaly, Y. N., & Shinohara, K. (2020). Why Software is Not Accessible: Technology Professionals' Perspectives and Challenges. Extended Abstracts of the 2020 CHI Conference on Human Factors in Computing Systems, 1–9. https://doi.org/10.1145/3334480.3383103
- 3 Vendome, C., Solano, D., Liñán, S., & Linares-Vásquez, M. (2019). Can Everyone use my app? An Empirical Study on Accessibility in Android Apps. 2019 IEEE International Conference on Software Maintenance and Evolution (ICSME), 41–52. https://doi.org/10.1109/ICSME.2019.00014