繁体   English   中英

更改UITextField可访问性描述

[英]change UITextField accessibility description

有没有办法将UITextField的可访问性标签设置为“文本字段”以外的其他标签。 因此,我不想调用“文本字段”,而是将其命名为“代码验证字段”。

我的建议是不要试图在内置Voice Over输出上超越系统。

“文本字段正在编辑”对于盲人用户来说,听觉相当于“此项目被选中并且其中有一个闪烁的光标”。

与您不太可能从UITetxtField中删除/更改闪烁光标相同,您不应尝试删除/更改内置输出。

您可以随意使用accessibilityLabelaccessibilityHint为此字段添加更多上下文。

如何安静的“文本字段”和替代它的选项

我发布了一个相关的答案 ,说明了阻止VoiceOver宣布UITextField的“文本字段”的几种方法。

这是该答案的代码摘录。

平息“文本字段”

let textField = UITextField()
textField.accessibilityTraits = UIAccessibilityTraitStaticText

替换文字

您可以使用accessibilityHint作为您想要的“代码验证字段”的备用控件名称

textField.accessibilityHint = "code verification field"

accessibilityLabel也可以。 实际的区别是首先读取accessibilityLabel ,然后是textField.text (在UITextField中输入的文本),然后是accessibilityHint

以下内容读作:“标签,文字,(短暂暂停...)提示”

textField.accessibilityTraits = UIAccessibilityTraitStaticText
textField.accessibilityLabel = "label"
textField.text = "text"
textField.accessibilityHint = "hint"

您可以在Apple的API参考中找到有关UIAccessibility Element属性的更多信息。

我相信你必须设置字段的accessibilityLabel属性( UIAccessibility协议的一部分)。 也许您还必须使用accessibilityTraits属性来覆盖UIKit标签。

据我所知,当它是一个文本字段时,Voice over读取accessibilityLabel,accessibilityHint,“文本字段正在编辑”。 在更改特征之前无法更改此设置。

您可以将特征更改为UIAccessibilityTraitNone ,因此它不会读作“textfield is editing”。

用一些当前的建议更新这个问题。

除了它提供的可访问性属性之外,覆盖UIKit的默认可访问性处理是不合适的。 使用accessibilityLabel,accessibilityHint,accessibilityTraits等。

UITextField内置可访问性并处理角色和状态信息,为VoiceOver用户提供一致且强大的体验。 您可以使用accessibilityTraits禁止某些VoiceOver公告,但这并不意味着您应该这样做。

在这种情况下最合适的做法是简单地设置一个合适的标签:myTextField.accessibilityLabel =“Code verification”

这将导致VoiceOver宣布“代码验证,文本字段,正在编辑”,这是用户期望听到的内容。

请注意,accessibilityHint可以由用户关闭,因此不应将此属性用于基本消息传递或信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM