Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Acessibilidade no iOS
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Gabriel Oliva
February 21, 2017
Programming
140
0
Share
Acessibilidade no iOS
Talk apresentada no 16º CocoaHeads BH.
Gabriel Oliva
February 21, 2017
More Decks by Gabriel Oliva
See All by Gabriel Oliva
TDC - Acessibilidade no iOS
gabrieloliva
0
62
RxSwift Basics
gabrieloliva
0
56
Abordando TDD no iOS
gabrieloliva
0
44
Other Decks in Programming
See All in Programming
[RubyKaigi 2026] Require Hooks
palkan
1
300
ふにゃっとしない名前の付け方 〜哲学で茹で上げる、コシのあるソフトウェア設計〜
shimomura
0
110
PicoRuby for IoT: Connecting to the Cloud with MQTT
yuuu
2
760
書籍「ユーザーストーリーマッピング」が私のバイブル
asumikam
4
480
t *testing.T は どこからやってくるの?
otakakot
1
910
Are We Really Coding 10× Faster with AI?
kohzas
0
130
ローカルLLMでどこまでコードが書けるか / How much code can be written on a local LLM
kishida
2
320
【26新卒研修資料】TDD実装演習
dip_tech
PRO
0
170
20年以上続くプロダクトでも使い続けられる静的解析ツールを求めて
matsuo_atsushi
0
140
属人化しないコード品質の作り方_2026.04.07.pdf
muraaano
0
320
Spec-Driven Development with AI Agents (Workshop, May 2026)
antonarhipov
3
330
GoogleCloudとterraform完全に理解した
terisuke
1
190
Featured
See All Featured
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.6k
What does AI have to do with Human Rights?
axbom
PRO
1
2.1k
My Coaching Mixtape
mlcsv
0
120
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.5k
Amusing Abliteration
ianozsvald
1
160
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
160
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
1
33
Chasing Engaging Ingredients in Design
codingconduct
0
190
Test your architecture with Archunit
thirion
1
2.2k
The Cult of Friendly URLs
andyhume
79
6.9k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Transcript
Acessibilidade no iOS
Gabriel Oliva • ! Engenheiro de software @ CI&T •
" Batera; • # Mineiro que: • ☕ = % • & = ' • Co-organizador do CocoaHeads BH
[email protected]
@gabrieloliva_
Agenda • Acessibilidade no iOS • Importância da Acessibilidade nos
apps • Voice Over • Demo: implementando acessibilidade em um app
Acessibilidade no iOS
Funcionalidades de acessibilidade no iOS
Apple quebra as funcionalidades em 4 áreas
! ✋ # Aa
Hearing ! Made for iPhone Hearing Aids
Physical and motor skills ✋ AssistiveTouch
Physical and motor skills ✋ Touch Accommodations
Vision ! Display Accommodations
Vision ! Zoom
Vision ! VoiceOver
Learning Guided Access
Demo Guided Access
Learning Guided Access UIGuidedAccessRestrictionDelegate
Por que meu app tem que ser acessível?
! → "
!
! → "
!
! → "
! → "
99 Taxi
None
WTF??!
Por que meu app tem que ser acessível?
Porque pessoas com algum tipo de deficiência poderão utilizar seu
app!
VoiceOver
VoiceOver Uma aplicação é acessível quando todos os elementos são
acessíveis
VoiceOver Um elemento é acessível quando ele se autodenomina como
um elemento de acessibilidade
Porém somente se autodenominar como um elemento de acessibilidade não
é útil.
None
VoiceOver O elemento deve fornecer informações úteis e precisas para
que o VoiceOVer possa interagir com o usuário
Ok, mas como?
VoiceOver UIAccessibility
UIKit ♥ UIAccessibility
UIKit ! UIAccessibility
UIAccessibility Todos os objetos que implementam o protocolo relatam seus
status de acessibilidade quando acessíveis
UIAccessibilityContainer Permite que subclasses de UIView torne alguns ou todos
os objetos que ele contém acessíveis como elementos separados
UIAccessibilityContainer func accessibilityElementCount() func accessibilityElement(at: Int) func index(ofAccessibilityElement: Any) @available(iOS
8.0, *) var accessibilityElements: [Any]?
UIAccessibilityConstants.h
Atributos de acessibilidade
Atributos de acessibilidade Eu sirvo para algum propósito? var isAccessibilityElement:
Bool
Atributos de acessibilidade Qual meu nome? var accessibilityLabel: String?
Atributos de acessibilidade Qual a minha personalidade? var accessibilityTraits: UIAccessibilityTraits
Atributos de acessibilidade Qual o meu valor? var accessibilityValue: String?
None
Atributos de acessibilidade Como as pessoas deveriam interagir comigo? var
accessibilityHint: String?
Atributos de acessibilidade Onde eu estou? var accessibilityFrame: CGRect CGRect
UIAccessibilityConvertFrameToScreenCoordinates(CGRect rect, UIView *view);
Notificações de acessibilidade
Notificações de acessibilidade Você consegue postar notificações... func UIAccessibilityPostNotification(_ notification:
UIAccessibilityNotifications, _ argument: Any?)
Notificações de acessibilidade Você consegue escutar notificações... NotificationCenter.default.addObserver(self, selector: #selector(self.doSomething),
name: NSNotification.Name(rawValue: UIAccessibilityVoiceOverStatusChanged), object: nil)
API simples, ganho enorme...
DEMO
Perguntas?
Links úteis • Documentação: • UIAccessibility API Reference, Apple •
Posts: • UIAccessibility, NSHipster • iOS Accessibility Tutorial: Getting Started, Ray Wenderlich
Links úteis • WWDC • Auditing Your Apps for Accessibility,
WWDC 2016 - Session 407 - iOS, macOS, tvOS, watchOS • What's New in Accessibility, WWDC 2016 - Session 202 - iOS, macOS, tvOS
Obrigado !