Android Jetpack中的可访问性
#android #mobile #ux

Android JetPack Copose是一种现代的Android UI工具包,它可以轻松创建美丽,用户友好的应用程序。它还包括许多功能,使得可以易于创建可访问的应用程序。

在这篇博客文章中,我们将探讨可访问性在Android Jetpack组成和发现实用技术以创建可满足具有多种功能用户的应用程序的重要性。我们将介绍以下主题:

  • 什么是可访问性?
  • 为什么可访问性很重要?
  • Android JetPack如何构成支持可访问性?
  • Android JetPack创作了创建可访问应用的最佳实践。

通过遵循这些最佳实践,您可以创建每个人都可以使用的可访问应用程序。

“关注个人需求是软件可访问性的基础。” - 史蒂夫·鲍尔默

让我们开始吧!

img1

什么是可访问性?

软件中的术语可访问性被定义为每个人使用应用程序的能力,无论其能力如何。这包括视觉障碍,听力障碍和流动性障碍等残疾人。

增强应用程序可访问性的方法和技术:

  • 使用大型触摸目标。确保敏捷性有限的用户可以与用户进行交互的所有屏幕元素都足够大,可以轻松敲击或单击。 Android设计指南建议触摸目标至少为48dp宽,而48dp高。
  • 为视觉元素提供文本说明。在可能的情况下使用描述性文本来描述应用程序的内容。这将帮助盲人或视力障碍的用户了解屏幕上正在发生的事情。
  • 支持键盘导航。添加仅使用键盘导航的应用程序的功能。这将使无法使用鼠标或触摸屏与应用程序进行交互的用户更容易。
@Composable
fun KeyboardNavigableScreen() {
    val focusManager = LocalFocusManager.current

    Column(Modifier.fillMaxSize(), verticalArrangement = Arrangement.Center) {
        Text(
            text = "Keyboard Navigable Screen",
            modifier = Modifier.align(Alignment.CenterHorizontally)
        )
        Spacer(modifier = Modifier.height(16.dp))

        Button(
            onClick = { /* Handle button click */ },
            modifier = Modifier
                .align(Alignment.CenterHorizontally)
                .focusable(),
            colors = ButtonDefaults.buttonColors(
                backgroundColor = Color.Gray
            ),
        ) {
            Text(text = "Click Me")
        }
    }

    // Enable keyboard navigation for the screen
    DisposableEffect(Unit) {
        focusManager.moveFocus(FocusDirection.First)
        onDispose { }
    }
}

在此示例可组合函数中,LocalFocusManager用于在组合中管理焦点。通过调用focusManager.moveFocus(FocusDirection.First),我们确保屏幕加载时屏幕中的第一个焦点元素会接收到焦点。在Column内部,我们有一个可综合的Text,显示标题和一个Button综合。给出了Buttonfocusable修饰符,该修饰符允许其接收焦点并与使用键盘进行交互。通过将focusable修饰符包括在交互式组件(例如按钮,复选框或文本字段)上,您可以使用键盘控件来导航键盘用户并与这些元素进行交互。

  • 为视觉元素提供音频输出。这将允许盲人或视力障碍的用户通过聆听屏幕上发生的内容的描述来使用您的应用程序。
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.semantics.contentDescription
import androidx.compose.ui.semantics.semantics
import androidx.compose.ui.semantics.testTag

@Composable
fun AudioOutputExample() {
    val context = LocalContext.current

    val audioDescriptionMap = remember {
        mapOf(
            "button" to stringResource(R.string.button_audio_description),
            "image" to stringResource(R.string.image_audio_description),
            // Add more mappings for other visual elements
        )
    }

    Box(
        Modifier.semantics { contentDescription = "button" }
            .testTag("button")
    ) {
        // Button content here
    }

    Image(
        painter = painterResource(R.drawable.my_image),
        contentDescription = "image",
        modifier = Modifier.semantics { contentDescription = "image" }
            .testTag("image")
    )

    // Function to play audio description for a given element
    fun playAudioDescription(elementTag: String) {
        val audioDescription = audioDescriptionMap[elementTag]
        audioDescription?.let {
            // Play audio description using Text-to-Speech or other audio playback mechanisms
        }
    }
}

AudioOutputExample综合函数演示了为视觉元素提供音频输出,并且可以轻松自定义以将音频说明添加到其他UI元素中。 playAudioDescription()函数可用于播放任何UI元素的音频描述,并使用适当的音频播放机制(例如 text-tote-speech(tts))播放它。调整此示例以适合您的应用程序的结构,并将其整合到整个应用程序中,以为各种视觉元素提供音频输出,从而确保对盲人或视力障碍的用户进行更具包容性的体验。

为什么可访问性很重要?

  • 促进包容性:Android的可访问性功能旨在确保残疾人可以使用Android设备和应用程序。这些特征满足了各种需求,例如视觉障碍,听力损失,运动障碍和认知障碍。

  • 增强用户体验:可访问性功能不仅使残障人士受益,还可以增强每个人的整体用户体验。例如,当用户在旅途中或占用双手时,键盘导航被证明是有用的。屏幕阅读器为多任务处理或获得对屏幕上内容的更深入的见解提供了宝贵的帮助。

  • 驾驶权益:确保可及性不仅仅是方便的问题;这是公平的基本方面。无论他们的能力如何,所有个人都应使用技术。

Android JetPack如何构成支持可访问性?

  • 语义API: JetPack组成提供强大的语义API,使开发人员可以提供有关UI元素的有意义的信息。开发人员可以为每个合成的内容说明,角色,状态和动作指定属性。此信息对于辅助技术至关重要,以了解并将UI元素传达给残疾用户。
  • 动态文本支持: JetPack构成自动响应系统字体大小设置的变化,从而确保您的应用程序的UI相应地缩放。此功能使低视力的用户或​​喜欢更大的文本尺寸以获得更好的可读性的用户受益。
  • 可访问性测试工具: JetPack组成包括许多可访问性测试工具,可以帮助您识别和解决应用程序中的可访问性问题。这些工具包括Accessibility Scanner,该工具可以在应用程序的布局中找到可访问性问题和TalkBack Simulator,它允许您使用Talkback(Android的屏幕读取器)进行测试。
  • 开发人员社区: Jetpack Compackose社区致力于可访问性。有许多资源可帮助您使您的应用程序更易于访问,包括教程,文档和示例代码。您还可以找到一个有兴趣在JetPack组成的SubReDdit和Discord Server上可访问性的开发人员社区。

Android JetPack构成了创建可访问应用程序的最佳实践。

  • 从残疾人那里获得反馈。使您的应用程序更容易访问的最佳方法之一是从残疾人那里获得反馈。您可以通过邀请残疾人测试您的应用程序并提供反馈,或加入对可访问性感兴趣的开发人员社区来做到这一点。
  • 使用可以组合的语义来提供有关UI元素的可访问性信息。
  • 使用描述性文本。在可能的情况下,使用描述性文本来描述应用程序的内容。这将帮助盲人或视力障碍的用户了解屏幕上正在发生的事情。
  • 使用可预测的布局。在应用程序中使用可预测的布局,以便用户可以轻松地了解元素的位置以及如何与它们进行交互。
  • 避免使用动画和过渡,这可能会使残疾用户迷失方向。如果您确实使用动画和过渡,请确保它们易于遵循。
  • 在整个应用程序中使用一致的模式。这将使用户更容易学习如何与应用程序进行交互。 记录您的应用程序的可访问性功能。这将帮助您应用新手的用户找到所需的功能。

总而言之,Android Jetpack组成为创建可访问的应用程序提供了强大的支持,使开发人员能够优先考虑包容性并增强所有人的用户体验。凭借其语义API,内容描述,焦点管理以及与可访问性测试工具的集成,JetPack构成了使残疾用户可以访问应用程序的过程。通过遵循最佳实践,例如提供有意义的内容描述,确保键盘可访问性以及支持动态文本大小,开发人员可以构建每个人都可以导航,可以理解和可用的应用程序。 JetPack Copose是一种强大的工具,可以创建包容性和可访问的Android应用程序,从而有助于更具包容性的数字景观。

有关有关Android Jetpack的更多诱人内容,请在TwitterLinkedIn上关注我,这样您就不会错过有关新文章的任何更新。