码:
override func viewDidLoad() {
...
NotificationCenter.default.addObserver(self, selector: #selector(closedCaptioningStatusChanged(_:)), name: .UIAccessibilityClosedCaptioningStatusDidChange, object: nil)
}
@objc func closedCaptioningStatusChanged(_ notif: NSNotification) {
print("closedCaptioningStatusChanged")
}
Run Code Online (Sandbox Code Playgroud)
我尝试更改可访问性和默认视频播放器中的CC设置.任何想法为什么closedCaptioningStatusChanged不被称为?
编辑:
UIAccessibility由于某种原因,不会调用所有设置的通知.有什么我不做的事吗?
编辑2:
我在模拟器和设备(Apple TV)上运行.我尝试更改辅助功能和AVPlayer中的CC设置,但它们都没有触发通知.
启用VoiceOver后,用户可以使用3指滑动手势滚动TableView.VoiceOver口头向用户宣布一个短语,表示他们在桌面视图上的位置,即可见的行,例如"第1行到第4行".
我想覆盖这个口头提示并获得画外音,向用户宣布其他内容.

我目前正在尝试在故事板中创建本地化的accessibilityLabel(我试图避免以编程方式进行).似乎每当我使用Localized String选项时,accessibilityLabels最终都被设置为我提供的本地化字符串键而不是字符串本身.有没有人有这个问题的解决方案?任何帮助将不胜感激.
interface-builder nslocalizedstring ios uiaccessibility ios7
画外音中有一个“容器”转子设置 - 它允许您快速浏览屏幕的“高级”部分(向上和向下滑动)。例如,在日历中,您有 3 个项目 - 导航栏、内容、工具栏。
我的应用程序使用自定义 UIView 子类,无论我尝试做什么 - 我的所有视图似乎都属于一个容器 - 所以我无法将它们拆分为逻辑部分。我尝试将它们放在实现 UIAccessibilityContainer 协议的单独视图中,并在这些父视图上设置一些可访问性属性。
有谁知道如何创建多个容器?
我有一个UITableView带有各种细胞的静电.我需要隐藏/显示其中的一些单元格,所以我已经实现heightForRowAtIndexPath并return 0在适当的时候隐藏正确的单元格.这对于有视力的用户非常有用,但对于那些使用VoiceOver的人来说,这些元素仍然可以突出显示,并且在不应该被访问时也可以访问.UITableViewCell当我将高度改为0时,如何确保不再可以访问这些?
我已经尝试将单元格设置为不是可访问元素,并将元素设置为隐藏但这对它没有影响.该单元格尚未被子类化 - 它只是一个UITableViewCell.我没有设置关于单元格的可访问性和单元格内容(textLabel,detailTextLabel)的任何内容.
不行诀:
self.cellToHide.isAccessibilityElement = NO;
self.cellToHide.accessibilityElementsHidden = YES;
Run Code Online (Sandbox Code Playgroud) 我希望我的QR码扫描应用程序在找到QR码时通知用户.对于有视力的用户,这可以使用底部的标签进行更新以通知用户.但是,盲人用户必须再次点击该标签才能通过Voice Over读取.我更喜欢它只是自动阅读.
我能找到的最接近这个问题的是 UIAccessibility - 从上到下阅读屏幕上的所有标签和按钮,这是不可能的.虽然这对我的应用来说不是好兆头,那是一年前的事.Apple是否以任何方式更新了它的UIAccessibility协议以允许此操作?
作为最后的手段,我想如果启用VoiceOver,我可以播放自己的mp3录音.
任何帮助是极大的赞赏!
我们有一个UILabel隐藏的登录屏幕,最初用于表示用户退出应用程序时的消息.
当在iOS中打开VoiceOver并且用户尝试从应用程序注销时,理想情况下应该读出注销消息标签.相反,它会读出登录屏幕的密码文本字段.
注销按钮的操作具有以下实现代码.
let loginStoryboard = UIStoryboard(name: "Login", bundle: nil)
let loginViewController = loginStoryboard.instantiateInitialViewController() as! LoginViewController
loginViewController.modalPresentationStyle = UIModalPresentationStyle.CurrentContext
loginViewController.logOut = true
self.presentViewController(loginViewController, animated: true, completion:nil)
Run Code Online (Sandbox Code Playgroud)
注销指示器设置为显示注销消息标签.
LoginViewController viewDidLoad码.
if(!logOut){
self.logOutMsg.hidden = true
}else{
self.logOutMsg.text = NSLocalizedString("LoggedOutMsg", comment: "Logged out message")
self.logOutMsg.hidden = false
}
Run Code Online (Sandbox Code Playgroud)
登录屏幕字段是故事板中启用的辅助功能.
行为不一致:有时会读取注销消息标签,有时会读出密码文本字段.每当VoiceOver读取密码文本字段时,我都会在控制台日志中看到错误.
|error| Could not find <UIWindow: 0x124d13b10; frame = (0 0; 768 1024); gestureRecognizers = <NSArray: 0x174241140>; layer = <UIWindowLayer: 0x1742319c0>> in a list of sorted view [parent: <CaseworkerApp.AppDelegate: 0x124e008e0>] siblings …Run Code Online (Sandbox Code Playgroud) 我有UIAlertController一个消息。我希望警报消息可访问性标签与警报消息字符串不同。
我怎样才能做到这一点?
我想添加accessibilityIdentifier一个React Native组件,以便我可以使用Xcode的UI测试来浏览我的应用程序.
有没有一种方法来指定accessibilityIdentifier(不是在accessibilityLabel为阵营母语)?
accessibility uiaccessibility react-native xcode-ui-testing react-native-ios
我正在开始研究可访问性,但我对遇到的不同技术感到有些困惑。
IAccessible 和 IAccessible2 有什么区别?我最初认为 IAccessible2 可能是 IAccessible 的更新版本,但经过进一步研究,它看起来实际上是由 Microsoft 的竞争对手制造的。维基百科说“它已被定位为微软新的 UI 自动化 API 的替代品。” MSAA 如何融入其中?
任何人都可以澄清 IAccessible、IAccessible2、UI 自动化 API 和 MSAA 之间的区别吗?为什么一个可能比另一个更可取?
uiaccessibility ×10
ios ×8
objective-c ×3
swift ×3
voiceover ×3
blind ×1
iaccessible ×1
ios7 ×1
react-native ×1
tableview ×1
tvos ×1
uia ×1
uitableview ×1