Talks about how accessibility services work in Android, common mistakes that make apps inaccessible, how Uber approaches accessibility and ideas for scalable accessibility testing.
and annotations, Search, Caching, Architecture, User interfaces Recently started working on making Uber app accessible Before Uber, worked on Yahoo mobile ads and Yahoo aviate app
for all users by having an inclusive design Positively impacts the lives of people with disabilities ~15% of world’s population ~285M people with visual impairments around the world ~35M people with some level of motor impairments in the US Also a growth strategy. For Uber, aligns with with its mission - “Transportation as reliable as running water, everywhere, for everyone”
white screen to white text on black screen Color correction setting to correct different types of color blindness Font size setting to control font sizes Display size setting to male items on screen bigger or smaller
<Button android:contentDescription="Button selected" android:layout_width="wrap_content" android:layout_height="wrap_content"/> For custom views, you need to provide state information yourself Common mistakes
UI changes Contrast ratio between text and its background should at least 4 for small text Using focusable to group views instead of setting importantForAccessibility Common mistakes
route, the estimated time of arrival is announced periodically Eliminates the need for the user to move the focus to ETA view Uber’s latest accessibility improvements
is deaf or hard of hearing if the driver supplies this information Drivers can choose to use flashes to announce new requests instead of notification sounds Uber’s latest accessibility improvements
to help the user get a ride as soon as possible Without allowing the focus to each view inside the feed(showing food options, deep links to Uber Eats), a summary will be called out Upon further engagement by double clicking, the views inside the feed will iterated Uber’s latest accessibility improvements
pickup location field, map mode is displayed. For talkback users, the map is not displayed. Instead the list is brought up from below. Not advisable to branch off to give specialized experience for talkback users in general. Uber’s latest accessibility improvements
AccessibilityDelegateCompat { private final AccessibilityNodeInfoCompat.AccessibilityActionCompat actionDestination; public DestinationSearchAccessibilityDelegate() { actionDestination = new AccessibilityNodeInfoCompat.AccessibilityActionCompat( AccessibilityNodeInfoCompat.AccessibilityActionCompat.ACTION_CLICK.getId(), “Change destination and pickup locations”); } @Override public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfoCompat info) { super.onInitializeAccessibilityNodeInfo(host, info); info.addAction(actionDestination); } } “Where To” box, upon single click in talkback mode, will say “Where To, double click to change destination and pickup locations” Uber’s latest accessibility improvements
box to accessibility services. Accessibility services will not have visibility into your view’s: - boundaries - content description - supported accessibility actions Custom view accessibility
issues Add lint rules to prevent developers from adding inaccessible code Use Google’s accessibility testing framework in Robolectric unit tests Scalable accessibility testing