1

2 つのビューのいずれかを含むことができる UIView があります。removeFromSuperview の最初のビューと addSubview の 2 番目のビューを削除すると、非表示のビューの accessibiliyLabel が引き続き聞こえます。そして 1 ~ 2 秒で、正しい accessibiilityLabel を聞くことができます。ビューの非表示状態が変更され、アクセシビリティに不満があり、非表示のビューを話し続け、表示されているビューに注意しないというのはよくあることだと思います。また、UITableViewCell で UIButton が非表示になっていて、非表示の状態が NO に変わった場合、VoiceOver はまだ非表示であるかのようにそれを無視します。上記の問題を解決するには、セルの UIAccessibilityContainer プロトコルを手動で実装する必要があります

この問題を解決できる通知はありません。accessibilityElementsHidden で遊んでも役に立ちませんでした。数日間これに苦労しています

ビューの階層が変更されたアクセシビリティと言う方法はありますか?

4

2 に答える 2

2

サードパーティのサイド メニュー ライブラリを使用して自分でこれに遭遇し、accessibilityElementsHidden を使用して修正する必要がありました。私は最初に accessibilityViewIsModal プロパティを利用しようとしましたが、それは兄弟ビューでしか機能しません。

#pragma mark - IIViewDeckControllerDelegate

- (void)viewDeckController:(IIViewDeckController *)viewDeckController didOpenViewSide:(IIViewDeckSide)viewDeckSide animated:(BOOL)animated
{
    if (viewDeckSide == IIViewDeckLeftSide) {
        [self.topViewController.view endEditing:YES];
        self.viewDeckController.leftController.view.accessibilityElementsHidden = NO;
    }
}

- (void)viewDeckController:(IIViewDeckController *)viewDeckController didCloseViewSide:(IIViewDeckSide)viewDeckSide animated:(BOOL)animated
{
    self.viewDeckController.leftController.view.accessibilityElementsHidden = YES;
}
于 2013-07-03T22:19:36.127 に答える