Zugänglichkeit und Android WebView

Ist Accessibility für Android WebView aktiviert? Kann jemand sagen, wie man ein WebView zugänglich macht?

  • Android: Wie kann man Daten in einer SQLite-Datenbank schützen?
  • Android - Wie man mit zwei Finger berührt
  • Gibt es eine Möglichkeit, Android ListView Animation zu deaktivieren?
  • Making the Fused Location Provider LocationClient einfacher zu bedienen
  • Wie man den "Piepton" durch MediaRecorder.start () stumm schaltet?
  • Android In App-Käufe nicht synchronisieren über mehrere Geräte
  • Android 5.0: Wie kann ich die aktuelle App-Titelfarbe ändern?
  • So aktivieren Sie das Ablaufdatum für das Webview
  • Galaxy Nexus langsam mit Animationen
  • GoogleApiClient onConnected hat niemals das Wearable-Gerät aufgerufen
  • Wie deaktiviere ich jedes Ereignis auf einer Ansicht in Android?
  • Wie kann ich eine Layoutklasse richtig erweitern?
  • 5 Solutions collect form web for “Zugänglichkeit und Android WebView”

    Die Android-Webview-Zugänglichkeit ist über Javascript-Injektion in Honeycomb und oben (wie von alanv gezeigt ) aktiviert . Der Benutzer muss es aktivieren durch:

    • Einschalten des Barrierefreiheitsmodus, einschließlich 'Explore by Touch' in 4.0+.
    • Aktivieren Sie 'Enhanced Web Accessibility' oder auf älteren Geräten 'Inject Web Scripts'.

    Dies funktioniert durch Injizieren von Javascript in jede geladenen Seiten über <script> -Tags. Beachten Sie, dass Sie vorsichtig sein müssen, da nicht alle Inhalte mit diesem Javascript nett spielen werden, und die Injektion wird in einigen Randfällen fehlschlagen.

    Sie können die WebView-Klasse erweitern, um Accessibility-API-Methoden zu implementieren.

    http://developer.android.com/guide/topics/ui/accessibility/apps.html#custom-views

    Ich habe auch in diesem Thema auf 4.0 Geräte gerannt. Ich habe am Ende ein TextView auf der WebView, so dass die TextView Hintergrund und Text transparent. Der Textinhalt des TextViews wird auf den Inhalt von WebView gesetzt, wobei alle HTML-Tags abgestreift sind.

    Eine sehr unelegante Lösung, ich weiß, aber hey es funktioniert ….

    Nein, das WebView ist nicht aus dem integrierten TalkBack-Service zugänglich, zumindest ab Android Version 4.0. Stattdessen werden blinde Benutzer angewiesen, so etwas wie Mobile Accessibility für Android zu verwenden , das eine gesprochene Surfschnittstelle bietet. Ich würde vorschlagen, dass Ihre Inhalte anderen Prozessen zur Verfügung stehen, so dass blinde Benutzer den Inhalt in ihrem Browser der Wahl ansehen können. Ich habe dies getan, indem ich eine Absicht bekomme, den Inhalt zu sehen:

     public static void loadUrlInBrowser(Context c, Uri uri) { Intent i = new Intent(Intent.ACTION_VIEW); i.setDataAndType(uri, "text/html"); c.startActivity(i); } 

    Alternativ können Sie die Inhaltsbeschreibung des WebViews festlegen. Beachten Sie, dass dies nur in vor 4.0 Versionen von Android zu arbeiten scheint. Ich habe festgestellt, dass 4,0 Geräte entweder sagen, WebView oder gar nichts.

    Ich weiß, wie man auf Web View-Inhalte von Accessibility API zugreifen kann, wenn AccessibilityNodeInfo.getText () null oder "null" ist, rufen Sie AccessibilityNodeInfo.getContentDescription () auf.

    Einfacher Code:

     private String getTextOrDescription(AccessibilityNodeInfo info) { String text = String.valueOf(info.getText()); if (isEmptyOrNullString(text)) { text = String.valueOf(info.getContentDescription()); } return text; } private boolean isEmptyOrNullString(String text) { if (TextUtils.isEmpty(text) || text.equalsIgnoreCase("null")) { return true; } return false; } 

    GetContentDescription () kann den Inhalt der Webansicht erhalten.

    Tut mir leid für mein schlechtes Englisch.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.