2011-09-22 10 views
15

Aggiungo il supporto di VoiceOver alla mia app. Fin qui, tutto bene, ma mi piacerebbe davvero essere in grado di specificare quale elemento è il primo parlato dopo una UIAccessibilityScreenChangedNotification. Non ho visto un modo per farlo. Fare qualcosa che l'elemento riepilogativo non sembra davvero farlo. Mi sto perdendo qualcosa?Selezione VoiceOver iniziale

risposta

0

Cosa succede ad usare UIAccessibilityAnnouncementNotification?

+0

Che suona come sarebbe il modo per gestire dire transitori notifiche Game Center: “Utilizzare questa notifica per fornire informazioni di accessibilità sugli eventi che non aggiornano l'interfaccia utente dell'applicazione (UI), o che aggiornano l'interfaccia utente solo brevemente.” Voglio concentrarmi su un elemento dell'interfaccia utente specifico. –

+0

Hmm, sto iniziando a pensare che potrei doverlo fare, anche se in realtà non è la risposta corretta. (In alcuni casi, il prossimo passaggio sarà verso l'elemento focalizzato, quindi lo sentirai ANCORA.) –

+0

Un altro svantaggio nell'usare la notifica dell'annuncio quando viene visualizzata per la prima volta una vista è che la sua lettura è spesso troncata dalla selezione iniziale di VoiceOver. – MusiGenesis

2

Io non credo che ci sia un valore di API che specifica un ordine di lettura, tranne usando Sintesi valore Element all'avvio - è legato alla progettazione.

modo che avrebbe dovuto testare l'ordine e di default per gli elementi UIKit o qualsiasi controlli personalizzati, perché dipende dal vostro disegno. Puoi anche contrassegnare gli elementi come elementi non accessibili in modo che non siano "letti", gli elementi accessibili letti per impostazione predefinita e i contenitori per gli elementi accessibili che consentono di controllare meglio le interazioni desiderate. Non so se rendere l'elemento selezionato aiuterà.

io lo prendo si sta già utilizzando il Accessibility Inspector per provare l'applicazione prima di testare su iOS.

Se si necessita di uno sfondo sull'argomento, vale la pena leggere Rune's Working With VoiceOver Support e Gemmell's Accessibility for Apps.

+0

In realtà non ho usato l'ispettore dell'accessibilità, ma il mio gioco è attualmente giocato da utenti non vedenti, quindi questo è solo per cambiare l'attenzione. Il problema è che toccando un pulsante mostra un nuovo elemento dell'interfaccia utente, ma capita di essere fisicamente superiore a quello che hai toccato, e questo è davvero un dolore per scorrere. –

16

Questo è sempre stato perfettamente possibile fare.

Basta scrivere qualcosa sulla falsariga di:

- (void)viewDidAppear:(BOOL)animated 
{ 
[super viewDidAppear:animated]; 

    UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, 
           self.myFirstElement); 
} 
@end 

Questo funziona sia per l'UIAccessibilityScreenChangedNotification e UIAccessibilityLayoutChangedNotification. Maggiori informazioni: http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIAccessibility_Protocol/Introduction/Introduction.html#//apple_ref/c/data/UIAccessibilityLayoutChangedNotification E qui: http://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/Accessibility/AccessibilityfromtheViewControllersPerspective.html#//apple_ref/doc/uid/TP40007457-CH2-SW1

+1

Non penso sia vero. Almeno, è stato menzionato per la prima volta come rilevante per iOS 6. –

+0

Funziona su iOS 7. Grazie! –

0

This technique ha lavorato per me.

VoiceOver annuncia il valore del primo elemento dell'array accessibleElements. Questo può essere ordinato in base alle proprie esigenze.

Problemi correlati