UIAccessibility TableView 滚动问题

3
我已经为自定义表视图实现了辅助功能。我启用了所有单元格子视图的辅助能力,如图像视图、标签、按钮、文本字段。
在实现辅助功能后,我遇到了两个问题。
1.由于辅助框架专注于表格视图单元格框架,所以其行为非常奇怪。它会根据选择使视图框架左右移动。
2.如果单元格数量较多,则滚动不起作用。只要单元格可见,辅助功能就可以正常工作。但是一旦焦点转移到不可见的单元格上,有时表格视图会根据语音输出的选择滚动,但效果不尽如人意。
我已经实施了以下方法。
-(BOOL)isAccessibilityElement
{
    return NO;
}

-(NSInteger)accessibilityElementCount
{
    return self.subviews.count;
}

-(id)accessibilityElementAtIndex:(NSInteger)index
{
    return [self.subviews objectAtIndex:index];
}

-(NSInteger)indexOfAccessibilityElement:(id)element
{
    return [self.subviews indexOfObject:element];
}

-(BOOL)shouldGroupAccessibilityChildren
{
    return YES;
}

我看到这些方法不能在视图控制器中使用,所以我正在单元格类中实现这些方法。

你有什么想法可以解决这个可访问性问题吗?请提供您宝贵的建议来帮助我。


你所说的自定义表格视图是什么意思?不是指UITableView吗? - David Rönnqvist
那么你在问题中提到的容器方法是在单元格类中实现的吗? - David Rönnqvist
子视图是您期望的标签等内容,而不是像backgroundView和containerView这样的东西吗? - David Rönnqvist
无障碍功能专注于像标签或按钮这样的子视图。但整个单元格的contentView会根据选择向右或向左移动。 - Rakesh iOS Dev
我通过删除所有上述方法来解决了此问题,并启用了单元格内容视图的可访问性。现在它运行良好,但VoiceOver不会按正确顺序阅读。我认为对于辅助功能用户,阅读顺序并不重要。 - Rakesh iOS Dev
显示剩余2条评论
1个回答

0

如果您的子视图(标签、按钮等)的框架超出了屏幕的大小,可能会出现问题#1。

验证这种情况的一种视觉方式是更改子视图的颜色:如果特定的子视图延伸超出其他视图,则会注意到可访问性焦点的转移。

减小子视图框架的大小以解决问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接