Специальные возможности VoiceOver в пользовательском представлении, как в представлении коллекции - PullRequest
0 голосов
/ 13 сентября 2018

В данный момент я работаю над пользовательским просмотром.

Мне нужно добиться поведения VoiceOver, как в стандартном UICollectioView. Когда при переводе фокуса с элемента, находящегося за пределами иерархии моего пользовательского представления, на элемент, находящийся в иерархии, VoitserOver считывает accessibilityLabel пользовательского представления, а затем accessibilityLabel выбранного представления

@interface FBMinimizedPlayerControlPanelView ()

@property (nonatomic, strong) ImageView *artworkView;
@property (nonatomic, strong) UILabel *titleLabel;
@property (nonatomic, strong) UILabel *subtitleLabel;
@property (nonatomic, strong) ImageContainer *togglePlayPauseButton;

@end

@implementation FBMinimizedPlayerControlPanelView

- (instancetype)initWithFrame:(CGRect)frame {

    self = [super initWithFrame:frame];
    if (self) {
        [self setUp];
    }

    return self;
}

- (void)setUp {

//    self.isAccessibilityElement = YES;
    self.accessibilityLabel = @"Miniplayer.";
    self.accessibilityHint = @"Double tap to expand the miniplayer.";
//    self.accessibilityElementsHidden = YES;

//set up code 

    [self.togglePlayPauseButton configureWithAccessibilityLabel:@"Play" forState:BEToggleButtonStateSelected];
    [self.togglePlayPauseButton configureWithAccessibilityLabel:@"Pause" forState:BEToggleButtonStateNormal];

}

- (nullable NSArray *)accessibilityElements {


    return @[self.togglePlayPauseButton];
}

@end

А теперь, когда я включаю VoiceOver, кнопка паузы / воспроизведения только для чтения, но я хочу, чтобы поведение было таким же, как в UICollectionView, где в начале читается accessibilityLabel из collectionView, а затем элемент accessibilityLabel.

Например: collectionView accessibilityLabel: "collectionView", метка контента ячейки accessibilityLabel: "метка контента ячейки",

В ситуации, которую я описал выше, VoiceOver выделяется красным цветом: «collectionView, метка содержимого ячейки» (только если предыдущий фокус не был подпредставлением из collectionView);

1 Ответ

0 голосов
/ 23 октября 2018

Чтобы быть хорошо проанализированным VoiceOver, представление коллекции может рассматриваться как массив, который должен быть пройден после определения с помощью признака adjustable.

Каждый элемент представления коллекции должен быть определен какUIAccessibilityElement.

Чтобы понять, как это должно быть реализовано, я предлагаю вам взглянуть на WWDC 2018 - Deliver an exceptional accessibility experience видео, содержание которого идеально обобщено здесь и чей представленный пример может быть скачано .

...