如何在 UITableView 中的自定义部分标题视图上设置可访问性标识符?
作为背景,由于在 UIAutomation 中记录表视图的元素树会生成与表组元素 (UIATableGroup) 混合的表单元格 (UIATableCell 实例) 的平面列表,因此能够识别组可以更容易地识别属于那些的单元格组(因为它们按顺序返回)。
如果我在作为节标题视图返回的自定义视图上显式设置了accessibilityIdentifier,我可以确认该视图上确实设置了accessibilityIdentifier 属性。
这是提供自定义部分标题视图的方法(当然,它确实显示在我的实际表格视图中):
- (UIView *)tableView:(UITableView *)tableView
viewForHeaderInSection:(NSInteger)sectionNumber
{
UIView *headerView = [self someMethodToRetrieveHeaderView];
// This line is logging that indeed, the accessibility identifier is set.
NSLog(@"Header view accessibility identifier is: '%@' for section number: %d",
headerView.accessibilityIdentifier, sectionNumber);
return headerView;
}
问题在于,当我logElementTree()
在针对此表视图的 UIAutomation 测试中使用 JavaScript 发出调用时,它会返回一个 UIATableGroup 元素,该元素的名称源自该部分标题视图内的文本内容(即回退到 UIAccessibilityLabel 启发式)。因为该节标题中有一个分段控件,所以我得到不一致的可访问性标签值。因此,我希望绕过所有这些并分配一个明确的标识符。
如何强制我自己的显式可访问性标识符显示为 UIATableGroup 的 name 属性?