寻找iOS VoiceOver辅助功能指南:当我点击文字时,它应该说多少?

时间:2018-06-20 15:34:26

标签: ios accessibility voiceover

我正在寻找有关在我正在开发的应用程序中点击某些文本时应让VoiceOver读取多少文本的任何特定准则(来自Apple或其他地方,而不是意见)。

当我点击标题时,它应该只读取标题还是应该读取该标题下面的部分?当我点击一个段落时,它应该阅读标题,然后阅读包含该段落的整个部分吗?在什么情况下,语音文字应提供比应用实际显示的更多或不同的信息?

(我不是问它做什么,而是问它应该做什么,因为作为开发人员,我可以设置项目的accessibilityLabel可以输入尽可能多的文字。)

我在https://developer.apple.com/library/archive/documentation/UserExperience/Conceptual/iPhoneAccessibility/Making_Application_Accessible/Making_Application_Accessible.html#//apple_ref/doc/uid/TP40008785-CH102-SW5中看不到任何相关内容。

3 个答案:

答案 0 :(得分:2)

您的链接似乎足够清楚,尤其是Supply Accurate and Helpful Attribute Information上的该节,其中包括以下内容:

  

确定标签应该传达什么的一种好方法是仅通过查看就可以看到有视力的用户对您的应用程序的推断。如果您设计了一个好的用户界面,那么有远见的用户应该通过阅读控件或视图的标题或理解其图标来了解控件或视图在当前应用程序上下文中的功能。这是您需要在label属性中提供给VoiceOver用户的信息。

     

如果您提供自定义控件或视图,或者在标准控件或视图中显示自定义图标,则需要提供一个标签:

     
      
  • 非常简单地描述元素。理想情况下,标签由单个单词组成,例如添加,播放,删除,搜索,收藏夹或音量。   努力设计您的应用程序,以便单个单词标识一个元素并使其在当前上下文中的用法显而易见。但是,有时可能需要使用简短的短语来正确标识元素。在这种情况下,请创建一个简短的短语,例如“播放音乐”,“添加名称”或“添加到事件”。
  •   
  • 不包括控件或视图的类型。类型信息包含在元素的traits属性中,切勿在标签中重复。   例如,如果您在“添加”按钮的标签中包括控件类型,则VoiceOver用户每次访问该控件时都会听到“添加按钮按钮”。这种体验会很快变得令人讨厌,并可能促使用户停止使用您的应用程序。
  •   
  • 以大写字母开头。这有助于VoiceOver读取带有适当变形的标签。
  •   
  • 不以句号结尾。标签不是句子,因此不应以句号结尾。
  •   
  • 已本地化。通过本地化所有字符串(包括辅助功能属性字符串),确保使您的应用程序对尽可能多的受众可用。通常,VoiceOver会使用用户在国际设置中指定的语言说。
  •   

每个可点击视图都应提供自己的accessibilityLabel。如果用户可以点击标题,并且可以点击标题下方的部分,则点击标题应仅读取标题,而点击标题下方的部分应仅读取标题下方的部分。

答案 1 :(得分:1)

在考虑可访问性时,应该从最终用户的角度来探讨它。例如,如果您有一个标题为Hospital Name:且标题为Massachusetts General Hospital的小标题,则最好将两者一起阅读,因为它们相互之间提供了上下文。另一方面,如果您有一个标题为Hospitals:的标题,然后在下面有很长的医院列表,则最好允许用户按自己的步调滚动浏览所有医院

对于较大的文本块(例如,UILabel或UITextView上的段落),您再次读取的数量取决于上下文。如果是对某样东西的描述,应该将其理解为一个完整的块而不会打扰,以便用户可以理解其内容,那么将其设置为单个Voice Over块是完全可以的。但是,如果应该进行战略性的停顿,以允许用户决定是否希望听到更多信息(例如,《最终用户许可协议》,文章中的段落),则应将其分成多个部分,以允许用户控制并选择位置。

对于较大的文本块,我建议您不要将accessibilityLabel设置为内容,而是将accessibilityValue设置为。这将使用户在决定是否要听更多内容之前,先听见可访问性焦点中对象标签中的简短描述。同样,这会在继续之前为用户提供上下文。

答案 2 :(得分:1)

您正在开发本机应用程序,而不是html webapp?在后一种情况下,用户可以向左/向右滑动以导航到DOM中的下一个元素,并且仅读取与该DOM元素关联的文本。但是,可以通过将其他文本与DOM元素(aria-labelaria-labelledbyaria-describedbyclass="sr-only"等相关联)“增强”与DOM元素关联的文本,如果认为有必要帮助VoiceOver用户理解上下文。例如,“立即注册”按钮或“更多信息”链接可能需要其他信息,以便使按钮/链接的目的明确。 (现在注册,了解什么?了解更多信息?)

相同的原理也可以应用于本机应用程序,这听起来像您在问什么。如果您的应用具有标题(例如ala <h1><h2>等,但是在objectivec中定义了标题),那么这些应用就不需要与它们关联的其他文本。标题应措词正确,以便上下文足够。用户可以向右滑动来浏览标题后面的段落。他们会知道该段落在标题的下面,因为这是他们滑动到的下一个元素。

与用户点击段落相同。与该段落关联的标题无需阅读。用户可以向左滑动以到达它,或者可以使用“标题”上设置的转子向上/向下滑动以到达上一个/下一个标题。

因此,一般指导原则是尝试在可能的情况下提供对象本身文本中所需的所有上下文。但是,您还必须在简洁与平衡之间取得平衡。如果文本需要其他上下文,则听起来您应该使用accessibilityLabel。是否有另一个属性提供其他信息,例如accessibilityDescription? (我只是设置了该属性名称。不确定它是否存在。)