Google saadab arendajatele meile hoiatuse, et nad ei kasutaks juurdepääsetavuse teenuseid väljaspool ettenähtud kasutust, vastasel juhul eemaldatakse nende rakendused Play poest.
Värskenda: LastPassil on just vastas sellele uudisele ja teatab, et nende Androidi rakendustele ei ole "vahetut mõju". Kas see tähendab, et teistele taotlustele antakse leebe või mitte, jääb näha.
Mõned Play poe kõige uuenduslikumad rakendused on üles ehitatud API-de kasutamisele viisil, mida Google ei kavatsenudki. On rakendusi, mis saavad teie helitugevusnuppe ümber vastendada, et muusikalugusid vahele jätta, puutetundlikke sisendeid salvestada ja taasesitada veebilehti või mänge ning pakkuda isegi alternatiivseid navigeerimisnuppe, et saaksite kasutada kogu oma seadet ekraan. Kõik need näited, mida just mainisin, põhinevad Androidi juurdepääsetavuse API-del. Aga see võib varsti muuta, kuna Google Play poe meeskond saadab arendajatele e-kirju, teatades neile, et nad saavad seda teha ei rakenda enam juurdepääsetavuse teenuseid, kui need ei järgi Google'i juhiseid.
Mis on juurdepääsetavuse teenus?
Et mõista, miks see on oluline, peame esmalt selgitama, mis on juurdepääsetavus seoses Androidiga. Üldiselt tähendab juurdepääsetavus Androidi rakenduse juurdepääsetavamaks muutmist teatud puuetega kasutajatele, näiteks nägemispuudega kasutajatele. Kuigi iga arendaja huvides on muuta oma rakendused puuetega kasutajatele juurdepääsetavamaks, on spetsiaalne rakenduste klass, mis on loodud kõigi Androidi rakenduste kasutatavuse parandamiseks kasutajate jaoks puuetega. Neid nimetatakse juurdepääsetavuse teenusteks.
Juurdepääsetavusteenus, mida tavaliselt nimetatakse a11y, on rakendus, millele süsteem saab edastada teatud teavet sõltuvalt sellest, mida sündmused juurdepääsetavuse teenus registreerib kuulamiseks. Rakendus, mis soovib juurutada juurdepääsetavuse teenust, peab lisama selle android.permission.BIND_ACCESSIBILITY_SERVICE
AndroidManifest-faili luba, et ainult süsteem saaks rakenduse teenusega siduda.
Näiteks kui juurdepääsetavuse teenus on loodud kuulamiseks TYPE_VIEW_CLICKED
sündmused, siis saab see teenus süsteemilt teavet kõigi nuppude kohta, mida kasutaja võib vajutada. Juurdepääsetavusteenus võib ka reageerida teatud žestidele ja võtmesündmustele ning neid tarbida enne, kui teised rakendused need vastu võtavad. Lõpuks saab juurdepääsetavuse teenus sisestada ka teatud võtmesündmusi, nagu tagumise, jagatud ekraani või hiljutiste rakenduste nupp.
Seega võivad juurdepääsetavuse teenused olla väga võimas ja kasulik. Mitmed Google Play poe kõige populaarsemad ja uuenduslikumad rakendused tuginevad oma ülesannete täitmisel a11y-le. Siin on vaid mõned vähestest näidetest, mis mul pähe tuli:
- Automaatne sisestus - peatada KeyEvents ja teha puudutus-/pühkimisliigutusi
- Nuppude kaardistaja - peatada KeyEvents ja seostada need ümber teiste KeyEventsidega
- Rohendada - lülitage rakendused automaatselt talveunerežiimi, sulgedes need enne ekraani väljalülitamist
- Sisestamine+ - tuvastage, millal klaviatuurirakendus on avatud, et kuvada ujuv toimingunupp
- LastPass - skannige lehti kasutajanime/parooli sisestamiseks (vajalik enne Android Oreot)
- Lülituge kiiresti - saatke tagasinupu jaoks KeyEvent
- Tasker - tuvastada, millal rakendused on avatud, et saaksite teha mis tahes kasutaja määratud toiminguid
- Tüüp masin - Salvestage kogu tekstisisestus, nii et te ei kaota kunagi ühtegi tekstisisestus
Ükski neist rakendustest ei kasuta a11y-d nii, nagu Google kavatses, st puuetega kasutajate abistamiseks. Vean kihla, et enamik rakendusi, mis juurutavad juurdepääsetavuse teenust, teevad seda Google'i pädevusalast välja jäävate funktsioonide jaoks. Kuid see on Androidi ja API-de, nagu Accessibility, ilu – Google tavaliselt ei piira seda, mida arendajad saavad teha ja mida mitte. See lõtv lähenemine juurdepääsetavusteenuste kasutamisele näib siiski muutuvat, kui Google Play Poe meeskond on saatnud arendajatele e-kirju, hoiatades neid eelseisvate muudatuste eest nende poliitikas a11a.
Mida Google täpselt teeb?
Ettevõte teavitab arendajaid, et kui nende rakendus kasutab juurdepääsetavuse teenust muul põhjusel kui puuetega kasutajate abistamine, siis nad peavad selle loa kasutamise 30 päeva jooksul eemaldama, vastasel juhul eemaldatakse nende rakendus Play poest. Selle nõude eiramine võib kaasa tuua arendaja Play poe konto rikkumise, mis võib viivad lõpuks konto sulgemiseni.
Nende väheste rakenduste puhul, mis kasutavad a11y-d puuetega kasutajate abistamiseks, väidab Google, et need arendajad peavad lihtsalt lisama silmapaistva, kasutajale suunatud avalikustamise põhjuse kohta, miks nende rakendus seda vajab luba. Kuid nagu ma varem mainisin, kasutatakse juurdepääsetavuse teenuseid palju sagedamini rakendustes, mis rikuvad seda uut eeskirja.
Täielik meilisõnum saadeti arendajatele
Tere, arendajad aadressil ****!
Võtame teiega ühendust, kuna teie rakendus **** paketinimega **** taotlebandroid.permission. BIND_ACCESSIBILITY_SERVICE.' Juurdepääsetavusteenuseid taotlevaid rakendusi tuleks kasutada ainult selleks, et aidata puuetega kasutajatel Androidi seadmeid ja rakendusi kasutada. Teie rakendus peab vastama meie nõuetele load poliitika ja meie silmapaistva avalikustamise nõuded Kasutaja andmed poliitika.
Vajalik toiming: kui te seda veel ei tee, peate kasutajatele selgitama, kuidas teie rakendus kasutabandroid.permission. BIND_ACCESSIBILITY_SERVICE, et aidata puuetega kasutajatel kasutada Androidi seadmeid ja rakendusi. Rakendused, mis seda nõuet 30 päeva jooksul ei täida, võidakse Google Playst eemaldada. Teise võimalusena saate oma rakenduses eemaldada kõik juurdepääsetavuse teenuste taotlused. Samuti saate oma rakenduse avaldamise tühistada.
Kui teil on vaja oma rakendustes muudatusi teha, järgige neid samme.
- Lugege läbi load ja Kasutaja andmed eeskirjadest lisateabe saamiseks ja veenduge, et teie rakendus järgiks kõiki jaotises loetletud eeskirju Arendaja programmieeskirjad.
- Kui te ei vaja oma rakenduses luba BIND_ACCESSIBILITY_SERVICE või kui luba kasutatakse millekski muuks kui puuetega kasutajatele Android-seadmete ja -rakenduste kasutamise aitamiseks, toimige järgmiselt.
- Eemaldage selle loa taotlus oma rakenduse manifestist.
- Logige sisse oma Play Console'i ja laadige üles oma muudetud eeskirjadele vastav APK.
- Või kui vajate oma rakenduses luba BIND_ACCESSIBILITY_SERVICE, et aidata puuetega kasutajatel Androidi seadmeid ja rakendusi kasutada, toimige järgmiselt.
- Kaasake oma rakenduse poe kirje kirjeldusse järgmine koodilõik: „See rakendus kasutab juurdepääsetavuse teenuseid”.
- Enne kui palute kasutajal see luba teie rakenduses lubada, esitage kasutajale selle kasutuse kohta silmapaistev teave. Teie avalikustamine peab vastama kõigile järgmistele nõuetele.
- Avalikustamine tuleb esitada aadressil android: kokkuvõte ja android: kirjeldus AccessibilityServiceInfo klassi elemendid
- Avalikustamine peab kirjeldama funktsioone, mida juurdepääsetavuse teenuse luba teie rakenduse jaoks lubab. Kõik juurdepääsetavusteenuse taotlusega kasutatavad funktsioonid tuleb avalikustamisel koos põhjendusega deklareerida.
Teise võimalusena saate rakenduse avaldamise tühistada.
Kõiki rikkumisi jälgitakse. Mis tahes tõsine või korduv rikkumine toob kaasa teie arendajakonto sulgemise ning seotud Google'i kontode uurimise ja võimaliku sulgemise.
Kui olete eeskirjad üle vaadanud ja arvate, et oleme eksinud, võtke meiega ühendust poliitika tugimeeskond. Üks mu kolleegidest võtab teiega ühendust 2 tööpäeva jooksul.
Lugupidamisega
Google Play ülevaatetiim
Loe rohkem
Miks Google eemaldab Play poest juurdepääsetavuse teenused?
Kuigi juurdepääsetavuse teenuste kasutamine on põhjustab teadaolevalt üsna väikese viivituse, tegelik põhjus, miks Google hakkab nende rakenduste vastu võitlema, on tõenäoliselt seotud a11y eeliseid kasutavate ärakasutamiste kasvava probleemiga. Ehkki ülalmainitud rakendused kasutavad a11y kasulikel eesmärkidel, saavad pahatahtlikud arendajad neid kergesti kuritarvitavatel eesmärkidel ära kasutada. Näiteks juurdepääsetavuse teenus saab kasutada klahvilogija, lunavararünnaku või andmepüügi ärakasutamiseks.
Google'i jõupingutused kasutajate kaitsmisel pahatahtlike juurdepääsetavuse teenuste eest on keskendunud peamiselt avalikustamisele. Praegu lubatakse juurdepääsetavuse teenust, mis registreerub teatud sündmuste jaoks, näiteks TYPE_VIEW_TEXT_CHANGED
kuvatakse hoiatusdialoog, et rakendus võib teie paroolid varastada. Võib arvata, et selline teade takistaks kasutajatel vastutustundetult rakendusi a11y lubamast. Siiski on olnud palju dokumenteeritud juhtumeid, kus rakendused meelitavad kasutajaid a11y lubama. Mõned rünnakud ulatuvad veelgi kaugemale, näiteks Mantli ja pistoda ärakasutamine ja Toast Message Overlay rünnakud mis sunnivad kasutajat sotsiaalselt andma a11y, esitades valesti, millega nad ekraanil suhtlevad.
Sellised rünnakud on tõhusad enamiku Android-seadmete puhul. Google on teinud suuri edusamme ülekatte- või röstsõnumite rünnakute ärahoidmisel (nagu võib näha AOSP-s, kui otsite a11y), kuid asjad on jõudnud punkti, kus Google otsustas, et on parem piirata juurdepääsetavuse teenuste kasutamist täielikult. See on loogiline, kuid see on tõesti nõme sest see samm hävitab paljude uuenduslike rakenduste funktsionaalsuse.
Mida saavad arendajad teha?
Kahjuks seal arendajad ei saa palju teha vastuseks neile muutustele. Arendajad võivad järgida Google'i nõudeid, eemaldades oma juurdepääsetavuse teenuse, või ähvardada nende rakendus eemaldatakse ja nende konto võidakse sulgeda. Lihtsalt avalikustamise lisamine selle kohta, miks nende rakendus kasutab a11y, toimiks ainult siis, kui nende rakenduse eesmärk on õiguspäraselt aidata puuetega kasutajaid, mis ei kirjelda enamikku praegu a11y kasutavaid rakendusi.
Mõnede, kuid mitte kõigi mainitud rakenduste puhul on võimalik rakendusi ümber kujundada nii, et need ei kasuta enam juurdepääsetavuse teenust. Paroolihaldurid, nagu LastPass, saavad migreeruge automaattäite raamistikule, kuid ainult siis, kui kasutajal on Android 8.0 Oreo või uuem versioon. Kui rakendus kasutab rakendust a11y, et jälgida, millal teised rakendused on avatud, saab selle rakenduse kirjutada küsitlusteenusega, kasutades UsageStats API-t. Sellised rakendused nagu Tasker võivad sellise muutuse üle elada. Teistel, nagu Button Mapper ja AutoInput, ei veda – ilma rootita pole head viisi KeyEventsi pealtkuulamiseks.
Kuigi me mõistame ohtu, kui lubate pahatahtlikule rakendusele juurdepääsu hõlbustus API-dele, on kahju, et Google on mõned tõeliselt kasulikud rakendused steriliseerinud. Loodame, et Google'i kehtestatud eeskirjad on vastupidised või väidavad nad lihtsalt, et seda tõlgendati valesti. Praegusel kujul on meili sõnastus üsna selge – järgige meie juhiseid või lahkuge Play poest. See on sünge meeldetuletus, et Google'il on Play poes kõikvõimalikud rakendused ja need võivad igal ajal teie alt vaiba välja tõmmata.
Värskendus 1: segane arendaja dokumentatsioon
Google'i arendaja dokumendid juurdepääsetavuse teenuse ehitamine näib olevat vastuolus Google Play poe meeskonna uue fookusega. Leheküljel oli selle kirjutamise ajal järgmine sõnastus:
Juurdepääsetavusteenus on rakendus, mis pakub kasutajaliidese täiustusi, et aidata puuetega kasutajaid või kasutajaid, kes ei pruugi ajutiselt seadmega täielikult suhelda. Näiteks võivad kasutajad, kes juhivad autot, hoolitsevad väikese lapse eest või käivad väga valjuhäälsel peol, vajada täiendavat või alternatiivset liidese tagasisidet.
Lisaks, kui võrrelda lehe sõnastust an lehe arhiveeritud versioon juulist, leiate, et märget ligipääsetavuse teenuste loomise kohta ainult puuetega kasutajate abistamiseks pole olemas.
Täname João Diast selle teabe edastamise eest.