アクセシビリティラベルはインターフェイスビルダーでのみ設定できますが、UIオートメーションでは、UI要素を取得するためにアクセシビリティ識別子が必要です。これを行う方法はありますか?
AccessibilityIndentifierは、Identity Inspectorタブの「User Defined Runtime Attributes」を使用してIBで設定できます。
キーパス:accessibilityIdentifier
タイプ:文字列
値:選択されたaccessibilityIdentifierテキスト
例えば。スクロールビューをアクセシビリティID「ScrollView」に設定:
注:これは、UIViewから継承するaccessibilityIdentifierプロパティを持つ項目でのみ使用できます。また、「キーパス」のタイプミスにより、アイテムが読み込まれたときに例外が発生する可能性があります。コンパイルの警告/エラーが表示されるとは思いません。
このページによると
UIAutomationは、accessibilityIdentifierが設定されていない場合はaccessibilityLabelを使用するため、今のところ代わりに使用できます。ユーザーがVoiceOverを使用している場合、ユーザーにはaccessibilityLabelが表示される(またはaudible)ので、これはおそらくベストプラクティスではありませんが、それでも問題ありません。人間にとって意味のあるラベル名を付けると、.
うまくいけば、Appleは将来的にIBにaccessibilityIdentifierを設定する方法を追加しますが、今のところ、コードで設定するか、ビュータグなどの他の何かを使用してビューのターゲットを設定する必要がありますオートメーション。
accessibilityIdentifier IOS 5.0以降にのみ適用されます。..参照してください...
IBOutletがないxibからテストしたいですか?もっと経験のある人が自分の考えを共有できますか?
これが私の見解です。 IBOutletをボタン/ラベル/ texBoxに割り当てない場合、またはこれが意味することは、コードから変更しないことです。コントロールは静的であり、Interface Builderで確認できます。コントロールにIBOutletを追加する場合、コードからacessibilityIdentifierを追加できます。