7

ここに画像の説明を入力してください

「2本指フリックダウン」ジェスチャが実行されたときに、iPadのアクセシビリティのVoiceOver機能が要素を読み取る順序を変更することは可能ですか?

3つのラベルとボタンを含む添付画像の場合、VoiceOverは次のように要素を読み取ります。

ラベル1->ラベル2->ボタン->ラベル3

順序をに変更できますか、

ラベル1->ラベル2->ラベル3->ボタン

4

4 に答える 4

15

この例でこれを実現する最も簡単な方法は、3つのラベルを透明なUIViewサブクラスに配置して、ラベルのコンテナーとして機能させることです。このサブクラスは、VoiceOverにその解釈方法を知らせるために適切に設定する必要があります。デプロイメントのターゲットがである場合はiOS6、このサブクラスの「アクセシビリティの子をグループ化する必要がある」という質問に答えることができます。

-(BOOL)shouldGroupAccessibilityChildren{
    return YES;
}

以下の場合、コンテナサブクラスにアクセシビリティ要素であるものだけが含まれるiOS6ことを除いて、より複雑になります。次のように実装できます。UIViewUILabels

-(BOOL)isAccessibilityElement{
    return NO;
}
-(NSInteger)accessibilityElementCount{
    return self.subviews.count;
}
-(id)accessibilityElementAtIndex:(NSInteger)index{
    return [self.subviews objectAtIndex:index];
}
-(NSInteger)indexOfAccessibilityElement:(id)element{
    return [self.subviews indexOfObject:element];
}

私はこのサンプルコードをテストしました、そしてそれはあなたが探していることをします、あなたが何か説明が必要な場合はコメントを追加してください。物事をよりアクセスしやすくするために常に喜んでお手伝いします。

于 2012-10-30T06:15:21.593 に答える
4

に設定してみshouldGroupAccessibilityChildrenましYESたが、うまくいきませんでした。

私にとってうまくいったのは、親ビューのアクセシビリティラベルを直接設定することでした(すべてのアイテムを1回の移動/ 1回のVoiceOverジェスチャで読み取る必要があるため)。

[cell setAccessibilityLabel:[NSString stringWithFormat:@"%@, %@", cityLabel, temperatureLabel]];

上記のコードスニペットは、Appleのドキュメント「テーブルビューセルのアクセシビリティの強化」からのものです。

于 2015-12-22T18:48:14.053 に答える
1

Swiftでは、IBOutletを親UIViewにアタッチしてから、shouldGroupAccessibilityChildrenをtrueに設定するだけで十分です。

abc.shouldGroupAccessibilityChildren = true

isAccessibilityElement = trueグループ化も設定しても効果がないことに注意しました。同様に、ストーリーボードまたはxibのアクセシビリティチェックボックスをオンにすると、グループ化が行われなくなります。

于 2017-10-31T16:52:34.827 に答える
0

絵コンテでできると思います。VoiceOverの順序は、ドキュメントのアウトライン内のビューの順序によって決まります。

ビュー階層内のビューを正しい順序でドラッグアンドドロップするだけです。

于 2015-02-16T13:20:29.580 に答える