Метод semantics
Метод semantics интерфейса
Modifier
открывает блок SemanticsPropertyReceiver.
В нём задают contentDescription,
роль элемента и другие метаданные.
Не меняет внешний вид на экране.
Синтаксис
Modifier.semantics {
contentDescription = "label"
}
Параметры
| Параметр | Описание |
|---|---|
properties |
Лямбда с настройками семантики.
Часто задают contentDescription
или testTag.
|
mergeDescendants |
Если true, дочерние элементы сливаются
в одну семантическую ноду.
|
Пример
Давайте зададим описание для текста-кнопки:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.clickable
import androidx.compose.material3.Text
import androidx.compose.ui.Modifier
import androidx.compose.ui.semantics.contentDescription
import androidx.compose.ui.semantics.semantics
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Text(
text = "abcde",
modifier = Modifier
.semantics {
contentDescription = "toggle label"
}
.clickable { },
)
}
}
}
На экране вид останется прежним, служба accessibility прочитает описание вместо букв на экране.
Смотрите также
-
метод
clickable,
нажатие с индикацией -
метод
combinedClickable,
несколько жестов на элементе -
класс
Modifier,
цепочка модификаторов -
метод
pointerInput,
жесты указателя