setting an accessibilityLabel on a UIImageView contained in UITableView header
Solution 1
In Voice-Over , in order to make an element accessible :-
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.
It will be a big story if i go on .Please refer this Accessibility voice over by apple.
Hope this helps.
Solution 2
I used KIF for testing my IOS app. In my tableview, I assigned value to tableview.accesssibilityIdentifier instead of tableview.accessibilityLabel. It worked for me. Wanna give it a try?
Comments
-
kevboh almost 2 years
I have a
UITableView
that I build inloadView
. One of the things I do inloadView
is create aUIView
to act as the table header and stuff aUIImageView
into it. The image view contains an image that is a stylized title, so I want to add an accessibility label for VoiceOver users. However, I can't get VoiceOver to "focus" on the image in order to read the label, and the Accessibility Inspector doesn't respond to clicking on the image in the simulator. My (abbreviated) code follows:... 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 ...
I've stepped through in gdb and
accessibilityLabelForTitleImage
returns a string.po [titleImageView accessibilityLabel]
prints out the correct string, but I'm still unable to focus on the image view. Note that the views themselves appear and respond as appropriate.Am I missing something? Is there a way to force VoiceOver to acknowledge an image view?
-
kevboh about 12 yearsSetting
isAccessibilityElement
to true did it. I read through the docs—can't believe I missed it. Thanks!