2016-04-01 17 views
9

Ich versuche Barrierefreiheit für eine iOS-App zu implementieren und stoßen in einige der Nuancen und Macken beteiligt.VoiceOver Aussprache Problem: "Live" "ADD"

Zum Beispiel: Ich habe ein Etikett in meiner App, das lautet: "Dies ist ein Live-Event." Die Definition von Live in diesem Kontext ist "etwas, das gerade passiert" und wenn es ausgesprochen wird, sollte es sich mit "Fünf" reimen.

Allerdings Voiceover versteht und liest das Wort "leben" wie in: "leben und sterben lassen", und ist falsch ausgesprochen das Wort mit "Geben" gereimt.

Ähnlich ist ein anderes Problem, das ich stoße, mit dem Wort "ADD" im Kontext von "ADD A SELECTION". Die Bedeutung des Wortes in seinem Kontext ist "etwas zu einem Korb hinzufügen", wird aber als "ADD (Aufmerksamkeitsdefizitstörung)" ausgesprochen

Gibt es eine programmatische Möglichkeit, Kontext zu Wörtern geben, wenn Sie Ihre App für Zugänglichkeit?

+0

Ich weiß nicht, die Antwort auf diese, aber ich würde annehmen, dass es etwas Ähnliches wie die 'accessibilityLabel' ist, wo Sie die Aussprache der es irgendwie ändern kann. Schau jetzt. Möglicherweise im 'AVSpeechSynthesizer' Delegierten? – Fogmeister

+2

Es könnte sein, A.D.D auszusprechen, weil die Buchstaben in Großbuchstaben sind. Sie können '-capitalizedString' oder' -lowecaseString' anwenden, bevor Sie die Zeichenfolge zum Sprechen übergeben. – ZeMoon

+0

Danke @ZeMoon, das war die Lösung für eines meiner Probleme. –

Antwort

3

Die Lösung - bei mindestens für iOS 9.1 und neuer - ändert sich die Großschreibung des Wortes ändert sich auch die Aussprache:

  • Live-Reime mit fünf
  • Live-Reime mit geben
1

Sie haben zwei Möglichkeiten, einen Fehler in einem Screen Umgehung:

  • es zu ignorieren: Es ist ein Fehler in der Screen ist, nicht

  • einen anderen Satz in Ihrem Code verwenden.

Zum Beispiel könnte man sagen: „Diese Veranstaltung ist live“ (wenn es besser funktioniert, was ich bezweifle), oder „dieses Ereignis auf der Luft“ (nach Kontext natürlich abhängig, aber man kann eine bessere Alternative).

Man könnte denken, über aria-label mit einer Audio-Alternative zu bieten, wie „das ist lebendig Ereignis“ (weil am Leben Reime mit fünf) für Screenreadern aber aria-label auch durch Braille-Anzeige verwendet wird, und dann wäre dies eine ganz schlechte Idee.

Wie jemand in den Kommentaren oben gesagt hat, wissen die Benutzer von Screenreadern genau, wie ihr Screenreader schlecht Wörter aussprechen würde.

+0

Danke Adam. Das ist gut zu wissen. –

0

Sie können die accessibilityLabel für das Label, um den Text auszusprechen, wie Sie wollen.

Für das Beispiel OPs:

label1.accessibilityLabel = @"This is a liv event." //notice live is spelled liv so it is pronounced for the correct context 
label2.accessibilityLabel = @"add a selection" 

Dies kann auch durch die Wahl des Etiketts über das Storyboard/nib erfolgen und sehen Sie die "Identität Inspektor"

Identity inspector screen shot

+1

Beachten Sie, dass in Braillezeilen möglicherweise die Bezeichnung "accessibility" (= aria-label) verwendet wird. – Adam

2

Ich habe für eine Weile mit diesem zu kämpfen, aber ich fand eine einfache Lösung aus ... Wenn Sie einem anderen „L“ Brief an den hinzufügen "Live" -String wird es live als fünf aussprechen.

starten -> „llive“

+1

Das funktioniert für mich - ich wünschte, es gäbe eine Dokumentation darüber, warum es funktioniert. –