JetpackComposeのアクセシビリティ

最近、新しいコードラボは、のために発売されたAndroidのカバーアクセシビリティにJetpackの作曲。

この記事では、JetpackComposeでアクセシビリティを実装する方法を学習します。

アプリのアクセシビリティを向上させるのに役立つ主なプロパティ

  • タッチターゲットサイズ
  • ラベルをクリックします
  • カスタムアクション
  • コンテンツの説明または視覚要素の説明
  • 見出し
  • カスタムマージ
  • 状態の説明
  • カスタムナビゲーション
  • ユーザーがクリック、タッチ、または操作できる画面上の要素の幅と高さが少なくとも48dp。であることを確認する必要があります。
  • これらのコントロールのサイズが動的に設定されている場合、またはコンテンツのサイズに基づいてサイズが変更されている場合は、sizeIn 修飾子を使用してサイズの下限を設定することを検討してください。
  • Text(
        text = "SizeIn sample",
        modifier = Modifier.sizeIn(
            minWidth = 48.dp,
            minHeight = 48.dp
        )
    )
    

https://developer.android.com/codelabs/jetpack-compose-accessibility/img/6dbe0b3c0ee055e0.png?authuser=4
  • あなたは上で見ることができるように、左 close button’s size was 24 dp、および修正後にそれがある48 dpされている必要。
  • デフォルトでは、クリック可能な要素は、その要素をクリックすると何が行われるかについての情報を提供しません。したがって、TalkBackなどのアクセシビリティサービスは、非常に一般的なデフォルトの説明を使用します。
  • ユーザーがこの要素をクリックするとどうなるかを説明する具体的な説明を提供できます。これは、アクセシビリティが必要なユーザーに最高のエクスペリエンスを提供するのに役立ちます。
  • https://developer.android.com/codelabs/jetpack-compose-accessibility/img/e4aea6991ba119c0.gif
  • ご覧のとおり、左側のトークバックにはDouble-tap to activate、右側の改善後、と書かれていDouble-tap to read articleます。

カスタムアクション

  • カスタムアクセシビリティアクションの助けを借りて、同じリストアイテムに関連するアクションをグループ化できます。
  • 私たちは、のリスト渡すことができCustomAccessibilityActionさんへのcustomActions semantic property
https://developer.android.com/codelabs/jetpack-compose-accessibility/img/3ffb98ce6c64e7c8.gif?authuser=4

コンテンツの説明または視覚要素の説明

  • アクセシビリティサービスには、ピクセルだけに基づいて視覚要素を理解する方法がありません。
  • ビジュアルのcomposablesようにImage、そのビジュアル要素のを渡すことができるIconパラメータを含めますcontentDescription。localized descriptionまたはnull、要素が純粋に装飾的である場合。
  • 私たちは、の部分かを示すことができ、テキストがありheadings、ユーザーが⬇️⬆️上下にスワイプするかによって異なる見出し内をすばやく移動するのに役立ちます。
  • heading semantics propertyこの構成可能オブジェクトが見出しであることを示すようにを設定できます。
  • https://developer.android.com/codelabs/jetpack-compose-accessibility/img/20a34b315f92077e.gif?authuser=4
  • TalkBackなどのユーザー補助サービスは、画面を要素ごとにナビゲートします。
  • デフォルトでは、少なくとも1つのセマンティクスプロパティを設定するJetpack Composeの各低レベルコンポーザブルは、フォーカスを受け取ります。
  • Composablesセマンティクス修飾子とそのプロパティを使用して、一緒にマージできます。mergeDescendants

https://developer.android.com/codelabs/jetpack-compose-accessibility/img/3411ea400894f8.gif?authuser=4

状態の説明

  • コンポーザブルの状態のカスタム説明を追加することで、コンポーザブルコンポーネントのアクセシビリティを向上させることができます。
  • たとえば、チェックボックスのステータスは「チェック済み」または「チェックなし」として読み取られます。修飾子内のstateDescription プロパティを使用して、この説明をカスタム説明に置き換えることができます。semantics
  • https://developer.android.com/codelabs/jetpack-compose-accessibility/img/695e7fc091c77611.gif?authuser=4

Focus Modifiers 異なる構成要素間のナビゲーションをカスタマイズするのに役立ちます

私たちはできる対話でフォーカスメカニズムで作曲次の助けを借りて修飾子。

  • Modifier.focusTarget():コンポーネントをフォーカス可能にすることができます
  • Text(
        text = "Hello World",
        modifier = Modifier.focusTarget()
    )
    

    val (first, second) = FocusRequester.createRefs()
    You can also pass lambda to customize the focus events behaviour
    Text(
        text = "Hello World",
        modifier = Modifier
            .focusOrder(first) {
                this.down = second
            // down, left, right, up, previous, next, start, end
            }
    )
    

    val (first, second) = FocusRequester.createRefs()
    Text(
        text = "FocusRequester",
        modifier = Modifier
            .focusRequester(second)
    )
    // requestFocus 
    second.requestFocus()
    

    Modifier.onFocusChanged { focusState ->
        with(focusState) {
            when {
                hasFocus -> {
                    Log.d("A child of mine has focus!")
                }
                isFocused -> {
                    Log.d("I'm focused!")
                }
            }
        }
    }
    

参考文献

https://developer.android.com/codelabs/jetpack-compose-accessibility?authuser=4#0

https://developer.android.com/jetpack/compose/accessibility?authuser=4

連絡を取り合う

提案された投稿

マルチモジュール プロジェクトで Dagger2 から Hilt に移行する

マルチモジュール プロジェクトで Dagger2 から Hilt に移行する

マルチモジュール プロジェクトで Dagger から Hilt に移行するためのステップバイステップ ガイド。プロジェクトの構造 プロジェクトを視覚化するには、NetworkModule、StorageModule、CommonModule、FeatureModule などの複数のモジュールが含まれています。

アンドロイド | Gboard がタブレット用の新しいレイアウトで更新されました

Google は、Pixel Fold と Pixel Tab の発売に合わせてキーボードのレイアウトを更新しました。

アンドロイド | Gboard がタブレット用の新しいレイアウトで更新されました

Google は最近、Android 用の Gboard キーボード アプリを更新し、タブレット向けに最適化された新しいレイアウトを追加しました。今朝、入力しにくいことに気づき、よく調べてみると、キーボードが交換されていることがわかりました。

関連記事

キリスト教徒の迫害: 私たちが語らないヘイトクライム

イスラム嫌悪のことは忘れてください。宗教的憎悪犯罪の主な犠牲者はキリスト教徒(そしてユダヤ人)です。

キリスト教徒の迫害: 私たちが語らないヘイトクライム

理性的な人なら誰でも、政界とメディア界が左派、さらには極左によって支配されており、政治的言説に不均衡を生み出している状況を知っています。宗教の分野では、この不均衡は明らかです。左翼の新聞やネットワークは急いでキリスト教の信仰を擁護していません。

ライティングスキルを向上させる実証済みの 3 つの方法

書くことの利点とそれを助けるための戦略

ライティングスキルを向上させる実証済みの 3 つの方法

2022 年には GPT-3 がリリースされるため、ライティング スキルの重要性は低くなるようです。AI を使えば、文章が苦手な人でも質の高い人材を生み出すことができます。

仕事週間で学ぶことはあなたが思っている以上に重要です

仕事週間で学ぶことはあなたが思っている以上に重要です

私たちは、自分にとって良いとわかっていることを実行するのに苦労していることによく気づきます。大切な人に愛していると伝えることから、海賊のように話すことを忘れないことまで、すでにそうしたことを行っているため、1日、1週間、または1か月のイベントは必要ないと主張する人が常にいます。

お子様向けの初めてのハイになる本

お子様向けの初めてのハイになる本

(警告 - これは風刺であり、大喜びで破壊的な意図があります - 絶対に子供向けではありません) あなたは、お母さんとお父さんがキッチンに隠れて臭いタバコを吸っているのを見たことがあるでしょう。彼らはあなたに言います。