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
Gabriel Oliva
February 21, 2017
Programming
0
130
Acessibilidade no iOS
Talk apresentada no 16º CocoaHeads BH.
Gabriel Oliva
February 21, 2017
Tweet
Share
More Decks by Gabriel Oliva
See All by Gabriel Oliva
TDC - Acessibilidade no iOS
gabrieloliva
0
53
RxSwift Basics
gabrieloliva
0
51
Abordando TDD no iOS
gabrieloliva
0
42
Other Decks in Programming
See All in Programming
Reactive Thinking with Signals and the Resource API
manfredsteyer
PRO
0
110
テーブル定義書の構造化抽出して、生成AIでDWH分析を試してみた / devio2025tokyo
kasacchiful
0
280
EMこそClaude Codeでコード調査しよう
shibayu36
0
380
Writing Better Go: Lessons from 10 Code Reviews
konradreiche
3
6.5k
TransformerからMCPまで(現代AIを理解するための羅針盤)
mickey_kubo
7
5.1k
When Dependencies Fail: Building Antifragile Applications in a Fragile World
selcukusta
0
110
Range on Rails ―「多重範囲型」という新たな選択肢が、複雑ロジックを劇的にシンプルにしたワケ
rizap_tech
0
6.8k
Leading Effective Engineering Teams in the AI Era
addyosmani
7
600
Goで実践するドメイン駆動開発 AIと歩み始めた新規プロダクト開発の現在地
imkaoru
4
890
kiroとCodexで最高のSpec駆動開発を!!数時間で web3ネイティブなミニゲームを作ってみたよ!
mashharuki
0
900
PHPに関数型の魂を宿す〜PHP 8.5 で実現する堅牢なコードとは〜 #phpcon_hiroshima / phpcon-hiroshima-2025
shogogg
1
330
Claude CodeによるAI駆動開発の実践 〜そこから見えてきたこれからのプログラミング〜
iriikeita
0
330
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
75
5.1k
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.9k
Context Engineering - Making Every Token Count
addyosmani
8
300
Building a Modern Day E-commerce SEO Strategy
aleyda
44
7.8k
Leading Effective Engineering Teams in the AI Era
addyosmani
7
600
For a Future-Friendly Web
brad_frost
180
10k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.2k
Site-Speed That Sticks
csswizardry
13
920
Speed Design
sergeychernyshev
32
1.2k
The Illustrated Children's Guide to Kubernetes
chrisshort
49
51k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
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 !