当可访问性元素设置为 false 时,画外音仍然突出显示栏按钮
Voice over still highlight bar button when accessibility element is set to false
在我的导航栏中,有一些栏按钮项。其中一个只显示带有应用程序徽标的图像,当用户单击它时没有任何操作。
启用画外音后,每次启动应用程序时,它都会说出按钮的标签和类型。
所以我尝试通过以下代码禁用它:
appIconButton.accessibilityElementsHidden = true
appIconButton.isAccessibilityElement = false
appIconButton.accessibilityValue = ""
appIconButton.accessibilityLabel = ""
appIconButton.accessibilityTraits = .notEnabled
然而,画外音仍然可以突出显示按钮,并说出变暗的按钮。我不知道我想念什么来防止画外音识别条形按钮。
导航栏中添加的UIBarButtonItem
属于私有class_UIButtonBarButton
(感谢Accessibility Inspector
举例) 例如,您不能随心所欲地处理视图。
就我个人而言,在处理导航栏时,我总是遵循 these instructions 包括 a11y 的自定义元素。
为了找出适合您初始情况的解决方案,我创建了一个空白项目,定义如下:
我把代码放在视图控制器中如下:
@IBOutlet weak var navBar: UINavigationBar!
@IBOutlet weak var myPlusButton: UIBarButtonItem!
@IBOutlet weak var myBackButton: UIBarButtonItem!
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
var a11yRightBarButton: UIBarButtonItem?
let a11y = UILabel()
a11y.text = "OK"
a11y.sizeToFit()
a11yRightBarButton = UIBarButtonItem(customView: a11y)
a11yRightBarButton?.isAccessibilityElement = false
//if true, the following attributes will be taken into account.
a11yRightBarButton?.accessibilityTraits = .button
a11yRightBarButton?.accessibilityLabel = "validate your actions"
navigationItem.setLeftBarButton(myBackButton, animated: false)
navigationItem.setRightBarButtonItems([myPlusButton,a11yRightBarButton!], animated: false)
navBar.setItems([navigationItem], animated: false)
}
... 我用 VoiceOver 得到了最终结果,没有读出也没有选择所需的元素 (“确定”按钮)。
在我的导航栏中,有一些栏按钮项。其中一个只显示带有应用程序徽标的图像,当用户单击它时没有任何操作。
启用画外音后,每次启动应用程序时,它都会说出按钮的标签和类型。
所以我尝试通过以下代码禁用它:
appIconButton.accessibilityElementsHidden = true
appIconButton.isAccessibilityElement = false
appIconButton.accessibilityValue = ""
appIconButton.accessibilityLabel = ""
appIconButton.accessibilityTraits = .notEnabled
然而,画外音仍然可以突出显示按钮,并说出变暗的按钮。我不知道我想念什么来防止画外音识别条形按钮。
导航栏中添加的UIBarButtonItem
属于私有class_UIButtonBarButton
(感谢Accessibility Inspector
举例) 例如,您不能随心所欲地处理视图。
就我个人而言,在处理导航栏时,我总是遵循 these instructions 包括 a11y 的自定义元素。
为了找出适合您初始情况的解决方案,我创建了一个空白项目,定义如下:
我把代码放在视图控制器中如下:
@IBOutlet weak var navBar: UINavigationBar!
@IBOutlet weak var myPlusButton: UIBarButtonItem!
@IBOutlet weak var myBackButton: UIBarButtonItem!
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
var a11yRightBarButton: UIBarButtonItem?
let a11y = UILabel()
a11y.text = "OK"
a11y.sizeToFit()
a11yRightBarButton = UIBarButtonItem(customView: a11y)
a11yRightBarButton?.isAccessibilityElement = false
//if true, the following attributes will be taken into account.
a11yRightBarButton?.accessibilityTraits = .button
a11yRightBarButton?.accessibilityLabel = "validate your actions"
navigationItem.setLeftBarButton(myBackButton, animated: false)
navigationItem.setRightBarButtonItems([myPlusButton,a11yRightBarButton!], animated: false)
navBar.setItems([navigationItem], animated: false)
}
... 我用 VoiceOver 得到了最终结果,没有读出也没有选择所需的元素 (“确定”按钮)。