当在跳板上使用语音转换时,当选择屏幕底部的UIPageControl时,VoiceOver会宣布类似“第1页,共5页可调整”的内容.并且用户可以向上和向下滑动以更改页面.
在我的应用程序中,我没有得到“可调整”部分,并且无法通过滑动更改页面.
我有什么想法解决这个问题?它显然会破坏应用程序的可用性.
解决方法
我已经将UIPageControl子类化并覆盖-accessibilityTraits getter以返回UIAccessibilityTraitAdjustable,将Voice Over读为“可调”.
要添加操作:实现UIAccessibilityAction类别中指定的-accessibilityIncrement和-accessibilityDecrement方法.
由于我的页面响应了UIControlEventValueChanged事件,因此我也确保为此事件发送操作.
示例代码
@interface AccessibleUIPageControl : UIPageControl @end @implementation AccessibleUIPageControl - (UIAccessibilityTraits)accessibilityTraits { return super.accessibilityTraits | UIAccessibilityTraitAdjustable; } - (void)accessibilityIncrement { self.currentPage = self.currentPage + 1; [self sendActionsForControlEvents:UIControlEventValueChanged]; } - (void)accessibilityDecrement { self.currentPage = self.currentPage - 1; [self sendActionsForControlEvents:UIControlEventValueChanged]; } @end