установка accessibilityLabel для UIImageView, содержащегося в заголовке UITableView

у меня естьUITableView что я строю вloadView, Одна из вещей, которые я делаю вloadView это создатьUIView выступать в качестве заголовка таблицы и заполнитьUIImageView внутрь. Представление изображения содержит изображение в виде стилизованного заголовка, поэтому я хочу добавить метку доступности для пользователей VoiceOver. Однако я не могу настроить VoiceOver на "фокус" на изображении, чтобы прочитать этикетку, и инспектор доступности не реагирует на нажатие на изображение в симуляторе. Мой (сокращенный) код выглядит следующим образом:

... 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 подтвердить просмотр изображения?

 kevboh17 мая 2012 г., 22:30
Нет. Я не осознавал, что VoiceOver считается взаимодействием таким образом. Позвольте мне попробовать это ...
 Abhishek Singh17 мая 2012 г., 22:30
Ты сделал это? imageView.userInteractionEnabled = YES;
 Abhishek Singh17 мая 2012 г., 22:42
для вашего uiimageview и метки .. установите setIsAccessibilityElement в true
 kevboh17 мая 2012 г., 22:32
Нет, настройкаuserInteractionEnabled ДА (как для вида изображения, так и для его родителя) не позволяет мне сосредоточиться.
 Abhishek Singh17 мая 2012 г., 22:40
UIAccessibility apple прочитайте это и проверьте рамку доступности и все

Ответы на вопрос(3)

Я использовал KIF для тестирования своего приложения IOS. В моем табличном представлении я присвоил значение tableview.accesssibilityIdentifier вместо tableview.accessibilityLabel. Это сработало для меня. Хотите попробовать?

Голос за кадром иногда может стать неприятным и просто установивisAccessibilityElement может не сработать.

В этом случае попробуйте настройкуaccessibilityElements на родительском представлении и включите дочерние представления в массив, например так:

parentView.accessibilityElements = [childView1, childView1, childView1]

Это также гарантирует, что элементы доступности читаются в нужном вам порядке.

Решение Вопроса

В Voice-Over, чтобы сделать элемент доступным: -

you have to set setIsAccessibilityElement property as true which i don't find in your code.

The other important point is that to make child elements (subviews) to be accessible , you have to seperately make them accessible while the parent should not be accessible(you have to specify this also).

Implement the UIAccessibilityContainer Protocol in your custom - cell.

Это будет большая история, если я продолжу. Пожалуйста, отошлите этоДоступность голос за яблоком.

Надеюсь это поможет.

 17 мая 2012 г., 23:00
Бывает иногда ... удачи кстати
 kevboh17 мая 2012 г., 22:59
настройкаisAccessibilityElement правда сделал это. Я прочитал документы, не могу поверить, что пропустил это. Спасибо!

Ваш ответ на вопрос