Zugänglichkeit: Talkback, WebView und Gebietsschema des Benutzers

9

Ich habe eine App entwickelt, die ein Webview enthält. Ich möchte meine App vollständig zugänglich machen, daher möchte ich für das Webview-Element, dass TalkBack HTML-Elemente wie "Überschrift", "Banner", "EditText" vollständig zugänglich liest.

Ich habe gesehen, dass der TTS-Prozess in WebView durch JS-Injektion über die Chromium AccessibilityInjector.java-Klasse erfolgt. Dies fügt dieses Skript in die Seite ein, die nur die Nachrichten in Englisch hat. Das Ergebnis ist, dass wenn ein Gerät in einer anderen Sprache ist, das TTS dieses HTML-Element in Englisch unabhängig liest.

Jetzt kann ich den Chrom-Webclient nicht debuggen oder erweitern, also wie kann ich TTS dazu bringen, meine Seite entsprechend dem Gebietsschema des Benutzers zu lesen?

EDIT: Ich benutze jQuery Mobile übrigens.

    
Gabriel Sanmartin 18.03.2014, 08:38
quelle

1 Antwort

0

Nur für den Fall, dass jemand auf dieses Problem stolpert: Ich musste einen hässlichen Workaround anwenden, um darüber hinwegzukommen. Immer wenn ich eine Seite lade und TalkBack aktiviert ist, importiere ich die Javascript-Variablen, die den zu lesenden Text enthalten, mit ihren lokalisierten Gegenstücken neu. Zum Beispiel für spanischen Text:

%Vor%

Beachten Sie, dass ich ein Timeout einfüge, bevor ich die Variablen injiziere - das verhindert, dass Chromvox nach meiner Injektion injiziert wird, wodurch die Lösung unbrauchbar wird.

Ich weiß, dass dies ein hässlicher Patch ist, aber ich konnte keine besseren Lösungen finden, ohne Zugriff auf die Chrom-Webview-Klassen.

    
Gabriel Sanmartin 18.06.2014, 06:23
quelle

Tags und Links