このガイドでは、Android TV でのユーザー補助に関するベスト プラクティスと、ネイティブ アプリとネイティブ以外のアプリの両方に関する推奨事項について説明します。
テレビアプリでユーザー補助が重要なのはなぜですか?
テレビを見る人にとって視覚障がいは珍しいことではありません。 世界で 22 億人が推定している 視覚障がいがある人、 世界保健機関(WHO)に提出しました。米国では 18 歳以上の米国人が 3, 200 万人にのぼる 重度の視力喪失、 2018 National Health Interview Survey より ヨーロッパでは 3,000 万ポイント 欧州視覚障害連合(EBU)によると、視覚障害者と
最も重要なことは、視覚障がいのあるユーザーはメディア コンテンツを楽しんでいることです。 同じくらい重要ですComcast が委託した2017 年の調査によると、目の不自由なユーザーや視力の弱いユーザーの 96% がテレビを定期的に視聴しており、81% が 1 日に 1 時間以上視聴しています。一方で、65% のユーザーは、テレビの番組を検索する際に問題が発生したと回答しています。また、2020 年に英国で実施された調査では、障がい者の 80% がビデオ オンデマンド ストリーミング サービスでユーザー補助に関する問題を経験したことがあると回答しています。
支援技術はロービジョンのユーザーを助けることができ、実際に役立ちますが、 TV アプリのコンテンツを見つける過程でアクセシビリティをサポートすることが重要です。 たとえば、経路案内や案内の提供に特に注意を払い、 要素を適切にラベル付けし、TV アプリがユーザー補助機能で適切に動作できるようにする TalkBack などの便利な機能です。これらの手順を実施すると、ユーザー エクスペリエンスが大幅に向上します。 サポートしています。
アクセシビリティを改善するための第一歩は、認知度を高めることです。このガイドの内容 TV アプリのユーザー補助機能の問題を発見する際に役立ちます。
Android ユーザー補助機能のリソース
Android のユーザー補助機能について詳しくは、ユーザー補助機能の開発リソースをご覧ください。
テキストの拡大縮小
Android TV アプリは、さまざまなピクセル密度をサポートして、テキスト スケーリングに関するユーザーの設定を尊重する必要があります。
特に以下の点に注意してください。
- UI コンポーネントのディメンションには
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()
。
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
にリスナーを追加することで、ユーザーの設定が変更されたタイミングをモニタリングできます。
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); }