VoiceOver宣布变暗,而不是button禁用

对于已禁用的button,iOS 8.x VoiceOver会宣布为灰色而不是禁用。 有没有办法让VoiceOver程序化地说“禁用”而不是“变暗”?

有办法做你想做的,但你绝对不应该使用它们。 当“ User Interaction Enabled性状设置为“ NO ”时,会发生“变暗”的通知。 这是VoiceOver用户在屏幕上使用的方式,可以对焦,但禁用的元素被宣布。 强迫您的应用程序以其他方式行事的可访问性差(请参阅WCAG 2.0准则3.2.3)。

你可以做的事情,如果你想要真正禁用,被设置isAccessibilityElementNO 。 那么它甚至不会在VoiceOver焦点循环中。 然后只要将其设置为YES即可。 但是,如果您想将其保留在焦点循环内,则“Dimmed”是临时禁用UI元素的适当声明。

我的投票将是第一个解决scheme,因为dynamic地修改isAccessibilityElement是一种dynamic内容的forms,可能需要额外的注意事项来维护正确的可访问性(参见WCAG 2.0指南3.2.1和3.2.2)。 除非有很多这样的button,并且通过它们轻弹是枯燥的,在这种情况下实现dynamic元素考虑是值得的,以保持良好的VoiceOver可用性。