アプリに VoiceOver サポートを追加しています。ここまでは順調ですが、UIAccessibilityScreenChangedNotification の後に最初に発話される要素を指定できるようにしたいと考えています。私はこれを行う方法を見たことがありません。何かを要約要素にすることは、実際にはそうではないようです。何か不足していますか?
4 に答える
これは常に完全に可能です。
次の行に沿って何かを書くだけです:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification,
self.myFirstElement);
}
@end
これは、UIAccessibilityScreenChangedNotification と UIAccessibilityLayoutChangedNotification の両方で機能します。詳細: http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIAccessibility_Protocol/Introduction/Introduction.html#//apple_ref/c/data/UIAccessibilityLayoutChangedNotification そしてここ: http://developer. apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/Accessibility/AccessibilityfromtheViewControllersPerspective.html#//apple_ref/doc/uid/TP40007457-CH2-SW1
Swift 5 の場合override func viewDidAppear(_ animated: Bool) {
UIAccessibility.post(notification: UIAccessibility.Notification.screenChanged,
argument: myFirstElement)
}
起動時にSummaryElement値を使用する以外に、読み取りの順序を指定するAPI値はないと思います。これは仕様によるものです。
そのため、UIKit要素またはカスタムコントロールの順序とデフォルトをテストする必要があります。これは、デザインによって異なるためです。また、アイテムをアクセス不可能な要素としてマークして、「読み取られない」ようにしたり、アクセス可能な要素をデフォルトで読み取ったり、アクセス可能な要素のコンテナをマークして、意図した相互作用をより適切に制御できるようにすることもできます。選択したアイテムを作成することが役立つかどうかはわかりません。
iOSでテストする前に、すでにアクセシビリティインスペクタを使用してアプリケーションをテストしていると思います。
このテーマに関する背景が必要な場合は、RuneのVoiceOverサポートの使用とGemmellのアプリのアクセシビリティを読む価値があるかもしれません。
UIAccessibilityAnnouncementNotification の使用はどうですか?