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
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Gabriel Oliva
February 21, 2017
Programming
140
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
63
RxSwift Basics
gabrieloliva
0
60
Abordando TDD no iOS
gabrieloliva
0
44
Other Decks in Programming
See All in Programming
OSもどきOS
arkw
0
580
不変条件と整合性境界—ビジネスが決める設計判断と実現パターン / Invariants and Consistency Boundaries
nrslib
14
5.7k
なぜ型を書くのか? TSKaigi2026で改めて考える #tskaigi_smarthr
kajitack
0
130
Inside Stream API
skrb
1
750
A2UI という光を覗いてみる
satohjohn
1
150
The NotImplementedError Problem in Ruby
koic
1
890
Oxcを導入して開発体験が向上した話
yug1224
4
330
過去最大のMCPアップデート! 2026-07-28 RC版の謎に迫る
licux
6
380
技術記事、AIに書かせるか、自分で書くか? 〜それでも私が自分の手で書く理由〜 / #QiitaConference
jnchito
2
1.5k
軽量Java基盤の設計 DIコンテナに頼らない、長期保守と1秒起動の実現 JJUG CCC 2026 Spring
macha64
0
560
Webフレームワークの ベンチマークについて
yusukebe
0
180
Make SRE Operations Easier with Azure SRE Agent
kkamegawa
0
7.4k
Featured
See All Featured
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.8k
How to Ace a Technical Interview
jacobian
281
24k
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
We Have a Design System, Now What?
morganepeng
55
8.2k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
270
Rails Girls Zürich Keynote
gr2m
96
14k
The Spectacular Lies of Maps
axbom
PRO
1
820
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
170
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.3k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
62
44k
Become a Pro
speakerdeck
PRO
31
6k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.2k
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 !