10

私は私がUITableView組み込んだものを持っていloadViewます。私が行うことの1つは、テーブルヘッダーとして機能するをloadView作成し、それに詰め込むことです。画像ビューには定型化されたタイトルの画像が含まれているため、VoiceOverユーザー向けのユーザー補助ラベルを追加したいと思います。ただし、VoiceOverでラベルを読み取るために画像に「フォーカス」を合わせることができず、アクセシビリティインスペクタがシミュレータで画像をクリックしても応答しません。私の(省略された)コードは次のとおりです。UIViewUIImageView

... in -loadView ...
// Make header view
UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(...)];
UIImageView *titleImageView = [[UIImageView alloc] initWithImage:[self titleImage]];
titleImageView.accessibilityLabel = [self accessibilityLabelForTitleImage];
[headerView addSubview:titleImageView];

// Make table view
self.tableView = [[UITableView alloc] initWithFrame:CGRect(...) style:UITableViewStylePlain];
self.tableView.tableHeaderView = headerView;
... code continues ...

gdbにステップスルーしaccessibilityLabelForTitleImage、文字列を返します。po [titleImageView accessibilityLabel]正しい文字列を出力しますが、それでも画像ビューに焦点を合わせることができません。ビュー自体が表示され、必要に応じて応答することに注意してください。

私は何かが足りないのですか?VoiceOverに画像ビューを確認させる方法はありますか?

4

3 に答える 3

18

ボイスオーバーでは、要素にアクセスできるようにするために:-

  1. setIsAccessibilityElementプロパティをtrueに設定する必要がありますが、これはコードにはありません。

  2. もう1つの重要な点は、子要素(サブビュー)にアクセスできるようにするには、親にアクセスできないようにしながら、子要素(サブビュー)に個別にアクセスできるようにする必要があることです(これも指定する必要があります)。

  3. カスタムセルにUIAccessibilityContainerプロトコルを実装します。

続ければ大きな話になります。このアクセシビリティの声をアップルで参照してください。

お役に立てれば。

于 2012-05-17T20:46:43.367 に答える
5

iOSアプリのテストにKIFを使用しました。テーブルビューでは、tableview.accessibilityLabelではなくtableview.accesssibilityIdentifierに値を割り当てました。それは私のために働いた。試してみませんか?

于 2014-06-05T03:16:18.273 に答える
0

吹き替えは時々不快になり、設定するだけでisAccessibilityElementはうまくいかない場合があります。

この場合accessibilityElements、次のように、親ビューに設定して、配列に子ビューを含めてみてください。

parentView.accessibilityElements = [childView1, childView1, childView1]

これを行うと、アクセシビリティ項目が希望の順序で読み取られるようになります。

于 2018-04-11T14:50:24.213 に答える