菜鸟教程小白 发表于 2022-12-13 11:04:32

ios - 将 ViewController 中的所有元素设置为不被 VoiceOver 读取


                                            <p><p>我正在寻找一种方法来告诉 VoiceOver 不要读取整个 ViewController 的元素值(value)。原因是,我有一个按钮,当按下它时,会在屏幕上显示一个模态的 VC。我说modal-ish,因为它不是modal,而是一个自定义的VC,里面有一个自定义的动画,实际上并没有覆盖整个屏幕,所以新的VC和旧的VC同时在 View 中并保持在内存中。</p>

<p>当用户用两根手指滑动以读取屏幕上的所有元素时,VoiceOver 将首先读取我的新 VC 中的元素,就像它应该的那样,然后它会开始读取这个 VC 后面现在“隐藏”的元素(在引号中,因为它们没有以编程方式设置为隐藏,只是因为 VC 覆盖了它们而被隐藏)并且不应该被阅读。 </p>

<p>有什么简单的方法可以让 VoiceOver 跳过整个旧 VC?或者我是否必须逐个元素地检查,并将 isAccessibilityElement 设置为 NO,然后在覆盖 VC 被解除时返回 YES?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>如果您想跳过特定元素的配音,则必须禁用该元素的可访问性(如果它已在 Storyboard 中设置),否则您必须以编程方式进行。您必须将 <code>IsAccessibilityElement 设置为 NO</code>,以使语音跳过该元素。 </p>

<p>还有另一种方法可以做到这一点。您必须创建一个数组并提供您希望通过语音读取的元素,因此当您希望将此数组提供给:<code>accessibilityElements</code>,这样语音 ovr 只会读取您在大批。您可以随时根据需要修改数组。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 将 ViewController 中的所有元素设置为不被 VoiceOver 读取,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/32783664/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/32783664/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 将 ViewController 中的所有元素设置为不被 VoiceOver 读取