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
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
フロントエンドとバックエンドで「1文字」を揃えよう
youkidearitai
PRO
0
730
エンジニアと一緒にテストコードの設計と実装を改善した話
mototakatsu
0
210
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
270
メソッドのジェネリクスでGoの夢は広がるか? / Kyoto.go #65
utgwkk
3
890
Honoでのサプライチェーン侵害対策 〜 3つのライブラリに学ぶ
yusukebe
7
1.4k
肥大化するレガシーコードに立ち向かうためのインターフェース分離と依存の逆転 / JJUG CCC 2026 Spring
hirokunimaeta
0
600
正しくソフトウェアを作る、前提を疑うための認知の視点 / doubt-premise
minodriven
21
6.9k
Semantic Version 単位で戦略を柔軟に変えて、パッケージアップデートを自動化する
daitasu
1
290
Vite+ Unified Toolchain for the Web
naokihaba
0
330
LLMによるContent Moderationの本番運用の裏側と品質担保への挑戦
suikabar
3
730
Oxlintのカスタムルールの現況
syumai
6
1.1k
作って学ぶ、 JSX (TSX) ランタイムの基本
syumai
7
1.7k
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.7k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
360
A Soul's Torment
seathinner
6
3k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
1.8k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
540
We Are The Robots
honzajavorek
0
250
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
290
The Cult of Friendly URLs
andyhume
79
6.9k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Faster Mobile Websites
deanohume
310
32k
Balancing Empowerment & Direction
lara
6
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 !