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

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

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

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

והכי חשוב, משתמשים עם ליקויי ראייה נהנים מתוכן מדיה באותה מידה כמו משתמשים עם ראייה תקינה. סקר שנערך בשנת 2017 שהוזמן על ידי Comcast הראה ש-96% מהמשתמשים שהם עיוורים או לקויי ראייה צופים בטלוויזיה באופן קבוע, ו-81% מהם צופים יותר משעה ביום. עם זאת, 65% מהמשיבים דיווחו גם על בעיות בחיפוש תוכניות בטלוויזיה. ובסקר מ-2020 בבריטניה, 80% מהאנשים הנכים אמרו שהם חוו בעיות נגישות בשירותי סטרימינג של וידאו על פי דרישה (VOD).

טכנולוגיות מסייעות יכולות לעזור למשתמשים עם לקות ראייה, אבל חשוב גם לתמוך בנגישות בתהליך גילוי התוכן באפליקציות לטלוויזיה. לדוגמה, כדאי להקפיד לספק הנחיות לניווט ולתייג את הרכיבים בצורה נכונה, ולוודא שאפליקציות הטלוויזיה פועלות היטב עם תכונות נגישות כמו 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);
}