Add content description to tile

The tile in TileRequestDialog didn't have a content description. This
made it so that some screen readers could pick that there was text and
read it, but others (like select to speak) would not.

Fixes: 236174008
Test: manual, using Select to Speak
Test: atest TileRequestDialogTest
Change-Id: I89e3819413a9d8dcf0345ce43fb5594b6a8ffb0e
This commit is contained in:
Fabian Kozynski
2022-07-22 11:10:09 -04:00
parent 928a1ea2e8
commit 6f235144c4
2 changed files with 19 additions and 2 deletions

View File

@@ -73,6 +73,7 @@ class TileRequestDialog(
icon = tileData.icon?.loadDrawable(context)?.let {
QSTileImpl.DrawableIcon(it)
} ?: ResourceIcon.get(R.drawable.android)
contentDescription = label
}
tile.onStateChanged(state)
tile.post {
@@ -95,4 +96,4 @@ class TileRequestDialog(
val label: CharSequence,
val icon: Icon?
)
}
}

View File

@@ -163,4 +163,20 @@ class TileRequestDialogTest : SysuiTestCase() {
assertThat(tile.isClickable).isFalse()
assertThat(tile.isLongClickable).isFalse()
}
}
@Test
fun setTileData_tileHasCorrectContentDescription() {
val icon = Icon.createWithResource(mContext, R.drawable.cloud)
val tileData = TileRequestDialog.TileData(APP_NAME, LABEL, icon)
dialog.setTileData(tileData)
dialog.show()
TestableLooper.get(this).processAllMessages()
val content = dialog.requireViewById<ViewGroup>(TileRequestDialog.CONTENT_ID)
val tile = content.getChildAt(1) as QSTileView
assertThat(tile.contentDescription).isEqualTo(LABEL)
}
}