שיטות מומלצות בנושא נגישות ב-Android TV

המדריך הזה מספק שיטות מומלצות לנגישות ב-Android TV, המלצות גם לאפליקציות מקוריות וגם לאפליקציות לא מותאמות.

למה נגישות חשובה לאפליקציה לטלוויזיה?

לקויות ראייה הן תופעה נפוצה בקרב האוכלוסייה שצופה בטלוויזיה. לפי ארגון הבריאות העולמי (WHO), 2.2 מיליארד אנשים ברחבי העולם סובלים מליקוי ראייה. לפי הסקר הלאומי של ראיונות בנושא בריאות לשנת 2018, בארה"ב 32 מיליון אמריקאים בגיל 18 ומעלה חוו אובדן ראייה משמעותי. לפי האיחוד האירופי לעיוורים (EBU), באירופה יש 30 מיליון עיוורים ואנשים עם לקות ראייה חלקית.

הדבר החשוב ביותר הוא שמשתמשים עם ליקויי ראייה נהנים מתוכן מדיה בדיוק כמו החברים שלהם, בעלי יכולת ראיה מלאה. סקר לשנת 2017 שהוזמן על ידי Comcast הראו ש-96% מהמשתמשים שהם עיוורים או לקויי ראייה צופים באופן קבוע בטלוויזיה, כאשר 81% מהצופים צופים במשך יותר משעה ביום. עם זאת, 65% דיווחו גם על נתקלתם בבעיות בחיפוש מה שמשודר בטלוויזיה. ובסקר 2020 UK, 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().

KotlinJava
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
}
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

KotlinJava
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)
}
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);
}