במדריך הזה מפורטות שיטות מומלצות לגישה נגישות ב-Android TV, וגם המלצות לאפליקציות מקוריות ולאפליקציות לא מקוריות.
למה נגישות חשובה לאפליקציה לטלוויזיה?
לקויות ראייה הן תופעה נפוצה בקרב האוכלוסייה שצופה בטלוויזיה. לפי ארגון הבריאות העולמי (WHO), 2.2 מיליארד אנשים ברחבי העולם סובלים מליקוי ראייה. בארה"ב, 32 מיליון אמריקאים בני 18 ומעלה סבלו מאובדן משמעותי בראייה, לפי הסקר הלאומי 2018 Health Interview Survey. לפי האיחוד האירופי לעיוורים (EBU), באירופה יש 30 מיליון עיוורים ואנשים עם לקות ראייה חלקית.
והכי חשוב, משתמשים עם ליקויי ראייה נהנים מתוכן מדיה באותה מידה כמו משתמשים עם ראייה תקינה. סקר משנת 2017 שהוזמן על ידי Comcast הראה ש-96% מהמשתמשים שהם עיוורים או לקויי ראייה צופים באופן קבוע בטלוויזיה, ו-81% מהם צופים יותר משעה ביום. עם זאת, 65% מהמשיבים דיווחו גם על בעיות בחיפוש תוכניות בטלוויזיה. בסקר שנערך בבריטניה בשנת 2020, 80% מהאנשים עם מוגבלויות אמרו שחוו בעיות נגישות בשירותי סטרימינג של וידאו על פי דרישה.
טכנולוגיות מסייעות יכולות לעזור למשתמשים עם לקות ראייה, אבל חשוב גם לתמוך בנגישות בתהליך גילוי התוכן באפליקציות לטלוויזיה. לדוגמה, כדאי לשים לב במיוחד למתן הנחיות ניווט ולהוספת תוויות בצורה נכונה, ולוודא שהאפליקציות לטלוויזיה פועלות בצורה תקינה עם תכונות נגישות כמו TalkBack. הפעולות האלה יכולות לשפר משמעותית את החוויה של משתמשים עם ליקויי ראייה.
השלב הראשון לשיפור הנגישות הוא הגברת המוּדעוּת. המדריך הזה יכול לעזור לכם ולצוות שלכם לגלות בעיות נגישות באפליקציה לטלוויזיה.
משאבים בנושא נגישות ב-Android
מידע נוסף על נגישות ב-Android זמין במשאבים שלנו לפיתוח נגישות.
שינוי גודל הטקסט
אפליקציות ל-Android TV צריכות לפעול בהתאם להעדפת המשתמש לגבי שינוי גודל הטקסט על ידי תמיכה בדחיסות פיקסלים שונה.
חשוב לשים לב במיוחד לדברים הבאים:
- יש להשתמש ב-
wrap_content
למאפיינים ברכיבי ממשק המשתמש. - חשוב לוודא שהפריסות של הרכיבים משתנות בהתאם לקנה המידה של הטקסט.
- חשוב לוודא שהרכיבים עדיין נכנסים למסך כשמשנים את גודל הטקסט לגדול יותר.
- אין להשתמש ביחידות גודל טקסט מסוג sp ברכיבים שלא גמישים.
בודקים את הערך של
FONT_SCALE
כדי לבצע התאמה בתצוגות בהתאמה אישית:// Checking font scale with Context val scale = resources.configuration.fontScale Log.d(TAG, "Text scale is: " + scale)
אפשר לשנות את קנה המידה של הטקסט באמצעות הפקודה הבאה:
adb shell settings put system font_scale 1.2f
ב-Android 12 ואילך, המשתמשים יכולים לשנות את התאמת הטקסט בהגדרות המכשיר.
פריסות מקלדת
ב-Android 13 (רמת API 33) ואילך, אפשר להשתמש ב-getKeyCodeForKeyLocation()
כדי לחפש את קודי המפתחות במיקומים הצפויים שלהם.
יכול להיות שתצטרכו לעשות זאת אם המשתמש מיפה מחדש את מיקומי המפתחות או אם הוא משתמש במקלדת שאין לה פריסה רגילה.
תיאור האודיו
ב-Android 13 (רמת API 33) ואילך, העדפת נגישות חדשה ברמת המערכת מאפשרת למשתמשים להפעיל תיאורים קוליים בכל האפליקציות. אפליקציות ל-Android TV יכולות לבדוק את ההעדפה של המשתמש באמצעות שאילתה עם isAudioDescriptionRequested()
.
Kotlin
private lateinit var accessibilityManager: AccessibilityManager // In onCreate(): accessibilityManager = getSystemService(AccessibilityManager::class.java) // Where your media player is initialized if (am.isAudioDescriptionRequested) { // User has requested to enable audio descriptions }
Java
private AccessibilityManager accessibilityManager; // In onCreate(): accessibilityManager = getSystemService(AccessibilityManager.class); // Where your media player is initialized if(accessibilityManager.isAudioDescriptionRequested()) { // User has requested to enable audio descriptions }
אפליקציות ל-Android TV יכולות לעקוב אחרי השינויים בהעדפות של משתמשים על ידי הוספת מאזין ל-AccessibilityManager
:
Kotlin
private val listener = AccessibilityManager.AudioDescriptionRequestedChangeListener { enabled -> // Preference changed; reflect its state in your media player } override fun onStart() { super.onStart() accessibilityManager.addAudioDescriptionRequestedChangeListener(mainExecutor, listener) } override fun onStop() { super.onStop() accessibilityManager.removeAudioDescriptionRequestedChangeListener(listener) }
Java
private AccessibilityManager.AudioDescriptionRequestedChangeListener listener = enabled -> { // Preference changed; reflect its state in your media player }; @Override protected void onStart() { super.onStart(); accessibilityManager.addAudioDescriptionRequestedChangeListener(getMainExecutor(), listener); } @Override protected void onStop() { super.onStop(); accessibilityManager.removeAudioDescriptionRequestedChangeListener(listener); }