Accessibility (a11y), engelli kişilerin kullanabileceği uygulamalar oluşturma pratiğidir. Dünya Sağlık Örgütü'ne göre, 1,3 milyardan fazla insan (nüfusun %16'sı) bir tür engellilikle yaşamaktadır. WHO (2024 raporu) dijital erişilebilirliğin kritik derecede önemli hale geldiğini vurgulamaktadır. iOS ve Android'de erişilebilirliğin nasıl sağlanacağını ve hangi standartların mevcut olduğunu inceleyelim.
Önemli Noktalar
Accessibility (kısaltma a11y — a harfi + 11 harf + y), bir ürünün engelli kişiler tarafından kullanılabilir olma özelliğidir. Mobil uygulamalar bağlamında bu şu anlama gelir: ekran okuyucu (VoiceOver, TalkBack) desteği, yeterli metin boyutu, yüksek kontrast, klavye navigasyonu için doğru odak sırası ve baş dönmesine neden olan animasyonlu öğelerin olmaması.
Kapsayıcılık yalnızca etik değil aynı zamanda yasal bir yükümlülüktür. Birçok ülkede dijital erişilebilirlik yasaları vardır: ADA (ABD), Bölüm 508, European Accessibility Act (AB, 2025'ten itibaren uygulamalar için zorunlu). Business Disability Forum'a göre, erişilebilirliğe yatırım yapan şirketler hedef kitlelerini %15–20 oranında artırır ve yasal riskleri azaltır.
IT Sectr'de, geliştirmenin her aşamasında erişilebilirliği kontrol ediyoruz. Deneyimimiz gösteriyor: tasarım aşamasında erişilebilirlik sorunlarını düzeltmek, yayınlamadan sonrakinden 10 kat daha ucuzdur. Erişilebilirlik bir özellik değil, modern bir uygulama için temel bir gereksinimdir.
Apple ekosistemi güçlü erişilebilirlik araçları sunar. VoiceOver, ekranda olup biten her şeyi seslendiren yerleşik bir ekran okuyucudur. Kullanıcı cihazı jestlerle kontrol eder: sağa kaydırma — sonraki öğe, sola kaydırma — önceki öğe, çift dokunma — etkinleştirme.
Accessibility Label, VoiceOver'ın bir öğe için okuduğu metindir. Varsayılan olarak iOS, düğme metnini veya etiketi kullanır, ancak simgeler ve grafik öğeler için etiketi açıkça belirlemeniz gerekir. Accessibility Trait, öğe türünü tanımlayan bir özelliktir: button (düğme), header (başlık), link (bağlantı), image (görsel). Doğru traitler, kullanıcının bir öğeyle nasıl etkileşime gireceğini anlamasına yardımcı olur.
VoiceOver 40'tan fazla dili destekler ve tüm Apple cihazlarında çalışır. Geliştirici için asıl önemli olan, her arayüz öğesi için doğru accessibilityLabel ve accessibilityTraits ayarlamaktır. Bir öğe erişilebilir olmamalıysa (dekoratif görsel), isAccessibilityElement = false olarak ayarlayın.
// Swift — bir düğme için erişilebilirlik ayarı
let shareButton = UIButton()
shareButton.setImage(UIImage(named: "share-icon"), for: .normal)
shareButton.accessibilityLabel = "Bu makaleyi paylaş"
shareButton.accessibilityHint = "Gönderme yöntemi seçmek için bir iletişim kutusu açar"
shareButton.accessibilityTraits = .button
// SwiftUI — daha da basit
struct ShareButtonView: View {
var body: some View {
Button(action: share) {
Image(systemName: "square.and.arrow.up")
}
.accessibilityLabel("Paylaş")
.accessibilityHint("Paylaşma menüsünü açar")
}
}
Kod, metinsiz (sadece simge) bir düğme için erişilebilirlik ayarını gösteriyor. AccessibilityLabel, kullanıcının duyacağı şeydir. AccessibilityHint, eylemin sonucu hakkında ek bir ipucudur. Etikette «düğmesi» gibi ifadeler kullanmayın — Trait zaten bunun bir düğme olduğunu belirtir.
TalkBack, Android için Google'ın ekran okuyucusudur ve Android Accessibility Suite paketinin bir parçasıdır. VoiceOver gibi, arayüz öğelerini seslendirir ve jestlerle kontrol edilir. TalkBack 100'den fazla dili destekler ve Google Play Services olan tüm cihazlarda çalışır.
Content Description, Android'de accessibilityLabel'ın karşılığıdır. XML'de android:contentDescription özniteliği veya kodda setContentDescription() yöntemi ile ayarlanır. Odaklanamayan öğeler (dekoratif ImageView) için importantForAccessibility="no" kullanın.
Focus Order (odak sırası), TalkBack'in kaydırma yaparken öğeler arasında geçiş sırasıdır. Varsayılan olarak Android, düzendeki öğelerin sırasını kullanır, ancak accessibilityTraversalBefore ve accessibilityTraversalAfter öznitelikleriyle değiştirilebilir. Bu, özel bileşenlere sahip karmaşık ekranlar için önemlidir.
IT Sectr'de, her ekranda Focus Order'ı kontrol ediyoruz. Odak sırası hataları en yaygın erişilebilirlik sorunları arasındadır. Örneğin, bir başlıktan sonra kullanıcı makale metni yerine yorumlara gidiyorsa — bu bir erişilebilirlik hatasıdır.
WCAG (Web Content Accessibility Guidelines), W3C tarafından geliştirilen uluslararası bir erişilebilirlik standardıdır. Mevcut sürüm WCAG 2.2'dir (2023). Standard 4 prensibe ayrılır: Perceivable (algılanabilir), Operable (çalıştırılabilir), Understandable (anlaşılabilir), Robust (sağlam) — kısaltma POUR.
WCAG Seviyeleri: A (minimum), AA (orta, AB'de yasal olarak zorunlu), AAA (maksimum). Mobil uygulamalar için AA seviyesi yeterlidir: metin kontrastı en az 4.5:1, ekran okuyucu desteği, minimum hedef boyutu 44x44 piksel, video için altyazılar.
Seviye A — temel gereksinimler: görseller için metin alternatifleri, klavye kontrolü, en az 3:1 kontrast. Seviye AA — orta: kontrast 4.5:1, %200'e kadar ölçekleme desteği, doğru başlıklar ve etiketler. Seviye AAA — yüksek: kontrast 7:1, video için işaret dili, tam ses kontrolü. Pratikte çoğu şirket AA'yı hedefler.
| Parametre | iOS | Android |
|---|---|---|
| Ekran okuyucu | VoiceOver | TalkBack |
| Öğe etiketi | accessibilityLabel | android:contentDescription |
| Öğe türü | accessibilityTraits | accessibilityRole (Compose), odak önemi |
| Odak sırası | Otomatik (değiştirilebilir) | accessibilityTraversalBefore/After |
| Metin ölçekleme | Dynamic Type (UIFontMetrics) | sp (scale-independent pixels) |
| Hareketi azalt | UIAccessibility.isReduceMotionEnabled | Settings.Global.getFloat(... ANIMATOR_DURATION_SCALE) |
Tablo 2. iOS ve Android erişilebilirlik API'lerinin karşılaştırması. Farklı isimlere rağmen kavramlar aynıdır: etiket, tür, odak sırası ve metin uyarlama desteği.
Erişilebilirlik testi, bir uygulamanın WCAG standartlarına uygunluğunu ve ekran okuyucularla doğru çalışmasını kontrol etmektir. Minimum test seti: VoiceOver/TalkBack'i etkinleştirin ve uygulamanın tüm ekranlarında gezinin. Dinleyerek tüm öğelerin seslendirildiğini, odak sırasının mantıklı olduğunu ve uygunsuz öğelerin (dekoratif) yok sayıldığını kontrol edin.
Otomatik araçlar: Xcode Accessibility Inspector (iOS için Xcode'da denetim), Android Accessibility Scanner (ekranı tarar ve sorunları bulur), Axe DevTools, WAVE. Bu araçlar kontrast, hedef boyutu, etiketlerin varlığı ve diğer parametreleri kontrol eder.
IT Sectr'de, her yayın öncesinde bir erişilebilirlik incelemesi yapıyoruz. Süreç şunları içerir: otomatik denetim (Accessibility Inspector), VoiceOver ve TalkBack ile manuel test, kontrast ve metin ölçekleme kontrolü. Sorunları Jira'ya kaydediyor ve bir sprinte atıyoruz. Bu, tüm projelerde WCAG AA seviyesini korumamızı sağlar.
Sıkça Sorulan Sorular
Ayarlar → Erişilebilirlik → VoiceOver. Veya erişilebilirlik kısayolu etkinken yan düğmeye (veya Ana Ekran düğmesine) üç kez basın. Hızlı etkinleştirme için Siri'yi kullanın: «VoiceOver'ı aç». Android'de TalkBack, Ayarlar → Erişilebilirlik → TalkBack'de etkinleştirilir.
AB mevzuatına (2025'ten itibaren European Accessibility Act) ve ABD yasalarına (ADA) uymak için AA seviyesi gereklidir. Bu şu anlama gelir: kontrast 4.5:1, tüm öğelerin etiketleri var, hedef boyutu en az 44x44 piksel, ekran okuyucu desteği, video için altyazılar.
Evet. Erişilebilirlik herkese yardımcı olur: yaşlı insanlar, parlak güneşli bir günde kullanıcılar, kucağında bebek olan ebeveynler (tek elle). Ayrıca, birçok ülkede yasal bir gerekliliktir. Kapsayıcılık kitleyi genişletir ve herkes için kullanıcı deneyimini iyileştirir.
Şu araçları kullanın: WebAIM Contrast Checker (çevrimiçi), Figma/Sketch için Stark. WCAG AA için, normal metin için minimum oran 4.5:1 ve büyük metin (18px ve üzeri) için 3:1'dir. AAA için — sırasıyla 7:1 ve 4.5:1.
Özet
Anahtar teslim bir mobil uygulama geliştireceğiz
IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.