Независимо от того, что я пытаюсь, я не могу удержать свой пользовательский UITableViewCell от действия , как это должно в соответствии с правилами по умолчанию для UIAccessiblity. Я не хочу, чтобы эта ячейка действовала как контейнер доступности (per se), поэтому, следуя этому руководству , я смогу сделать все мои подвиды доступными, верно ?! В нем говорится, чтобы сделать каждый элемент доступным отдельно и убедиться, что сама ячейка недоступна.
- (BOOL)isAccessibilityElement
{
return NO;
}
- (NSString *)accessibilityLabel
{
return nil;
}
- (NSInteger)accessibilityElementCount
{
return 0;
}
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier //cells use this reusage stuff
{
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier])
{
[self setIsAccessibilityElement:NO];
sub1 = [[UILabel alloc] initWithFrame:CGRectMake(0,0,1,1)];
[sub1 setAccessibilityLanguage:@"es"];
[sub1 setIsAccessibilityElement:YES];
[sub1 setAccessibilityLabel:sub1.text]
sub2 = [[UILabel alloc] initWithFrame:CGRectMake(0,0,1,1)];
[sub2 setAccessibilityLanguage:@"es"];
[sub2 setIsAccessibilityElement:YES];
[sub2 setAccessibilityLabel:sub2.text]
Система закадрового перевода считывает содержимое всей ячейки одновременно, хотя я пытаюсь остановить это поведение. Я мог бы сказать
[sub2 setIsAccessibilityElement:NO];
но это сделало бы этот элемент совершенно нечитаемым. Я хочу, чтобы он был читабельным, но чтобы вся ячейка не воспринималась как контейнер (и предполагается, что это английский язык). Там, кажется, не так много информации об этом, так что, по крайней мере, я бы хотел это задокументировать.