ios - 可访问性无法在 ios 中更改文本视图的高度约束时正常工作
问题描述
我正在为我的应用程序添加辅助功能支持,并且有一种情况是我将 TextView 的高度约束更改为 0 和 44。我在高度为 0 时禁用辅助功能,反之亦然。但是这样做时,当高度变为 44 时,即使 ; 的可访问性为 ON UITextView
。UITextView
除非我关闭和打开辅助功能,否则辅助功能光标永远不会指向。
禁用/启用可访问性,隐藏可访问性元素
textView.accessibilityElementsHidden = true
textView.disableAccessibility()
解决方案
Button H 0
导致 textview 高度为零并禁用 textview 可访问性,同时Button H 44
导致 44 textview 高度并启用 textview 可访问性。
对应的代码(Swift 5.0、iOS 12)定义如下:
class SOFViewController: UIViewController {
@IBOutlet weak var myTextView: UITextView!
@IBOutlet weak var heightConstraint: NSLayoutConstraint!
// Action for "BUTTON H O"
@IBAction func heightIsZero(_ sender: UIButton) {
heightConstraint.constant = 0
myTextView.isAccessibilityElement = false
}
// Action for "BUTTON H 44"
@IBAction func heightIsNotZero(_ sender: UIButton) {
heightConstraint.constant = 44
myTextView.isAccessibilityElement = true
}
}
- 双击
Button H 0
以禁用 textview 可访问性并将其高度设置为 0。 - 选择下一个元素以检查是否仍然可以在 textview 上获得焦点,尽管它的高度为零。
- 双击
Button H 44
以启用 textview 可访问性并将其高度设置为 44。 - 选择上一个元素以检查 textview 是否可以聚焦。
- 焦点放在文本视图上,而不打开/关闭 VoiceOver。
根据这个原理,您可以注意到VoiceOver 在更改 iOS 中 textview 的高度约束方面工作正常。
推荐阅读
- sql-server - SET DATEFIRST CURSOR WHILE LOOP 错误 - 设置选项已更改
- r - 使用带有长变量列表的 R 函数 nls
- jquery - How to make bold a particular word that has #bold word Jquery
- vba - ms-access If Else statement in VBA
- sql-server - Queries fired on Partition Table are slower
- python - UnicodeDecodeError:“ascii”编解码器无法解码位置 118374 中的字节 0xef:序数不在范围内(128)
- python - Python script issue posting JSON to ACF to REST API
- jquery - How to read/fetch file from jquery plugins
- java - Can't set CORS headers
- c# - represent tree data structure with multiple parents whose parent path is stored in model