Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Build Apps For The Ones You Love

Build Apps For The Ones You Love

Britt loves her Nana so much. She’s funny, she’s cool and she always has strawberries for her.
When she told Britt she's starting to have difficulties to see, Britt went through some of her favorites apps which are actually hard to use.

Not every developer knows that with just some simple modifications, their app can be accessible for so many other users. You have the power to improve people’s lives, independence and inclusion, with just a few lines of code. And these people can actually be the ones you most care about.

In this session, Britt will share some tips on how to do that.

(Presented at Droidcon London 2018)

Britt Barak

October 25, 2018
Tweet

More Decks by Britt Barak

Other Decks in Programming

Transcript

  1. World Wide Web Consortium (W3C) •min 3:1 for large text

    •min 4.5:1 for small text •(Large text : 18p or 14p bold and up) www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-contrast.html @BrittBarak
  2. override fun onItemSelected(parent: AdapterView<*>, v: View, position: Int, id: Long)

    { //… spinner.contentDescription = "Image selected : image " + labels[position] } @BrittBarak
  3. Step4 •“ select an image” •“ selected image : image

    4 …” •“ open camera …” @BrittBarak
  4. Step4 •“ select an image” •“ selected image : image

    4 …” •“ open camera …” @BrittBarak
  5. Step4 •“ select an image” •“ selected image : image

    4 …” •“ open camera …” @BrittBarak
  6. Step4 •“ select an image” •“ selected image : image

    4 …” •“ open camera …” @BrittBarak
  7. Step5 •“ select an image” •“ selected image : image

    4 …” •“ open camera …” @BrittBarak
  8. Step5 •“ select an image” •“ selected image : image

    4 …” •“ open camera …” @BrittBarak
  9. “… double tap to open chat , double tap and

    hold to have more options” @BrittBarak
  10. ViewCompat.setAccessibilityDelegate( rowView, object: AccessibilityDelegateCompat() { override fun onInitializeAccessibilityNodeInfo( host: View,

    info: AccessibilityNodeInfoCompat) { super.onInitializeAccessibilityNodeInfo(host, info) } }) @BrittBarak
  11. val clickAction = AccessibilityActionCompat( AccessibilityNodeInfoCompat.ACTION_CLICK, "open chat") info.addAction(clickAction) val longClickAction

    = AccessibilityActionCompat( AccessibilityNodeInfoCompat.ACTION_LONG_CLICK, "more options") @BrittBarak
  12. val clickAction = AccessibilityActionCompat( AccessibilityNodeInfoCompat.ACTION_CLICK, "open chat") info.addAction(clickAction) val longClickAction

    = AccessibilityActionCompat( AccessibilityNodeInfoCompat.ACTION_LONG_CLICK, "more options") info.addAction(longClickAction) @BrittBarak
  13. •“chats display selected, 6 new.” •“attachments display. Double tap to

    select” •“voice mails display, 7 new. Double tap to activate” @BrittBarak
  14. •“chats display selected, 6 new.” •“attachments display. Double tap to

    select” •“voice mails display, 7 new. Double tap to select” @BrittBarak
  15. Is a11y enabled? val am = getSystemService(Context.ACCESSIBILITY_SERVICE) as AccessibilityManager val

    isAccessibilityEnabled = am.isEnabled val isExploreByTouchEnabled = am.isTouchExplorationEnabled @BrittBarak