Google droht damit, Apps mit Barrierefreiheitsdiensten aus dem Play Store zu entfernen

Google sendet E-Mails mit der Warnung an Entwickler, die Barrierefreiheitsdienste nicht außerhalb des vorgesehenen Verwendungszwecks zu nutzen, andernfalls werden ihre Apps aus dem Play Store entfernt.

Aktualisieren: LastPass hat gerade antwortete zu dieser Nachricht und gibt an, dass es „keine unmittelbaren Auswirkungen“ auf ihre Android-Apps geben wird. Es bleibt abzuwarten, ob dies bedeutet, dass anderen Anträgen eine Kronzeugenregelung gewährt wird.

Einige der innovativsten Anwendungen im Play Store basieren auf der Verwendung von APIs auf eine Weise, die Google nie beabsichtigt hatte. Es gibt Apps, die Ihre Lautstärketasten neu zuordnen können, um Musiktitel zu überspringen und Berührungseingaben aufzuzeichnen und wiederzugeben Webseiten oder Spiele und bieten sogar alternative Navigationstasten, damit Sie das gesamte Gerät nutzen können Bildschirm. Alle diese Beispiele, die ich gerade erwähnt habe, basieren auf den Barrierefreiheits-APIs von Android. Aber das kann bald sein ändern, da das Google Play Store-Team E-Mails an Entwickler sendet, in denen sie ihnen mitteilen, dass dies möglich ist

implementieren keine Barrierefreiheitsdienste mehr, es sei denn, sie befolgen die Richtlinien von Google.


Was ist ein Barrierefreiheitsdienst?

Um zu verstehen, warum dies von Bedeutung ist, müssen wir zunächst erklären, was Barrierefreiheit in Bezug auf Android bedeutet. Im Allgemeinen bezieht sich Barrierefreiheit darauf, eine Android-App für Benutzer mit bestimmten Behinderungen, beispielsweise Sehbehinderten, zugänglicher zu machen. Obwohl es im besten Interesse jedes Entwicklers liegt, seine Apps für Benutzer mit Behinderungen zugänglicher zu machen, gibt es solche Eine spezielle Klasse von Anwendungen, die darauf ausgelegt sind, die Benutzerfreundlichkeit aller Android-Apps für Benutzer mit zu verbessern Behinderungen. Diese werden als Barrierefreiheitsdienste bezeichnet.

Ein Accessibility Service, allgemein als a11y bezeichnet, ist eine App, die das System je nach Bedarf mit bestimmten Informationen versorgen kann Veranstaltungen Der Accessibility Service registriert sich zum Abhören. Eine App, die einen Barrierefreiheitsdienst implementieren möchte, muss Folgendes hinzufügen android.permission.BIND_ACCESSIBILITY_SERVICE Berechtigung für die AndroidManifest-Datei, sodass nur das System eine Bindung zum Dienst der App herstellen kann.

Wenn beispielsweise ein Barrierefreiheitsdienst zum Abhören erstellt wird TYPE_VIEW_CLICKED Ereignisse, dann erhält dieser Dienst vom System Informationen über alle Tasten, die der Benutzer möglicherweise drückt. Ein Barrierefreiheitsdienst kann auch auf bestimmte Gesten und KeyEvents reagieren und diese nutzen, bevor andere Apps sie empfangen. Schließlich kann ein Barrierefreiheitsdienst auch bestimmte Schlüsselereignisse einfügen, z. B. die Schaltfläche „Zurück“, „Geteilter Bildschirm“ oder „Letzte Apps“.

So können Barrierefreiheitsdienste sein äußerst leistungsstark und nützlich. Einige der beliebtesten und innovativsten Anwendungen im Google Play Store verlassen sich bei der Erfüllung ihrer Aufgaben auf a11y. Hier sind nur einige der wenigen Beispiele, die mir spontan eingefallen sind:

  • Automatische Eingabe - KeyEvents abfangen und Tipp-/Wischgesten ausführen
  • Button-Mapper - KeyEvents abfangen und sie anderen KeyEvents neu zuordnen
  • Begrünen - Versetzen Sie Apps automatisch in den Ruhezustand, indem Sie sie zwangsweise schließen, bevor sich der Bildschirm ausschaltet
  • Eingabe+ - Erkennen Sie, wann die Tastatur-App geöffnet ist, um die schwebende Aktionsschaltfläche anzuzeigen
  • LastPass - Seiten nach Benutzernamen-/Passwort-Einträgen durchsuchen (notwendig vor Android Oreo)
  • Schnell wechseln - KeyEvent für den Zurück-Button senden
  • Tasker - Erkennen Sie, wenn Apps geöffnet sind, sodass Sie jede benutzerdefinierte Aktion ausführen können
  • Geben Sie Maschine ein - Zeichnen Sie alle Texteingaben auf, damit keine Texteingaben verloren gehen

Keine dieser Anwendungen nutzt a11y in der von Google beabsichtigten Weise, nämlich Nutzern mit Behinderungen zu helfen. Ich würde wetten, dass die überwiegende Mehrheit der Anwendungen, die einen Barrierefreiheitsdienst implementieren, dies für Funktionen tun, die außerhalb des Zuständigkeitsbereichs von Google liegen. Aber das ist das Schöne an Android und APIs wie Barrierefreiheit – Google schränkt normalerweise nicht ein, was Entwickler tun können und was nicht. Dieser laxe Ansatz bei der Nutzung von Barrierefreiheitsdiensten scheint sich jedoch zu ändern, da Google Play Das Store-Team hat E-Mails an Entwickler gesendet, um sie vor bevorstehenden Änderungen ihrer Richtlinien zu warnen a11y.


Was genau macht Google?

Das Unternehmen informiert Entwickler darüber, dass sie, wenn ihre Anwendung einen Barrierefreiheitsdienst aus einem anderen Grund als der Unterstützung von Benutzern mit Behinderungen nutzt Sie müssen die Verwendung dieser Erlaubnis innerhalb von 30 Tagen widerrufen, andernfalls wird ihre Anwendung aus dem Play Store entfernt. Die Nichteinhaltung dieser Anforderung kann zu einem Verstoß gegen das Play Store-Konto eines Entwicklers führen letztendlich zur Kontokündigung führen.

Für die wenigen Apps, die a11y nutzen, um Benutzern mit Behinderungen zu helfen, gibt Google an, dass diese Entwickler Sie müssen lediglich eine prominente, benutzerorientierte Offenlegung des Grundes hinzufügen, warum ihre App dies benötigt Erlaubnis. Wie ich jedoch bereits erwähnt habe, werden Barrierefreiheitsdienste viel häufiger in Apps verwendet, die letztendlich gegen diese neue Richtlinie verstoßen würden.

Vollständige E-Mail an Entwickler gesendet

Hallo Entwickler bei ****,

Wir kontaktieren Sie, weil Ihre App **** mit dem Paketnamen **** das „android.permission. BIND_ACCESSIBILITY_SERVICE.' Apps, die Barrierefreiheitsdienste anfordern, sollten nur verwendet werden, um Benutzern mit Behinderungen die Nutzung von Android-Geräten und -Apps zu erleichtern. Ihre App muss unseren entsprechen Berechtigungen Richtlinie und die Offenlegungsanforderungen unserer Benutzerdaten Politik.

Handlung erforderlich: Falls Sie dies noch nicht tun, müssen Sie den Benutzern erklären, wie Ihre App das „android.permission. BIND_ACCESSIBILITY_SERVICE', um Benutzern mit Behinderungen die Nutzung von Android-Geräten und -Apps zu erleichtern. Apps, die diese Anforderung nicht innerhalb von 30 Tagen erfüllen, können aus Google Play entfernt werden. Alternativ können Sie alle Anfragen für Barrierefreiheitsdienste in Ihrer App entfernen. Sie können die Veröffentlichung Ihrer App auch rückgängig machen.

Wenn Sie Änderungen an Ihren Apps vornehmen müssen, befolgen Sie bitte diese Schritte:

  • Lesen Sie die durch Berechtigungen Und Benutzerdaten Weitere Informationen finden Sie in den Richtlinien. Stellen Sie sicher, dass Ihre App allen darin aufgeführten Richtlinien entspricht Programmrichtlinien für Entwickler.
  • Wenn Sie die BIND_ACCESSIBILITY_SERVICE-Berechtigung in Ihrer App nicht benötigen oder die Berechtigung für einen anderen Zweck als die Unterstützung von Benutzern mit Behinderungen bei der Verwendung von Android-Geräten und -Apps verwendet wird:
    1. Entfernen Sie Ihre Anfrage für diese Berechtigung aus dem Manifest Ihrer App.
    2. Melden Sie sich bei Ihrer Play Console an und laden Sie Ihr geändertes, richtlinienkonformes APK hoch.
  • Oder wenn Sie die Berechtigung BIND_ACCESSIBILITY_SERVICE in Ihrer App benötigen, um Benutzern mit Behinderungen die Nutzung von Android-Geräten und -Apps zu erleichtern:
    1. Fügen Sie den folgenden Ausschnitt in die Beschreibung des Store-Eintrags Ihrer App ein: „Diese App nutzt Barrierefreiheitsdienste.“
    2. Machen Sie diese Nutzung gegenüber dem Benutzer deutlich sichtbar, bevor Sie den Benutzer bitten, diese Berechtigung in Ihrer App zu aktivieren. Ihre Offenlegung muss jede der folgenden Anforderungen erfüllen:
      • Die Offenlegung muss über erfolgen Android: Zusammenfassung Und Android: Beschreibung Elemente der AccessibilityServiceInfo-Klasse
      • Die Offenlegung muss die Funktionalität beschreiben, die die Accessibility Service-Berechtigung für Ihre App ermöglicht. Jede mit der Barrierefreiheitsdienstanfrage verwendete Funktion muss in Ihrer Offenlegung mit Begründung angegeben werden.

Alternativ können Sie die Veröffentlichung der App rückgängig machen.

Alle Verstöße werden verfolgt. Schwerwiegende oder wiederholte Verstöße jeglicher Art führen zur Kündigung Ihres Entwicklerkontos sowie zur Untersuchung und möglichen Kündigung der zugehörigen Google-Konten.

Wenn Sie die Richtlinie gelesen haben und der Meinung sind, dass wir uns möglicherweise geirrt haben, wenden Sie sich bitte an unsere Politikunterstützungsteam. Einer meiner Kollegen wird sich innerhalb von 2 Werktagen bei Ihnen melden.

Grüße,

Das Google Play-Rezensionsteam

mehr lesen


Warum entfernt Google die Barrierefreiheitsdienste aus dem Play Store?

Während der Nutzung von Barrierefreiheitsdiensten sind Es ist bekannt, dass es ziemlich viel Verzögerung verursacht, der wahre Grund, warum Google beginnt, gegen diese Apps vorzugehen, hängt wahrscheinlich mit dem wachsenden Problem von Exploits zusammen, die a11y ausnutzen. Obwohl die Apps, die ich oben erwähnt habe, a11y für nützliche Zwecke nutzen, können sie von böswilligen Entwicklern leicht für schändliche Zwecke ausgenutzt werden. Zum Beispiel ein Barrierefreiheitsdienst kann zur Implementierung eines Keyloggers, eines Ransomware-Angriffs oder eines Phishing-Exploits verwendet werden.

Die Bemühungen von Google, Nutzer vor böswilligen Barrierefreiheitsdiensten zu schützen, drehten sich hauptsächlich um die Offenlegung. Derzeit wird ein Barrierefreiheitsdienst aktiviert, der sich für bestimmte Ereignisse registriert, z TYPE_VIEW_TEXT_CHANGED führt zu einem Warndialog, dass die App möglicherweise Ihre Passwörter stiehlt. Man könnte meinen, dass eine solche Nachricht dazu beitragen würde, Benutzer unverantwortlich daran zu hindern, Apps weiterhin zu gewähren. Allerdings gibt es zahlreiche dokumentierte Fälle, in denen Apps Benutzer dazu verleiten, 11 Jahre zu gewähren. Einige Angriffe gehen sogar noch weiter, wie zum Beispiel der Cloak and Dagger-Exploit Und Toast Message Overlay-Angriffe die den Benutzer sozial manipulieren, indem er falsch darstellt, womit er auf dem Bildschirm interagiert.

Angriffe wie diese sind auf den allermeisten Android-Geräten wirksam. Google hat große Fortschritte bei der Verhinderung von Overlay- oder Toast-Message-Angriffen gemacht (wie man in AOSP sehen kann, wenn man nach a11y sucht). Aber die Dinge sind so weit gekommen, dass Google entschieden hat, dass es besser wäre, die Nutzung von Barrierefreiheitsdiensten einzuschränken vollständig. Es macht Sinn, aber es wirklich scheiße denn dieser Schritt wird die Funktionalität vieler innovativer Apps zerstören.


Was können Entwickler tun?

Leider gibt es ist nicht viel, was Entwickler tun können als Reaktion auf diese Veränderungen. Entwickler können entweder den Forderungen von Google nachkommen, indem sie ihren Barrierefreiheitsdienst entfernen, oder sie müssen damit rechnen, dass ihre App entfernt und möglicherweise ihr Konto gekündigt wird. Das einfache Hinzufügen einer Offenlegung, warum ihre App a11y verwendet, würde nur dann funktionieren, wenn ihre App berechtigterweise darauf abzielt, Benutzer mit Behinderungen zu unterstützen, was bei den meisten Apps, die derzeit a11y verwenden, nicht der Fall ist.

Für einige, aber nicht alle der von uns genannten Apps ist es möglich, Apps so umzugestalten, dass sie keinen Barrierefreiheitsdienst mehr verwenden. Passwortmanager wie LastPass können Migration zum Autofill Framework, aber nur, wenn der Benutzer Android 8.0 Oreo und höher ausführt. Wenn eine App a11y verwendet, um zu überwachen, wann andere Apps geöffnet sind, kann diese App stattdessen mit einem Abfragedienst unter Verwendung der UsageStats-API geschrieben werden. Apps wie Tasker können eine solche Änderung überstehen. Andere wie Button Mapper und AutoInput haben Pech – ohne Root gibt es keine gute Möglichkeit, KeyEvents abzufangen.

Obwohl wir uns der Gefahr bewusst sind, die darin besteht, einer böswilligen App Zugriff auf die Accessibility APIs zu gewähren, ist es bedauerlich, dass Google einige wirklich nützliche Apps kastriert. Wir hoffen, dass die von Google dargelegte Richtlinie umgekehrt wird, oder sie behaupten einfach, dass sie falsch interpretiert wurde. So wie es aussieht, ist der Wortlaut in der E-Mail ziemlich klar: Halten Sie sich an unsere Richtlinien oder verlassen Sie den Play Store. Es ist eine düstere Erinnerung daran, dass Google die volle Macht darüber hat, welche Apps in den Play Store gehören, und dass sie Ihnen jederzeit den Boden unter den Füßen wegziehen können.


Update 1: Verwirrende Entwicklerdokumentation

Googles Entwicklerdokumente für Aufbau eines Barrierefreiheitsdienstes scheinen diesem neuen Fokus des Google Play Store-Teams zu widersprechen. Die Seite hatte zum Zeitpunkt des Schreibens folgenden Wortlaut:

Ein Barrierefreiheitsdienst ist eine Anwendung, die Verbesserungen der Benutzeroberfläche bereitstellt, um Benutzern mit Behinderungen oder Benutzern, die vorübergehend nicht in der Lage sind, vollständig mit einem Gerät zu interagieren, zu helfen. Beispielsweise benötigen Benutzer, die Auto fahren, auf ein kleines Kind aufpassen oder eine sehr laute Party besuchen, möglicherweise zusätzliches oder alternatives Schnittstellen-Feedback.

Wenn Sie außerdem den Wortlaut auf der Seite mit einem vergleichen Archivierte Version der Seite vom Juli, werden Sie feststellen, dass der Hinweis, dass Barrierefreiheitsdienste nur zur Unterstützung von Benutzern mit Behinderungen erstellt werden sollen, nicht vorhanden ist.

Vielen Dank, João Dias, dass Sie uns mit diesen Informationen kontaktiert haben.