2011-10-07 8 views
5

私は、UIScrollViewにアクセシビリティラベルまたはアクセシビリティを設定できるアクセシビリティ領域について言及していないことに気付きました。これは活動指標にも当てはまるようです。UIScrollviewにInterface Builderのアクセシビリティ領域がないのはなぜですか?

UIScrollViewとUIActivityIndi​​catorViewではなく、なぜUIVIews、UIButtonsなどにこの領域があるのですか?

答えて

8

スクロール表示の理由は、アップルはそれがアクセス可能な要素ではないと考えているからです。

あなたはUIAccessibilityドキュメントを見れば、あなたがアップルを見つけることができます「アクセス要素」として数えるものに言って、次のいます

この唯一の例外[アクセス可能なビュー]がありますアクセス可能でなければならない他のアイテムのためのコンテナとしてのみ機能するビュー。このようなビューでは、UIAccessibilityContainerプロトコルを実装し、このプロパティをNOに設定する必要があります。 (あなたがインターフェイスビルダーでのアクセシビリティオプションが表示されていないので、なぜ)そのisAccessibilityElementプロパティがnoに設定されているので、

UIScrollViewは、単純にサブビューのコンテナです。

基本的に、スクロールビューを使用しているときは、の中の項目にはアクセスできますが、スクロールビュー自体にはアクセスできません。

+1

ありがとうございました!これは、UIAutomationを使用している私の別の問題を実際に解決しました。 :-) – MdaG

+0

これはiOS 9ではこれ以上は関係ありません.AIをスクロール表示に追加することができます – konradowy

0

UIScriptViewのUIAutomationアクセシビリティラベルの詳細を追加するには、ScrollViewのインデックスを使用してスクロールビューのサブビューにアクセスする必要があります。例:

target.frontMostApp().mainWindow().scrollViews()[0].buttons()["logoutButton"].tap(); 

注:仮定は「logoutButtonは」ログアウトボタン用のアクセシビリティラベルであり、それは、スクロールビューのサブビューであるということです。