Tengo un UITextView con dos hipervínculos diferentes. Para dar la oportunidad de elegir entre los dos enlaces cuando VoiceOver está activado, hice lo siguiente:
class MyTextView { override func awakeFromNib() { super.awakeFromNib() let str = "xxxxxx Option 1 yyyy Option 2" let attrStr = NSMutableAttributedString(str) let rangeOption1 = (str as NSString).range(of: "Option 1") let rangeOption2 = (str as NSString).range(of: "Option 2") attrStr.addAttributes([.link: "option1", range: rangeOption1]) attrStr.addAttributes([.link: "option2", range: rangeOption2]) self.attributedText = attrStr } override var isAccessibilityElement: Bool { get { return true } set {} } override var accessibilityLabel: String? { get { return "Link Options" } set {} } override var accessibilityCustomActions: [UIAccessibilityCustomAction]? { get { return [ UIAccessibilityCustomAction(name: "Choose Option One", target: self, selector: #selector(option1)), UIAccessibilityCustomAction(name: "Choose Option Two", target: self, selector: #selector(option2))] } set {} } @objc func option1() { print ("Option 1") } @objc func option2() { print ("Option 2") } }Hice esto siguiendo este video de la WWDC desde el minuto 33. Lo que no puedo manejar es que dice deslizar hacia arriba o hacia abajo para seleccionar una acción personalizada, luego toca dos veces para activar cuando la vista de texto está enfocada.
En este momento dice "xxxxxx Opción 1 [pausa] enlace [pausa] yyyy Opción 2 [pausa] enlace [pausa]"
Una vez que el textView está enfocado, si lo deslizo hacia abajo, me dice "Elegir la opción uno" y "Elegir la opción dos". Si después de que dice "Elegir opción X", toco dos veces, se elige la opción de corrección.
Técnicamente todo está bien, solo quiero anunciar las instrucciones al usuario como lo hace en el video. En el peor de los casos, simplemente agregaré eso a la etiqueta de accessibilityLabel , pero eso es complicado.
Puede que me equivoque, pero las acciones no se pueden leer como mencionaste , solo los valores ajustables pueden.
Seguí el contenido de este video gracias a este resumen detallado y escuché:
Las "acciones disponibles" solo se leen con las acciones implementadas, no puede tener nada más de forma nativa.
Si me equivoco, hágamelo saber el lapso de tiempo del video de la WWDC que escuchó lo que mencionó, por favor.
Ahora, si necesita más información con el rasgo .adjustable , incluidas ilustraciones y fragmentos de código (ObjC + Swift) , le sugiero que eche un vistazo a este sitio .