Android'de erişilebilirlik: geliştirici bilgileri ve uygulama kılavuzu

Yayınlanan: 2022-09-12

Dünya çapında yaklaşık 285 milyon görme engelli insan var. Bu nedenle, yeni bir uygulama tasarlarken veya bir tasarım yenilemeyi düşünürken, uygulamanızı bu geniş kullanıcı grubunun ihtiyaçlarına göre ayarlamak kesinlikle iyi bir fikirdir. Uygulamaları görme engelli kişiler için özelleştirmek, tüm kullanıcılarınızın deneyimini geliştirir. Uygulamanızın erişilebilirliğini iyileştirmeyi düşünmenin diğer nedenleri nelerdir ve nasıl yapılır? Lütfen tüm cevapları aşağıda bulun!

Görme engelliler uygulamaları nasıl kullanıyor?

Ekran okuyucu, kör ve görme engelli kişiler için uygulamaları çalıştırmaya (veya yalnızca akıllı telefonunuzun ekranına göz atmaya) yönelik bir araçtır. Android için en popüler ekran okuyucu TalkBack'tir . Bu araçla kullanıcı, kaydırma veya sürükleme gibi hareketlerle girdi gerçekleştirir.

Genellikle çıktı sözlü geri bildirimdir. TalkBack'te iki hareketle giriş modumuz vardır:

  • Parmağınızı ekranda sürüklediğiniz keşif öğesine dokunun .
  • İlgilendiğiniz öğeyi bulana kadar parmağınızla sola ve sağa kaydırdığınız doğrusal gezinme .

İlgilendiğiniz öğeye ulaştığınızda, etkinleştirmek için üzerine iki kez dokunabilirsiniz. TalkBack'in nasıl çalıştırılacağı hakkında daha fazla bilgi edinmek ister misiniz? Lütfen aşağıdaki makaleyi okuyun.

TalkBack, Android için en popüler ekran okuyucudur

Erişilebilir uygulama ilkeleri

Uygulamamızı görme engellilerin kullanabilmesi için öncelikle uygulamamızı tasarlarken uymamız gereken ilkeleri anlamamız gerekiyor. Bu nedenle, uygulama bölümüne geçmeden önce en önemli varsayımları tartışalım.

Düzen ve tipografi

Uygulamanın görsel kısmı çok önemlidir. Düzgün uygulanmış düğmeler ve metin işleme, uygulamayı erişilebilir kılan en önemli faktörlerden biridir.

Dokunmatik hedefler

Dokunma hedefleri, ekranın kullanıcı etkileşimine yanıt veren bölümleridir. Ana öneri, en az 48dp x 48dp çözünürlüğe sahip dokunma hedefleri oluşturmaktır. Bir sonraki bölümde bununla ilgili daha fazla şey okuyacaksınız.

Dokunma hedefleri, ekranın kullanıcı etkileşimine yanıt veren bölümleridir.

Renk ve Kontrast

World Wide Web, renk eksiklikleri olan kullanıcılara yardımcı olmak ve yardımcı olmak için renk kontrastı erişilebilirlik yönergeleri oluşturdu. Belgelere göre, renk kontrastı erişilebilirliğine ilişkin kritik hususlar şunlardır:

  • Oran : metin ve etkileşimli öğeler en az 4,5:1 renk kontrast oranına sahip olmalıdır.
  • Gösterge olarak renk : renk, etkileşimli öğeler için tek gösterge olmamalıdır. Fareyle üzerine gelindiğinde bağlantıların altını çizmeniz veya gerekli alanları yıldız işaretiyle işaretlemeniz daha iyi olur.
  • Renk körlüğü: kırmızı/yeşil renk körlüğü en yaygın olanıdır. Bu nedenle, kırmızı üzerine yeşil veya yeşil üzerine kırmızıdan kaçınmalısınız. Aynı nedenle, “kötü” ve “iyi” göstergeler için lütfen kırmızı ve yeşili kullanmaktan kaçının.

tipografi

Kullanıcılar okunabilirliği artırmak için yazı tipi boyutunu artırabilir. Android cihazlarda sık kullanılan bir sistem seçeneğidir, bu nedenle büyük ve yabancı yazı tipleri için yeterli alan olduğundan emin olun.

Erişilebilirlik metni

Erişilebilirlik metni hem görünür metindir (örneğin, UI öğesi etiketleri, düğmeler, bağlantılar ve formlar üzerindeki metin) hem de görünmez açıklamalardır (açıklanan bileşen hakkında daha fazla bilgi sağlayabilen içerik açıklamaları).

Erişilebilirlik metninin en yaygın kullanım durumları nelerdir?

Kontrol türleri ve durumları

TalkBack gibi ekran okuyucular, kontrol adını söyleyerek veya bir ses çıkararak bir kontrolün türünü veya durumunu otomatik olarak anons edebilir.

Eylem tarafından öğelerin belirtilmesi

Eylem fiilleri, bir öğenin veya bağlantının üzerine dokunduğunuzda ne yaptığını belirtir ve bir görünümün ne yaptığını tanımlar.

Durum değişikliği olan öğeler

Değerler veya durumlar arasında geçiş yapan simgeler olması durumunda, ekran okuyucu bir simgeyi kullanıcıya nasıl sunulduğuna göre tanımlar. Daha fazla örnek için lütfen Materyal Tasarımı kılavuzunu okuyun.

Özet

Bu bölüm size tasarımın görme engelliler ve körler için nasıl uyarlanması gerektiğini öğretti. Şimdiye kadar düzen, tipografi ve metin erişilebilirliğini ele aldık. Şimdi bunların uygulama ilkelerine geçeceğiz.

Erişilebilirlik uygulaması

Aşağıdaki bölümde, uygulamanıza erişilebilirliği uygulamanın temel yönlerine odaklanacağım. Hadi başlayalım!

Düzen – Dokunma hedefi

Teorik kısımda bahsettiğim gibi her tıklanabilir eleman en az 48dp/48dp olmalıdır.

Bunu yapmak için birkaç seçenek var. Yapabilirdiniz:

  • Genişlik ve yükseklik öznitelikleri için değerleri önerilen şekilde belirleyin (48dp/48dp)
  • Simgelerin etrafına dolgu ekleyin
  • Nitelikler için değerleri belirtin: MinWidth ve/veya minHeight
  • TouchDelegate'i kaydedin.

Google'ın resmi belgelerinden bir örneğe bakın. Önerilen dokunma hedefi boyutuna sahip öğeyi gösterir:

 <ResimDüğmesi 
   ...
   android:minWidth="40dp"
   android:minYükseklik="32dp"
   android:paddingLeft="4dp"

   android:paddingTop="8dp"
   android:paddingRight="4dp"
   android:paddingBottom="8dp" />

Erişilebilirlik metni

Erişilebilirlik metnini UI öğelerinize eklemenin yollarından biri, ContentDescription adlı bir Android özniteliği kullanmaktır. Örneğin, bir resim düğmesi için sağlamazsanız, bir TalkBack kullanıcısının deneyimi sarsıcı olabilir.

Örneğe bakınız:

 <!-- Aşağıdaki dizenin değeri "Ara"dır. -->
<Görüntü Görünümü
   ...
   android:contentDescription="@string/search" />

Aralayıcılar ve ayırıcılar gibi dekoratif öğeler için “android:contentDescription” niteliğini "null" olarak ayarlayın. Uygulamanız yalnızca Android 4.1 (API düzeyi 16) veya sonraki sürümleri çalıştıran cihazları destekliyorsa, bunun yerine “android:importantForAccessibility” özniteliklerini "no" olarak ayarlayabilirsiniz.

Lütfen içerik açıklamanıza kontrol tipini veya kontrol durumunu eklemediğinizden emin olun. Android'de yerel olarak düğmeler, seçili, işaretli vb. kelimeler bulunur.

etiketleme teknikleri

Aşağıda, uygulamanızdaki UI bileşenlerini açıklamak için bir dizi iyi uygulama bulabilirsiniz.

Birbirini tanımlayan bileşenler

Bazı veriler sağlamanıza izin veren bir bileşeniniz varsa (örneğin EditText), onu tanımlayan bir View nesnesine (örneğin TextView) sahip olmak iyidir. Bu nedenle "android:labelFor" özelliği oluşturuldu. Lütfen örneğe bir göz atın:

 <!-- Etiket metni "Ad:" olacaktır -->
<Metin Görünümü 
   ...
   android:
   android:labelFor="@+id/nameEntry"
   android:text="@string/name" />

<!-- Erişilebilirlik metni "Ad için metni düzenle" olacaktır -->
<DüzenleMetni 
   ...
   android: />

<!-- Etiket metni "Soyadı:" olacaktır -->
<Metin Görünümü 
   ...
   android:
   android:labelFor="@+id/soyadıGirişi"
   android:text="@string/soyadı" />

<!-- Erişilebilirlik metni "Soyadı için metni düzenle" olacaktır -->
<DüzenleMetni 
   ...
   android: />

İlgili öğeler koleksiyonu

Uygulamanızda doğal olarak ilişkili kullanıcı arabirimi öğeleri varsa (bir kitap hakkında bilgi içeren alanlar gibi), odaklanabilir bir kapsayıcı kullanarak bunları gruplar halinde düzenleyebilirsiniz . Bunu yapmak için kapsayıcı nesnesi “android:focusable” niteliğini true olarak ayarlayın.

Bunu yaparken TalkBack, iç öğelerin içerik açıklamalarını birbiri ardına tek bir duyuruda sunabilir. İçeriği gruplamak, konuşma çıkışını kolaylaştırırken kullanıcının yapması gereken kaydırma miktarını azaltır. Lütfen örneğe bakın:

 <Doğrusal Düzen 
   ...
   android:
   android:yönlendirme="dikey"
   android:odaklanabilir="doğru">

   <Metin Görünümü
	  ...
       android:
       android:text="@string/title"/>

   <Metin Görünümü
	  ...
       android:
       android:text="@string/author"/>

   <Metin Görünümü
	  ...
       android:
       android:text="@string/sayfalar"/>
</LinearLayout>

Tabii ki, kapsayıcınızın iç içe görünümleri varsa, bu çözümü onlara da uygulayabilirsiniz. Bu, uygulamanızda gezinmeyi daha da erişilebilir hale getirecektir.

Erişilebilirlik işlemleri

Uygulamanız tıklama, uzun basma veya kaydırma gibi işlemleri desteklediğinde, bu işlemleri görme engelli kişilere göre ayarlamanız gerekir. Makalenin bu bölümünde odaklanacağımız şey budur.

Nasıl uygulayabileceğinize bakın:

 ViewCompat.addAccessibilityAction(
   // Erişilebilirlik eylemi eklemek için görüntüle
   öğeGörünüm,
   // Erişilebilirlik hizmetinin okuduğu etiket
   getString(R.string.save)
) { _, _ ->
   // Erişilebilirlik komutu
   saveItem()
   doğru
}

Bu, TalkBack'in "Arşivlemek için iki kez dokunun" duyurusunu yapmasına neden olur.

Erişilebilirlik eyleminin uygulanmasıyla, kullanıcılar artık eylemler menüsünden eyleme erişebilir. Bu menüde gezinmeyi biraz sonra anlatacağım. Lütfen unutmayın: Kullanıcıların uygulamanızdaki tüm akışları verimli bir şekilde gerçekleştirmesine izin vermek çok önemlidir.

Widget'lar

Bu bölüm kısa ama çok önemli. UI bileşeninizi oluşturduğunuzda, Android'in sınıf hiyerarşisinde olabildiğince aşağıda bulunan sistem tarafından sağlanan widget'ları kullanın veya genişletin. Hiyerarşinin çok aşağısındaki sistem tarafından sağlanan widget'lar , uygulamanızın ihtiyaç duyduğu erişilebilirlik özelliklerinin çoğuna zaten sahiptir. Başlıcaları şunları içerir:

  • Erişilebilirlik işlemleri
  • özellikleri
  • Devlet bilgileri.

Bu sayede sıfırdan bir bileşen için tam erişilebilirlik desteği yazmanıza gerek kalmayacak ve hata riskini azaltacaksınız.

Navigasyon

TalkBack büyümeye devam ediyor. Kısa bir süre önce akıllı telefon sistemimizde gezinmek için iki Bağlam menüsü (küresel ve yerel) kullandık. Artık bu iki menü bir oldu.

Bağlam menüsü iki temel amaç için kullanılır:

  • Adından da anlaşılacağı gibi navigasyon için kullanılır. Uygulama tercihlerine veya yeteneklerine bağlı olarak kelimeler, başlıklar, bağlantılar, satırlar, benzersiz içerik veya diğer noktalar arasında gezinebilirsiniz.
  • İkinci amaç, kullanıcının TalkBack ayarlarını ve kontrollerini hızlı bir şekilde değiştirmesini sağlar.

Bu menüde bir dizi eylem bulabilirsiniz (yukarıdaki “ Erişilebilirlik eylemi ” bölümünde bahsedilmiştir). Bu menüye nasıl erişebilirsiniz? Çok basit. Tek yapmanız gereken yukarı kaydırmak ve doğru bir jest yapmak.

Erişilebilirlik testi

Şimdiye kadar geliştirdiğim projelerde başlıca şu üç yardımcıdan faydalandım: Erişilebilirlik tarayıcısı, Espresso ve Lint. Elbette, emrinizde çok daha fazla araç var. Bunları kendi başınıza kontrol etmenizi şiddetle tavsiye ederim. Gerekli tüm belgeleri burada bulabilirsiniz.

Erişilebilirlik Tarayıcısı

Erişilebilirlik Tarayıcısı - hızlı ve kolay erişilebilirlik testi için araç

Bu araç, kullanıcı arabirimini tarar ve uygulama erişilebilirliğini iyileştirmek için öneriler sunar.

Erişilebilirlik Tarayıcısı , yalnızca geliştiricilerin değil herkesin, örneğin küçük dokunma hedefleri, metin ve resimler için kontrast hataları, etiketlenmemiş widget'lar için eksik içerik açıklamaları vb. gibi bazı yaygın erişilebilirlik geliştirmelerini hızlı ve kolay bir şekilde tanımlamasına olanak tanır. Erişilebilirlik Tarayıcısını kullanmaya başlamak istiyorsanız veya basitçe daha ayrıntılı talimatlar için arama yapın, lütfen aşağıdaki belgeleri okuyun.

Android Lint

Çoğunuzun bu aracı günlük işinizden tanıdığınıza eminim. Hatırlanması gereken şey, Android Studio'nun çeşitli erişilebilirlik sorunları hakkında uyarılar ve kaynak kodunda bu sorunları içeren yerlere bağlantılar sağlamasıdır.

Espresso

Espresso , kullanıcı arayüzünüzü hızlı ve kolay bir şekilde test etmenizi sağlayan bir Android test kitaplığıdır . Uygulamanın test edilmiş kullanıcı arabirimi bileşenleriyle etkileşimi sağlar ve belirli davranışların oluşmasını veya koşulların karşılanmasını sağlar. Elbette erişilebilirlik desteğinin bir parçası olarak erişilebilirlik testini etkinleştirebilir ve yapılandırabilirsiniz.

Özet

Uygulamanızı erişilebilir kılmak , onu yalnızca yeni kullanıcılara açmaz. Günlük yaşamımızı iyileştirmeye yardımcı olur ve dünyayı daha kapsayıcı hale getirir. Umarım bu makale erişilebilirlik hakkında bilgi edinmenize yardımcı olmuştur. Daha fazla okumak için lütfen resmi belgeleri kontrol etmeyi unutmayın.