Soumettre la recherche
Mettre en ligne
iOSのVoiceOver対応開発
•
10 j'aime
•
5,821 vues
Shin Ise
Suivre
iPhoneのVoiceOverの実装について
Lire moins
Lire la suite
Signaler
Partager
Signaler
Partager
1 sur 30
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
Arimasu and imasu
Arimasu and imasu
さすてなライフクラブ Sustena Life Club
MongoDB概要:金融業界でのMongoDB
MongoDB概要:金融業界でのMongoDB
ippei_suzuki
これからはじめる XAML - WPF プログラミング
これからはじめる XAML - WPF プログラミング
インフラジスティックス・ジャパン株式会社
データベース13 - トランザクションと障害回復
データベース13 - トランザクションと障害回復
Kenta Oku
Webアプリケーション上で 起きている問題の可視化
Webアプリケーション上で 起きている問題の可視化
LINE Corporation
Mer - Modelo Entidade Relacionamento
Mer - Modelo Entidade Relacionamento
Rademaker Siena
DER - Diagrama de Entidade e Relacionamentos
DER - Diagrama de Entidade e Relacionamentos
Cláudio Amaral
Estrutura de decisão switch case
Estrutura de decisão switch case
Alessandra Sra JM
Recommandé
Arimasu and imasu
Arimasu and imasu
さすてなライフクラブ Sustena Life Club
MongoDB概要:金融業界でのMongoDB
MongoDB概要:金融業界でのMongoDB
ippei_suzuki
これからはじめる XAML - WPF プログラミング
これからはじめる XAML - WPF プログラミング
インフラジスティックス・ジャパン株式会社
データベース13 - トランザクションと障害回復
データベース13 - トランザクションと障害回復
Kenta Oku
Webアプリケーション上で 起きている問題の可視化
Webアプリケーション上で 起きている問題の可視化
LINE Corporation
Mer - Modelo Entidade Relacionamento
Mer - Modelo Entidade Relacionamento
Rademaker Siena
DER - Diagrama de Entidade e Relacionamentos
DER - Diagrama de Entidade e Relacionamentos
Cláudio Amaral
Estrutura de decisão switch case
Estrutura de decisão switch case
Alessandra Sra JM
Amplifyのカスタムリソースを使おうとした話
Amplifyのカスタムリソースを使おうとした話
a kyane
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
Hyojun Jeon
ユースケースの善し悪し
ユースケースの善し悪し
akipii Oga
システムアーキテクト~My batis編~
システムアーキテクト~My batis編~
Shinichi Kozake
Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02
thomasdacosta
PostgreSQLセキュリティ総復習
PostgreSQLセキュリティ総復習
Uptime Technologies LLC (JP)
ScalikeJDBC Tutorial for Beginners
ScalikeJDBC Tutorial for Beginners
Kazuhiro Sera
Top 40 sql queries for testers
Top 40 sql queries for testers
tlvd
かずきのUWP入門
かずきのUWP入門
一希 大田
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Shotaro Suzuki
負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~
負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~
johgus johgus
C#とJavaの違い
C#とJavaの違い
KenjiroUehara
節子、それViewControllerやない...、FatViewControllerや...。
節子、それViewControllerやない...、FatViewControllerや...。
Kenji Tanaka
GCP・GKEで作るスケーラブルなゲーム開発環境
GCP・GKEで作るスケーラブルなゲーム開発環境
Yasutomo Uemori
SIROK技術勉強会 #1 「Reactってなんだ?」
SIROK技術勉強会 #1 「Reactってなんだ?」
Naoyuki Kataoka
CyberAgentにおけるMongoDB
CyberAgentにおけるMongoDB
Akihiro Kuwano
レイヤードアーキテクチャを意識したPHPアプリケーションの構築
レイヤードアーキテクチャを意識したPHPアプリケーションの構築
Masashi Shinbara
Aula 5 - Dicionário de Dados
Aula 5 - Dicionário de Dados
Janynne Gomes
AWS SDK for Android and iOS
AWS SDK for Android and iOS
Amazon Web Services Japan
Aula 04 dicionario de dados
Aula 04 dicionario de dados
Roitier Gonçalves
iOSで光を感知する
iOSで光を感知する
Kosuke Ogawa
Cross platform development with Xamarin 2.0 + MvvmCross
Cross platform development with Xamarin 2.0 + MvvmCross
Shin Ise
Contenu connexe
Tendances
Amplifyのカスタムリソースを使おうとした話
Amplifyのカスタムリソースを使おうとした話
a kyane
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
Hyojun Jeon
ユースケースの善し悪し
ユースケースの善し悪し
akipii Oga
システムアーキテクト~My batis編~
システムアーキテクト~My batis編~
Shinichi Kozake
Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02
thomasdacosta
PostgreSQLセキュリティ総復習
PostgreSQLセキュリティ総復習
Uptime Technologies LLC (JP)
ScalikeJDBC Tutorial for Beginners
ScalikeJDBC Tutorial for Beginners
Kazuhiro Sera
Top 40 sql queries for testers
Top 40 sql queries for testers
tlvd
かずきのUWP入門
かずきのUWP入門
一希 大田
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Shotaro Suzuki
負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~
負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~
johgus johgus
C#とJavaの違い
C#とJavaの違い
KenjiroUehara
節子、それViewControllerやない...、FatViewControllerや...。
節子、それViewControllerやない...、FatViewControllerや...。
Kenji Tanaka
GCP・GKEで作るスケーラブルなゲーム開発環境
GCP・GKEで作るスケーラブルなゲーム開発環境
Yasutomo Uemori
SIROK技術勉強会 #1 「Reactってなんだ?」
SIROK技術勉強会 #1 「Reactってなんだ?」
Naoyuki Kataoka
CyberAgentにおけるMongoDB
CyberAgentにおけるMongoDB
Akihiro Kuwano
レイヤードアーキテクチャを意識したPHPアプリケーションの構築
レイヤードアーキテクチャを意識したPHPアプリケーションの構築
Masashi Shinbara
Aula 5 - Dicionário de Dados
Aula 5 - Dicionário de Dados
Janynne Gomes
AWS SDK for Android and iOS
AWS SDK for Android and iOS
Amazon Web Services Japan
Aula 04 dicionario de dados
Aula 04 dicionario de dados
Roitier Gonçalves
Tendances
(20)
Amplifyのカスタムリソースを使おうとした話
Amplifyのカスタムリソースを使おうとした話
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
ユースケースの善し悪し
ユースケースの善し悪し
システムアーキテクト~My batis編~
システムアーキテクト~My batis編~
Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02
PostgreSQLセキュリティ総復習
PostgreSQLセキュリティ総復習
ScalikeJDBC Tutorial for Beginners
ScalikeJDBC Tutorial for Beginners
Top 40 sql queries for testers
Top 40 sql queries for testers
かずきのUWP入門
かずきのUWP入門
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~
負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~
C#とJavaの違い
C#とJavaの違い
節子、それViewControllerやない...、FatViewControllerや...。
節子、それViewControllerやない...、FatViewControllerや...。
GCP・GKEで作るスケーラブルなゲーム開発環境
GCP・GKEで作るスケーラブルなゲーム開発環境
SIROK技術勉強会 #1 「Reactってなんだ?」
SIROK技術勉強会 #1 「Reactってなんだ?」
CyberAgentにおけるMongoDB
CyberAgentにおけるMongoDB
レイヤードアーキテクチャを意識したPHPアプリケーションの構築
レイヤードアーキテクチャを意識したPHPアプリケーションの構築
Aula 5 - Dicionário de Dados
Aula 5 - Dicionário de Dados
AWS SDK for Android and iOS
AWS SDK for Android and iOS
Aula 04 dicionario de dados
Aula 04 dicionario de dados
En vedette
iOSで光を感知する
iOSで光を感知する
Kosuke Ogawa
Cross platform development with Xamarin 2.0 + MvvmCross
Cross platform development with Xamarin 2.0 + MvvmCross
Shin Ise
iOSのVoiceOver対応開発 Rev2
iOSのVoiceOver対応開発 Rev2
Shin Ise
本当は怖いSilverlight for Windows Phone Toolkit
本当は怖いSilverlight for Windows Phone Toolkit
Shin Ise
GridViewのつかいかた
GridViewのつかいかた
Shin Ise
WWDC 2016の概観
WWDC 2016の概観
Yuta Hoshino
1.3.1 Решения для монолитного строительства
1.3.1 Решения для монолитного строительства
Igor Golovin
2017 NAEC
2017 NAEC
Milena Palahanska-Mavrov, P.E., LEED AP BD+C
Corn mill machine gets good response
Corn mill machine gets good response
Penny Hou
Intervento apogea marzo 2017
Intervento apogea marzo 2017
Davide Zucchetti
ICDS1 IARIA presentation M. Hartog
ICDS1 IARIA presentation M. Hartog
eSociety Institute of The Hague University of Applied Sciences
Tutorial wix
Tutorial wix
jenniz
العملية التعليمة
العملية التعليمة
mahmoud512
Office 365 Authentication Process (oAuth Service Integration) - iXora Tech Se...
Office 365 Authentication Process (oAuth Service Integration) - iXora Tech Se...
iXora Solution Ltd.
Acuerdo ministerial 6987 - Ministerio Interior
Acuerdo ministerial 6987 - Ministerio Interior
Wilson Andres
ぴゅう太フォン
ぴゅう太フォン
Tsuyoshi Kinoshita
MSI BROCHURE
MSI BROCHURE
Jennifer Villalon
Readers theater and informational text
Readers theater and informational text
The Ohio State University, College of Education and Human Ecology
En vedette
(18)
iOSで光を感知する
iOSで光を感知する
Cross platform development with Xamarin 2.0 + MvvmCross
Cross platform development with Xamarin 2.0 + MvvmCross
iOSのVoiceOver対応開発 Rev2
iOSのVoiceOver対応開発 Rev2
本当は怖いSilverlight for Windows Phone Toolkit
本当は怖いSilverlight for Windows Phone Toolkit
GridViewのつかいかた
GridViewのつかいかた
WWDC 2016の概観
WWDC 2016の概観
1.3.1 Решения для монолитного строительства
1.3.1 Решения для монолитного строительства
2017 NAEC
2017 NAEC
Corn mill machine gets good response
Corn mill machine gets good response
Intervento apogea marzo 2017
Intervento apogea marzo 2017
ICDS1 IARIA presentation M. Hartog
ICDS1 IARIA presentation M. Hartog
Tutorial wix
Tutorial wix
العملية التعليمة
العملية التعليمة
Office 365 Authentication Process (oAuth Service Integration) - iXora Tech Se...
Office 365 Authentication Process (oAuth Service Integration) - iXora Tech Se...
Acuerdo ministerial 6987 - Ministerio Interior
Acuerdo ministerial 6987 - Ministerio Interior
ぴゅう太フォン
ぴゅう太フォン
MSI BROCHURE
MSI BROCHURE
Readers theater and informational text
Readers theater and informational text
Similaire à iOSのVoiceOver対応開発
第1回windows phoneアプリ開発のハンズオンセミナー
第1回windows phoneアプリ開発のハンズオンセミナー
hyoromo
Android Design ざっくりレビュー
Android Design ざっくりレビュー
Naoki Hashimoto
RaySheet_製品資料_231101.pdf
RaySheet_製品資料_231101.pdf
GrapeCity, inc.
iOSやAndroidアプリ開発のGoodPractice
iOSやAndroidアプリ開発のGoodPractice
Ken Morishita
iOS開発豆知識_エスキュービズム勉強会20141006
iOS開発豆知識_エスキュービズム勉強会20141006
エンジニア勉強会 エスキュービズム
Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方
Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方
Roy Kim
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス
ericsagnes
Functional Programming (で遊ぶ)
Functional Programming (で遊ぶ)
Rakuten Group, Inc.
iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い
iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い
Ken Morishita
5分でわかるSencha Touch
5分でわかるSencha Touch
dsuke Takaoka
アプリ開発を回すためにこれだけは押さえておきたい3つの軸
アプリ開発を回すためにこれだけは押さえておきたい3つの軸
セカイラボ(Sekai Lab Pte. Ltd.)
2011 icse-reverse engineering feature models
2011 icse-reverse engineering feature models
n-yuki
アプリでもオブジェクト指向エクササイズ(Potatotips#3)
アプリでもオブジェクト指向エクササイズ(Potatotips#3)
Shoichi Matsuda
リモート・スマホ・レンタル(第2回 Androidテスト祭り)
リモート・スマホ・レンタル(第2回 Androidテスト祭り)
NTT Resonant Technology Inc.
Css nite(2010.09.23)
Css nite(2010.09.23)
Yoshiki Ushida
プロトタイプとワークフロー Prototype and Workflow
プロトタイプとワークフロー Prototype and Workflow
atmarkit
Ppt作成テクニック講座資料
Ppt作成テクニック講座資料
synapse-diary
Einsteinvision - object detection を試してみよう
Einsteinvision - object detection を試してみよう
Salesforce Developers Japan
Wankuma0402
Wankuma0402
c-mitsuba
2D格闘ゲームにおけるユーザビリティとゲームデザインについて
2D格闘ゲームにおけるユーザビリティとゲームデザインについて
Koji Morikawa
Similaire à iOSのVoiceOver対応開発
(20)
第1回windows phoneアプリ開発のハンズオンセミナー
第1回windows phoneアプリ開発のハンズオンセミナー
Android Design ざっくりレビュー
Android Design ざっくりレビュー
RaySheet_製品資料_231101.pdf
RaySheet_製品資料_231101.pdf
iOSやAndroidアプリ開発のGoodPractice
iOSやAndroidアプリ開発のGoodPractice
iOS開発豆知識_エスキュービズム勉強会20141006
iOS開発豆知識_エスキュービズム勉強会20141006
Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方
Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス
Functional Programming (で遊ぶ)
Functional Programming (で遊ぶ)
iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い
iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い
5分でわかるSencha Touch
5分でわかるSencha Touch
アプリ開発を回すためにこれだけは押さえておきたい3つの軸
アプリ開発を回すためにこれだけは押さえておきたい3つの軸
2011 icse-reverse engineering feature models
2011 icse-reverse engineering feature models
アプリでもオブジェクト指向エクササイズ(Potatotips#3)
アプリでもオブジェクト指向エクササイズ(Potatotips#3)
リモート・スマホ・レンタル(第2回 Androidテスト祭り)
リモート・スマホ・レンタル(第2回 Androidテスト祭り)
Css nite(2010.09.23)
Css nite(2010.09.23)
プロトタイプとワークフロー Prototype and Workflow
プロトタイプとワークフロー Prototype and Workflow
Ppt作成テクニック講座資料
Ppt作成テクニック講座資料
Einsteinvision - object detection を試してみよう
Einsteinvision - object detection を試してみよう
Wankuma0402
Wankuma0402
2D格闘ゲームにおけるユーザビリティとゲームデザインについて
2D格闘ゲームにおけるユーザビリティとゲームデザインについて
Plus de Shin Ise
いまどきのiOSプログラミング with Xcode5
いまどきのiOSプログラミング with Xcode5
Shin Ise
すまべんLite@関西#4
すまべんLite@関西#4
Shin Ise
すまべんLite@関西#3
すまべんLite@関西#3
Shin Ise
すまべんLite@関西#2
すまべんLite@関西#2
Shin Ise
すごいHaskell読書会#10
すごいHaskell読書会#10
Shin Ise
音声APIを使ってみる
音声APIを使ってみる
Shin Ise
すまべんLite@関西#1
すまべんLite@関西#1
Shin Ise
Xamarin2.0であそぼう
Xamarin2.0であそぼう
Shin Ise
CoreBluetoothでつくるBluetooth Low Energyデバイス
CoreBluetoothでつくるBluetooth Low Energyデバイス
Shin Ise
すごいHaskell読書会 in 大阪 #4 「第6章 モジュール」
すごいHaskell読書会 in 大阪 #4 「第6章 モジュール」
Shin Ise
MediaLibrary で あそぼう
MediaLibrary で あそぼう
Shin Ise
実践 Reactive Extensions
実践 Reactive Extensions
Shin Ise
Socketプログラム Silverlight for Windows Phoneへの移植のポイント
Socketプログラム Silverlight for Windows Phoneへの移植のポイント
Shin Ise
Macで使うWindows Phone 7
Macで使うWindows Phone 7
Shin Ise
Galaxy tab で持ち歩くモバイルサーバー
Galaxy tab で持ち歩くモバイルサーバー
Shin Ise
ハブインテグレーションでWindows Phone 7の世界に溶け込むアプリを作る
ハブインテグレーションでWindows Phone 7の世界に溶け込むアプリを作る
Shin Ise
Windows Phone 7 に向けてクラウドを準備
Windows Phone 7 に向けてクラウドを準備
Shin Ise
Windows Phone 7 + iTunes
Windows Phone 7 + iTunes
Shin Ise
C#でiPhone開発とか
C#でiPhone開発とか
Shin Ise
C#でiPhoneアプリ開発 with MonoTouch
C#でiPhoneアプリ開発 with MonoTouch
Shin Ise
Plus de Shin Ise
(20)
いまどきのiOSプログラミング with Xcode5
いまどきのiOSプログラミング with Xcode5
すまべんLite@関西#4
すまべんLite@関西#4
すまべんLite@関西#3
すまべんLite@関西#3
すまべんLite@関西#2
すまべんLite@関西#2
すごいHaskell読書会#10
すごいHaskell読書会#10
音声APIを使ってみる
音声APIを使ってみる
すまべんLite@関西#1
すまべんLite@関西#1
Xamarin2.0であそぼう
Xamarin2.0であそぼう
CoreBluetoothでつくるBluetooth Low Energyデバイス
CoreBluetoothでつくるBluetooth Low Energyデバイス
すごいHaskell読書会 in 大阪 #4 「第6章 モジュール」
すごいHaskell読書会 in 大阪 #4 「第6章 モジュール」
MediaLibrary で あそぼう
MediaLibrary で あそぼう
実践 Reactive Extensions
実践 Reactive Extensions
Socketプログラム Silverlight for Windows Phoneへの移植のポイント
Socketプログラム Silverlight for Windows Phoneへの移植のポイント
Macで使うWindows Phone 7
Macで使うWindows Phone 7
Galaxy tab で持ち歩くモバイルサーバー
Galaxy tab で持ち歩くモバイルサーバー
ハブインテグレーションでWindows Phone 7の世界に溶け込むアプリを作る
ハブインテグレーションでWindows Phone 7の世界に溶け込むアプリを作る
Windows Phone 7 に向けてクラウドを準備
Windows Phone 7 に向けてクラウドを準備
Windows Phone 7 + iTunes
Windows Phone 7 + iTunes
C#でiPhone開発とか
C#でiPhone開発とか
C#でiPhoneアプリ開発 with MonoTouch
C#でiPhoneアプリ開発 with MonoTouch
iOSのVoiceOver対応開発
1.
iPhoneアプリの VoiceOver対応開発
伊勢 シン スマートフォン勉強会@関東#13
2.
自己紹介 • 伊勢 シン
といいます! – あれ、なんで僕2回連続で関東にいるの・・・? • スマートフォン勉強会の関西代表やってます。 • 大阪でスマートフォンのアプリ作っています – iPhoneアプリのビルド待ちしている間に、 Androidアプリを書くとかそういうお仕事
3.
自己紹介 • 趣味でもスマートフォンアプリ作ってます。 • 趣味で作った主なプロダクト
– EbIRC – ZEROProxy – Giraffe – SongTweeter • Microsoft MVPでもある – Microsoft MVP for Windows Phone (Oct 2009 - Sep 2011) – でも今日はiPhoneのお話。ちなみに前回はAndroid。
4.
おしながき • 開発者にとってアクセシブルにするメリットとは –
普通に作ったらVoiceOverで悲しい事態に! • アクセシビリティサポート 実際のところ – VoiceOverアクセシビリティ要素の基本 – アクセシビリティ簡単対応 – 独自描画コントロールのアクセシビリティ対応 • アクセシビリティ属性の指定の仕方 • アクセシビリティのデバッグ
5.
アクセシビリティサポートをするメリット
6.
なぜアクセシビリティサポートが重要か • ユーザー層の拡大 –
今まで使うことができなかった人たちへリーチ – より多くの人にアプリを使ってもらう機会ができる • アクセシビリティガイドラインへの対応 – 政府機関によって発行されている アクセシビリティガイドラインへ対応することができる。 • “正しいことである”
7.
あなたのアプリはVoiceOverで使えますか? • アプリ開発者の皆さん、VoiceOverでテストしてます
か? – 設定>一般>アクセシビリティ>VoiceOver – ホームトリプルクリックでVoiceOver切り替えにできる • 変な英語が読み上げられていたりしませんか? • 使えない機能が存在してたりしていませんか? • 自分のアプリに「みっともない」側面を残さないために も、アクセシビリティサポートしておきたい
8.
みっともない事例 1 • 画像ボタンにアクセシビリティ属性指定しないと、
画像ファイル名を読み上げてしまう! – 伊勢的VoiceOverみっともない事例遭遇率第1位 • 例:btn_hoge.png という画像をボタンにすると 「びー てぃー えぬ ほーじ ボタン」と読み上げられる。 何も指定されていないから 画像ファイル名が採用されている
9.
みっともない事例 2 • VoiceOver使ってる状況下
では全く使えなくなってしまう 機能もある – VoiceOver環境下では スクロール系の機能が 弱いことに注意 – はみ出す領域への引っ張りが サポートされないので、 Pull to Refreshは 一切使えない。
10.
Interface Builderで簡単にできるので • 恥ずかしい思いをする前に対応しましょう。
11.
アクセシビリティサポート実装 実際のところ
12.
UIAccessibility、5つの基本要素
Label Valu Traits e UIAccessibility Hint Frame
13.
5つの特性 種類
内容 Label ボタンの名前とか。文字列。 (ラベル) 「追加」「削除」 Traits コントロールの種類や、選択状態とか。定数から指定。 (特性) 「ボタン」「リンク」「テキストフィールド」「選択中」 Frame その項目のスクリーン上の絶対位置。CGRectで指定。 (フレー コントロールの場合はframeプロパティそのもの。 ム) Hint そのコントロールを使うと何が起こるのかを説明。文字列。 (ヒント) 特段必要でなければ設定されていないようです。 Value そのコントロールがどの値を示しているか。スライダーなどで利用。 (値) 文字列。「50%」
14.
Demo • 簡単に設定できる方法でオブジェクトに
アクセシビリティ属性を追加してみます • カスタムドロークラスの内包しているオブジェクトに アクセシビリティ属性を指定してみます
15.
Interface Builderで簡単に設定するには • Interface
Builderでプロパティをちゃんと指定する – 普通はこれだけで事足りる 画像ボタンにもTitleを指定する、等
16.
Interface Builderで簡単に設定するには • 詳細に指定するならIdentity
inspectorで設定 属性ごとに 入力があります
17.
カスタムドロークラスでの使用 • drawRectで中身を全部描画してる時などは、カ
スタムドローUIViewで UIAccessibilityContainer を実装する – accessibilityElementCount, accessibilityElementAtIndex, indexOfAccessibilityElement を実装 – NSArrayをつくっておき、上記3つのメソッドに委譲
18.
カスタムドロークラスでの使用 • すべてのオブジェクトがすでにUIAccessibilityを
実装しているのでオーバーライドする • accessibilityFrameはスクリーン上の座標なの で変換が必要
19.
UITableViewCell で気をつけること • セルの中に複数のViewが含まれている場合、
子の要素はアクセシビリティ無効にしておく。 – その要素にフォーカスが当たって残念なことに • UITableViewCellのaccessibilityLabelメソッドをオー バーライドして、そのセル全体を読み上げるようにする 内部のビューは アクセシビリティ属性無効にしておく 伊勢的新常識 10 伊勢的新常識 お気に入り 10件の未読項目
20.
アクセシビリティ属性の指定の仕方
21.
正しい情報を提供しましょう • ここまででアクセシビリティ属性の指定が
できるようになりました。 • どのような属性情報を指定すれば良いのでしょう か。 • 属性指定の基本は「短く」「正しく」「役に立つ」 – 特にLabelとHintの指定は気をつけたい
22.
Labelの指定 • 短く、わかりやすく。 –
なるべく1つの単語ですむように指定する – ただし、同じ画面に2つ以上の同じ機能がある場合 は「〜を追加」みたいにする • コントロールの種類を含めないこと – 「追加ボタン」とLabelを指定すると、Traitsとあわせて 「追加ボタンボタン」と読み上げられてしまう • 英語の場合先頭は大文字にする – 抑揚の制御に使われる • Labelの末尾にピリオドは付けない。
23.
Hintの指定 • 必要なときに指定する • そのコントロールを使用したときに何が起こるかを
「非常に簡潔に」説明 – 「曲を再生します」「コメントを送信します」など – 名前をつけないこと (「戻る ボタン 戻るを押すと〜」と冗長になってしまう) – 「タップすると〜」といった操作方法の説明は付けないこと (混乱のもとになる) • 英語の時は以下の点にも注意 – 複数形で始める (命令っぽさをなくす) – 先頭大文字と末尾のピリオドは省略するのは Labelと同じ
24.
Traitsの指定 • 以下の属性から複数指定できる –
「Not Enabled」な「Button」なども表せる ■ Button ■ Plays Sound ■ Link ■ Selected ■ Search Field ■ Summary Element ■ Keyboard Key ■ Updates Frequently ■ Static Text ■ Not Enabled ■ Image ■ None
25.
アクセシビリティのデバッグ
26.
シミュレータを使ったデバッグ • iOSシミュレータで設定されている
アクセシビリティ属性を見ることが できます。 • iOSシミュレータで以下の場所に。 設定 >一般 >アクセシビリティ >アクセシビリティインスペクタ
27.
シミュレータを使ったデバッグ • クリックすると指定してある
アクセシビリティ属性が 表示される • ただし読み上げされないので、 最終的に実機デバッグが 必要なのは他の機能と同じ
28.
まとめ • 新たなユーザーへリーチするため、自分のアプリの
死角をなくすため、アクセシビリティ対応をしましょ う。 • ツール系アプリならInterface Builderで簡単にで きます。 • 属性設定は「短く」「正しく」「役に立つ」ようにする
29.
参考資料 • iOSアクセシビリティプログラミングガイド –
http://developer.apple.com/jp/devcenter/ios/lib rary/documentation/iPhoneAccessibility.pdf
30.
おまけ • ところでVoiceOverが有効かどうかが知りたい –
UIAccessibilityIsVoiceOverRunning 使えばいい よ BOOL UIAccessibilityIsVoiceOverRunning(); • ステータスの変化はNSNotificationCenterで UIAccessibilityVoiceOverStatusChanged を監視すればOK。
Télécharger maintenant