
如果同一篇文章提供中文、英文、日文版本,你會選擇看哪一個版本?
大家當然會選擇自己最熟悉的語言版本來閱讀吧。
試想像一下,如果這篇文章只能提供俄文版本,你的感受會如何?
你會否有種「得物無所用」的感覺呢?
原來在我們的身邊有一群視障朋友就經常遇到類似的問題。
或許你會問他們是如何使用 iPhone 呢?
iOS 以及 Mac OSX 也內置了一個名為 VoiceOver 的功能,簡單來說它會為視障朋友朗讀出畫面上的文字內容以及能夠使用的按鈕。視障朋友就能夠較為輕鬆地了解程式的操作方法以及讀取到程式提供的資訊了。
藉著 VoiceOver,開發者也能很方便地開發到適合視障朋友使用的 iOS Apps。
凡是有文字的,VoiceOver 也能自動朗讀得到的,包括內含文字的 UIButton、UITextView 以及 UIWebView 之類的東西...
而所有圖像類的按鈕以及資訊,VoiceOver 則不能自動朗讀,需要依靠開發者在背後加一點小東西便可。
這裏有一個範例:
accessibility.zip
在下載範例的同時可看看如何開啟及使用 VoiceOver:
Accessibility Solutions for iPhone
下載後,可開啟這個 project 看看。

然後嘗試在自己的設備執行這個 project

請打開 VoiceOver 並嘗試聆聽它對畫面上各項的描述。
在這個例子裏,Button1 以及 UITextView 內的東西完全聽到沒有問題,只有由圖案組成的 UIButton 讀不出甚麼來。
想讓 VoiceOver 讀到這個 Button 其實很簡單。
現在我們先回到 Xcode,然後打開 ViewController.xib

按 Objects 內的 closeButton 物件,然後打開 Identity inspector (option + command + 3)

大家會看見大部份的物件內,Accessibility 都是預設為 Enable 的。如果沒有選 Enable,VoiceOver 便不會朗讀出這個物件的。
現在我們試試在 Label 或 Hint 那一項輸入 "Close",再次執行程式,VoiceOver 便會讀出 "Close Button" 的了。
如果我們在 Traits 選項點選 Image,VoiceOver 便會朗讀 "Close Image" 的了。

其實只是一個好簡單的步驟就可以讓你的 Apps 支援無障礙科技了,何樂而不為?
最後也要為喜歡直接用 code 的朋友提供一些資料:
myButton.accessibilityElementsHidden = YES; (讓某些物件不被 VoiceOver 朗讀到)
myButton.accessibilityLabel = @"Label"; (設定物件的 Accessibility Label)
myButton.accessibilityHint = @"Hint"; (設定物件的 Accessibility Hint)
UIAccessibilityIsVoiceOverRunning (用作偵測是否正使用 VoiceOver 的 BOOL)
更詳細的資訊可參考 Xcode 內有關 Accessibility 的 Document。
想了解更多有關無障礙開發的資料可參考:
Accessibility Programming Guide for iOS
無障礙環境,由你我開始!
0 意見:
Post a Comment