Spec-Zone.ru › Kotlin 2

Поддержка специальных возможностей на настольных платформах

Compose Multiplatform построен на базе Jetpack Compose, благодаря чему большинство функций специальных возможностей доступно в общем коде на всех платформах. Текущее состояние поддержки специальных возможностей на настольных платформах:

Платформа

Состояние поддержки специальных возможностей

MacOS

Полная поддержка

Windows

Поддерживается через Java Access Bridge

Linux

Не поддерживается

Включение специальных возможностей в Windows

Специальные возможности в Windows обеспечиваются через Java Access Bridge, который по умолчанию отключен. Чтобы разрабатывать функции специальных возможностей для Windows, включите Java Access Bridge с помощью следующей команды:

%JAVA_HOME%\bin\jabswitch.exe /enable

Чтобы создать нативный дистрибутив с поддержкой специальных возможностей, добавьте модуль jdk.accessibility с помощью метода DSL modules:

compose.desktop {
    application {
        nativeDistributions {
            modules("jdk.accessibility")
        }
    }
}

Пример: пользовательская кнопка с семантическими правилами

Создадим простое приложение с пользовательской кнопкой и зададим поясняющий текст для программ экранного доступа. При включенной программе экранного доступа вы услышите текст «Нажмите, чтобы увеличить значение» из описания кнопки:

import androidx.compose.foundation.* import androidx.compose.foundation.layout.* import androidx.compose.material.Text import androidx.compose.runtime.* import androidx.compose.ui.* import androidx.compose.ui.graphics.Color import androidx.compose.ui.semantics.* import androidx.compose.ui.unit.* import androidx.compose.ui.window.* fun main() = singleWindowApplication( title = "Custom Button", state = WindowState(size = DpSize(300.dp, 200.dp)) ) { var count by remember { mutableStateOf(0) } Box(modifier = Modifier.padding(50.dp)) { Box(modifier = Modifier .background(Color.LightGray) .fillMaxSize() .clickable { count += 1 } // Uses text from the content .semantics(mergeDescendants = true) { // Assigns the type of UI element role = Role.Button // Adds some help text to button contentDescription = "Click to increment value" } ) { val text = when (count) { 0 -> "Click Me!" 1 -> "Clicked" else -> "Clicked $count times" } Text(text, modifier = Modifier.align(Alignment.Center), fontSize = 24.sp) } } }

Чтобы проверить сведения о специальных возможностях элементов приложения в macOS, можно использовать Accessibility Inspector (Xcode | Открыть инструменты разработчика | Accessibility Inspector):

Accessibility inspector on mcOS

В Windows можно использовать функцию Показать историю речи в JAWS или средство Просмотр речи в NVDA:

Accessibility on Windows

Другие примеры см. в руководстве Специальные возможности в Jetpack Compose.

Что дальше?

Изучите учебные материалы о других компонентах для настольных платформ.

3 декабря 2024 г.
Нативные дистрибутивыТестирование пользовательского интерфейса Compose Multiplatform с помощью JUnit

© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/multiplatform/compose-desktop-accessibility.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API