Accesibilitate în Android: informații despre dezvoltatori și ghid de implementare
Publicat: 2022-09-12La nivel mondial, există aproximativ 285 de milioane de persoane cu deficiențe de vedere. Astfel, atunci când proiectați o nouă aplicație sau luați în considerare o modernizare a designului, este cu siguranță o idee bună să vă ajustați aplicația la nevoile acestui grup larg de utilizatori. Personalizarea aplicațiilor pentru persoanele cu deficiențe de vedere îmbunătățește experiența tuturor utilizatorilor dvs. Care sunt celelalte motive pentru a lua în considerare îmbunătățirea accesibilității aplicației dvs. și cum să o faceți? Vă rugăm să găsiți mai jos toate răspunsurile!
Cum folosesc persoanele cu deficiențe de vedere aplicațiile?
Un cititor de ecran este un instrument pentru rularea aplicațiilor (sau pur și simplu pentru a naviga pe ecranul smartphone-ului) pentru persoanele nevăzătoare și cu deficiențe de vedere. Cel mai popular cititor de ecran pentru Android este TalkBack . Cu acest instrument, utilizatorul efectuează introducerea prin gesturi, cum ar fi glisarea sau glisarea.
De obicei, ieșirea este feedback-ul vorbit. În TalkBack , avem două moduri de introducere prin gesturi:
- Atingeți explorarea , unde trageți degetul pe ecran.
- Navigare liniară , unde glisați la stânga și la dreapta cu degetul până când găsiți elementul de interes.
Odată ce ajungeți la articolul care vă interesează, îl puteți atinge de două ori pentru a-l activa. Doriți să aflați mai multe despre cum să rulați TalkBack? Vă rugăm să citiți următorul articol.

Principiile aplicației accesibile
Pentru a le permite persoanelor cu deficiențe de vedere să utilizeze aplicația noastră, trebuie mai întâi să înțelegem principiile pe care trebuie să le respectăm atunci când o proiectăm. Prin urmare, înainte de a trece la secțiunea de implementare, să discutăm cele mai importante ipoteze.
Aspect și tipografie
Partea vizuală a aplicației este critică. Butoanele implementate corect și gestionarea textului sunt unul dintre cei mai importanți factori care fac aplicația accesibilă.
Atingeți ținte
Țintele tactile sunt părți ale ecranului care răspund la interacțiunea utilizatorului. Principala recomandare este să creați ținte tactile cu o rezoluție de cel puțin 48 dp x 48 dp. Veți citi mai multe despre asta în capitolul următor.

Culoare și contrast
World Wide Web a creat linii directoare privind accesibilitatea contrastului de culoare pentru a ajuta și a ajuta utilizatorii cu deficiențe de culoare. Conform documentației, aspectele critice privind accesibilitatea contrastului de culoare sunt:
- Raport : textul și elementele interactive trebuie să aibă un raport de contrast de culoare de cel puțin 4,5:1.
- Culoarea ca indicator : culoarea nu ar trebui să fie singurul indicator pentru elementele interactive. Cel mai bine ar fi să subliniați și link-urile la trecerea cursorului sau să marcați câmpurile obligatorii cu un asterisc.
- Daltonismul: daltonismul roșu/verde este cel mai frecvent. Prin urmare, ar trebui să evitați verdele pe roșu sau roșu pe verde. Din același motiv, vă rugăm să evitați să utilizați roșu și verde pentru indicatorii „răi” și „buni”.
Tipografie
Utilizatorii pot mări dimensiunea fontului pentru a îmbunătăți lizibilitatea . În dispozitivele Android, este o opțiune de sistem folosită frecvent, așa că asigurați-vă că există suficient spațiu pentru fonturi mari și străine.
Text de accesibilitate
Textul de accesibilitate este atât text vizibil (de exemplu, etichete ale elementelor UI, text pe butoane, linkuri și formulare), cât și descrieri invizibile (descrieri de conținut, care pot oferi mai multe informații despre componenta descrisă).
Care sunt cele mai frecvente cazuri de utilizare a textului de accesibilitate ?
Tipuri și stări de control
Cititoarele de ecran, cum ar fi TalkBack, pot anunța automat tipul sau starea unui control fie rostind numele controlului, fie emitând un sunet.
Indicarea elementelor prin acțiune
Verbele de acțiune indică ce face un articol sau un link atunci când atingeți el și descriu ce face o vizualizare.
Elemente cu modificări de stare
În cazul pictogramelor care comută între valori sau stări, cititorul de ecran descrie o pictogramă în funcție de modul în care este prezentată utilizatorului. Pentru mai multe exemple, vă rugăm să citiți ghidul Material Design.
rezumat
Acest capitol v-a învățat cum ar trebui adaptat designul pentru persoanele cu deficiențe de vedere și nevăzători. Până acum, am abordat aspectul, tipografia și accesibilitatea textului . Acum vom trece la principiile implementării lor.
Implementarea accesibilității
În secțiunea următoare, mă voi concentra asupra aspectelor cheie ale implementării accesibilității în aplicația dvs. Sa incepem!
Aspect – Atingeți ținta
După cum am menționat în partea teoretică, fiecare element pe care se poate face clic ar trebui să aibă cel puțin 48dp/48dp.
Există mai multe opțiuni pentru a face acest lucru. Ai putea:
- Determinați valorile pentru atributele de lățime și înălțime conform recomandărilor (48dp/48dp)
- Adăugați umplutură în jurul pictogramelor
- Specificați valori pentru atributele: MinWidth și/sau minHeight
- Înregistrați TouchDelegate.
Uită-te la un exemplu din documentația oficială Google. Afișează elementul care are dimensiunea recomandată a țintei tactile :
<ImageButton ... android:minWidth="40dp" android:minHeight="32dp" android:paddingLeft="4dp" android:paddingTop="8dp" android:paddingRight="4dp" android:paddingBottom="8dp" />
Text de accesibilitate
Una dintre modalitățile de a atașa textul de accesibilitate la elementele tale UI este să folosești un atribut Android numit ContentDescription . Dacă nu îl furnizați pentru un buton imagine, de exemplu, experiența pentru un utilizator TalkBack poate fi tulburătoare.
Uita-te la exemplu:
<!-- Valoarea pentru următorul șir este „Căutare”. --> <ImageView ... android:contentDescription="@string/search" />
Pentru elementele decorative, cum ar fi distanțiere și separatoare, setați atributul “android:contentDescription”
la "null"
. Dacă aplicația dvs. acceptă numai dispozitivele care rulează Android 4.1 (nivelul API 16) sau o versiune ulterioară, puteți seta în schimb atributele “android:importantForAccessibility”
la "no"
.
Vă rugăm să asigurați-vă că nu includeți tipul de control sau starea controlului în descrierea conținutului dvs. Android are în mod nativ cuvinte precum butoane, selectat, bifat etc.

Tehnici de etichetare
Mai jos puteți găsi un set de bune practici pentru descrierea componentelor UI în aplicația dvs.
Componente care se descriu reciproc
Dacă aveți o componentă care vă permite să furnizați niște date (ex. EditText), este bine să aveți un obiect View care o descrie (ex. TextView). Acesta este motivul pentru care a fost creat atributul "android:labelFor"
. Vă rugăm să aruncați o privire la exemplul:
<!-- Textul etichetei ar fi „Nume:” --> <TextView ... android: android:labelFor="@+id/nameEntry" android:text="@string/name" /> <!-- Textul de accesibilitate va fi „Editați text pentru nume” --> <EditText ... android: /> <!-- Textul etichetei ar fi „Nume:” --> <TextView ... android: android:labelFor="@+id/surnameEntry" android:text="@string/nume" /> <!-- Textul de accesibilitate va fi „Editați text pentru prenume” --> <EditText ... android: />
Colecția de elemente aferente
Dacă aplicația dvs. are elemente de UI care sunt în mod natural legate (cum ar fi câmpuri cu informații despre o carte), le puteți aranja în grupuri folosind un container focalizat . Pentru a face acest lucru, setați atributul “android:focusable”
al obiectului container la true.
Procedând astfel, TalkBack poate prezenta descrierile de conținut ale elementelor interioare, una după alta, într-un singur anunț. Gruparea conținutului reduce cantitatea de glisare pe care trebuie să o facă utilizatorul, în timp ce eficientizează ieșirea vorbirii. Vă rugăm să priviți exemplul:
<LinearLayout ... android: android:orientation="vertical" android:focusable="true"> <TextView ... android: android:text="@string/title"/> <TextView ... android: android:text="@string/author"/> <TextView ... android: android:text="@string/pages"/> </LinearLayout>
Desigur, dacă containerul dvs. are vederi imbricate, le puteți aplica și această soluție. Acest lucru va face navigarea în aplicație și mai accesibilă.
Acțiuni de accesibilitate
Când aplicația dvs. acceptă acțiuni precum un clic, apăsare lungă sau glisare , trebuie să ajustați aceste acțiuni pentru persoanele cu deficiențe de vedere. Acesta este ceea ce ne vom concentra în această parte a articolului.
Vezi cum o poți implementa:
ViewCompat.addAccessibilityAction( // Vizualizare pentru a adăuga o acțiune de accesibilitate itemView, // Eticheta pe care o citește serviciul de accesibilitate getString(R.string.save) ) { _, _ -> // Comanda de accesibilitate saveItem() Adevărat }
Astfel, TalkBack anunță „Atingeți de două ori pentru a arhiva” .
Cu acțiunea de accesibilitate implementată, utilizatorii pot accesa acum acțiunea prin meniul de acțiuni. Vă voi spune puțin mai târziu despre navigarea la acest meniu. Vă rugăm să rețineți: este esențial să permiteți utilizatorilor să efectueze eficient toate fluxurile din cadrul aplicației dvs.
Widgeturi
Această secțiune este scurtă, dar foarte importantă. Când vă creați componenta UI, utilizați sau extindeți widget-urile furnizate de sistem care sunt cât mai jos posibil în ierarhia claselor Android. Widgeturile furnizate de sistem aflate la distanță în ierarhie au deja cele mai multe dintre capabilitățile de accesibilitate de care are nevoie aplicația dvs. Cele principale includ:
- Acțiuni de accesibilitate
- Caracteristici
- Informații de stat.
Datorită acestui fapt, nu va trebui să scrieți suport complet de accesibilitate pentru o componentă de la zero și veți reduce riscul de eroare.
Navigare
TalkBack continuă să crească. Am folosit două meniuri contextuale (global și local) nu cu mult timp în urmă pentru a naviga în sistemul nostru de smartphone. Acum, aceste două meniuri au devenit unul singur.
Meniul contextual este utilizat în două scopuri principale:
- După cum sugerează și numele, este folosit pentru navigare. Puteți naviga prin cuvinte, anteturi, linkuri, rânduri, conținut unic sau alte puncte, în funcție de preferințele sau capacitățile aplicației.
- Al doilea scop permite utilizatorului să schimbe rapid setările și controalele TalkBack.
În acest meniu, puteți găsi un set de acțiuni (menționate în secțiunea „ Acțiune de accesibilitate ” de mai sus). Cum poți accesa acest meniu? E foarte simplu. Trebuie doar să faceți o glisare în sus și un gest corect.
Testare de accesibilitate
În proiectele pe care le-am dezvoltat până acum, am beneficiat în principal de următoarele trei ajutoare: Scaner de accesibilitate, Espresso și Lint. Desigur, aveți mult mai multe instrumente la dispoziție. Vă recomand cu căldură să le verificați singur. Puteți găsi toată documentația necesară aici.
Scaner de accesibilitate

Acest instrument scanează interfața cu utilizatorul și oferă recomandări pentru îmbunătățirea accesibilității aplicațiilor.
Scanerul de accesibilitate permite oricui, nu doar dezvoltatorilor, să identifice rapid și cu ușurință unele îmbunătățiri comune ale accesibilității, de exemplu, ținte de atingere mici, erori de contrast pentru text și imagini, descrieri lipsă de conținut pentru widget-uri fără etichete etc. Dacă doriți să începeți să utilizați Scanerul de accesibilitate sau pur și simplu căutați instrucțiuni mai detaliate, vă rugăm să citiți următoarea documentație.
Android Lint
Sunt sigur că cei mai mulți dintre voi cunoașteți acest instrument din munca voastră zilnică. Ceea ce merită reținut este că Android Studio oferă și avertismente despre diverse probleme de accesibilitate și link-uri către locurile din codul sursă care conțin aceste probleme.
Espresso
Espresso este o bibliotecă de testare Android care vă permite să testați rapid și ușor interfața cu utilizatorul. Permite interacțiunea cu componentele interfeței cu utilizatorul testate ale aplicației și asigură că apar anumite comportamente sau sunt îndeplinite condițiile. Desigur, ca parte a suportului de accesibilitate, puteți activa și configura testarea accesibilității .
rezumat
A face aplicația dvs. accesibilă nu o deschide doar pentru noi utilizatori. Ajută la îmbunătățirea vieții noastre de zi cu zi și face lumea mai incluzivă. Sper că acest articol v-a ajutat să aflați despre accesibilitate. Pentru citiri suplimentare, vă rugăm să nu uitați să verificați documentația oficială.