https://kotlinlang.org logo
l

Lucas Kivi

06/13/2023, 2:32 AM
I would like to know whether or not a composable is actively being focused for TalkBack announcement.
Here is an example of something I tried:
Copy code
@Composable
fun TalkbackItemFocus(
    modifier: Modifier = Modifier,
) {
    val itemOneText = "Item One"
    val itemTwoText = "Item Two"
    val itemThreeText = "Item Three"
    val itemModifier = Modifier.padding(16.dp)

    Column(modifier = modifier) {
        Item(
            itemText = itemOneText,
            modifier = itemModifier,
        )
        Item(
            itemText = itemTwoText,
            modifier = itemModifier,
        )
        Item(
            itemText = itemThreeText,
            modifier = itemModifier,
        )
    }
}

@Composable
fun Item(
    itemText: String,
    modifier: Modifier = Modifier,
) {
    Text(
        text = itemText,
        modifier = modifier
            .onFocusChanged {
                Log.d("Item:", "$itemText $it")
            }
            .focusable()
    )
}
Upon starting this the logs read:
Copy code
Item: Item One Inactive
Item: Item Two Inactive
Item: Item Three Inactive
And there is no change upon traversing each item with TalkBack focus.