Airbnb Tech Blog

Making Airbnb’s Android app more accessible

thumbnail

Table of Contents

  • Part I: Build for all: best practices we apply
    • Content descriptions
  • Part II: Empower engineers with automated checks
  • Page name announcements
  • Closing thoughts

Part I: Build for all: best practices we apply

At Airbnb, we follow industry best practices to make the Android app accessible. One of these practices is providing accurate content descriptions for all UI elements to ensure compatibility with assistive technology. We also group related content together with accessibility headings, which communicate the structure of the page. This practice improves accessibility across the app and on all screens.

Part II: Empower engineers with automated checks

We have invested in automated accessibility testing and linting to provide quick feedback for engineers and empower them to write accessible code. Our testing library, Espresso, has built-in accessibility checks, and we use lint rules to ensure screen readers can announce page names. While automated tests cover many areas, manual testing is still necessary for some elements.

Page name announcements

To ensure compatibility with screen readers, we use APIs such as View.setAccessibilityPaneTitle() and View.announceForAccessibility() to announce descriptive page names when navigating to a new screen. This improves navigability and makes our app more accessible.

Closing thoughts

Making our Android app more accessible has been an impactful journey, and all efforts to improve accessibility are important. It is an ongoing process, and we are grateful to our engineers and industry resources, such as Google’s Accessibility in Compose documentation, for their contributions.