mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-03 16:10:00 +00:00
Merge pull request #7225 from unclejay80/a11y/role-button-login-onboarding
Add a button role to clickable icons and text on the login/onboarding screens
This commit is contained in:
+2
-1
@@ -18,6 +18,7 @@ import androidx.compose.runtime.Composable
|
|||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
|
import androidx.compose.ui.semantics.Role
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import io.element.android.compound.theme.ElementTheme
|
import io.element.android.compound.theme.ElementTheme
|
||||||
import io.element.android.compound.tokens.generated.CompoundIcons
|
import io.element.android.compound.tokens.generated.CompoundIcons
|
||||||
@@ -40,7 +41,7 @@ fun AccountProviderOtherView(
|
|||||||
Column(
|
Column(
|
||||||
modifier = modifier
|
modifier = modifier
|
||||||
.fillMaxWidth()
|
.fillMaxWidth()
|
||||||
.clickable { onClick() }
|
.clickable(role = Role.Button) { onClick() }
|
||||||
) {
|
) {
|
||||||
HorizontalDivider()
|
HorizontalDivider()
|
||||||
Row(
|
Row(
|
||||||
|
|||||||
+2
-1
@@ -19,6 +19,7 @@ import androidx.compose.runtime.Composable
|
|||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
|
import androidx.compose.ui.semantics.Role
|
||||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import io.element.android.compound.theme.ElementTheme
|
import io.element.android.compound.theme.ElementTheme
|
||||||
@@ -45,7 +46,7 @@ fun AccountProviderView(
|
|||||||
Column(
|
Column(
|
||||||
modifier = modifier
|
modifier = modifier
|
||||||
.fillMaxWidth()
|
.fillMaxWidth()
|
||||||
.clickable { onClick() }
|
.clickable(role = Role.Button) { onClick() }
|
||||||
) {
|
) {
|
||||||
HorizontalDivider()
|
HorizontalDivider()
|
||||||
Column(
|
Column(
|
||||||
|
|||||||
+10
-4
@@ -36,6 +36,7 @@ import androidx.compose.ui.focus.FocusDirection
|
|||||||
import androidx.compose.ui.platform.LocalAutofillManager
|
import androidx.compose.ui.platform.LocalAutofillManager
|
||||||
import androidx.compose.ui.platform.LocalFocusManager
|
import androidx.compose.ui.platform.LocalFocusManager
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
|
import androidx.compose.ui.semantics.Role
|
||||||
import androidx.compose.ui.semantics.contentType
|
import androidx.compose.ui.semantics.contentType
|
||||||
import androidx.compose.ui.semantics.semantics
|
import androidx.compose.ui.semantics.semantics
|
||||||
import androidx.compose.ui.text.input.ImeAction
|
import androidx.compose.ui.text.input.ImeAction
|
||||||
@@ -211,10 +212,15 @@ private fun LoginForm(
|
|||||||
singleLine = true,
|
singleLine = true,
|
||||||
trailingIcon = if (loginFieldState.isNotEmpty()) {
|
trailingIcon = if (loginFieldState.isNotEmpty()) {
|
||||||
{
|
{
|
||||||
Box(Modifier.clickable {
|
Box(
|
||||||
loginFieldState = ""
|
Modifier.clickable(
|
||||||
eventSink(LoginPasswordEvents.SetLogin(""))
|
onClickLabel = stringResource(CommonStrings.action_clear),
|
||||||
}) {
|
role = Role.Button,
|
||||||
|
) {
|
||||||
|
loginFieldState = ""
|
||||||
|
eventSink(LoginPasswordEvents.SetLogin(""))
|
||||||
|
}
|
||||||
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = CompoundIcons.Close(),
|
imageVector = CompoundIcons.Close(),
|
||||||
contentDescription = stringResource(CommonStrings.action_clear),
|
contentDescription = stringResource(CommonStrings.action_clear),
|
||||||
|
|||||||
+2
-1
@@ -27,6 +27,7 @@ import androidx.compose.ui.BiasAlignment
|
|||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.res.painterResource
|
import androidx.compose.ui.res.painterResource
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
|
import androidx.compose.ui.semantics.Role
|
||||||
import androidx.compose.ui.text.style.TextAlign
|
import androidx.compose.ui.text.style.TextAlign
|
||||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
@@ -336,7 +337,7 @@ private fun OnBoardingButtons(
|
|||||||
} else {
|
} else {
|
||||||
Text(
|
Text(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.clickable {
|
.clickable(role = Role.Button) {
|
||||||
state.eventSink(OnBoardingEvents.OnVersionClick)
|
state.eventSink(OnBoardingEvents.OnVersionClick)
|
||||||
}
|
}
|
||||||
.padding(16.dp),
|
.padding(16.dp),
|
||||||
|
|||||||
+10
-4
@@ -34,6 +34,7 @@ import androidx.compose.ui.Modifier
|
|||||||
import androidx.compose.ui.focus.FocusDirection
|
import androidx.compose.ui.focus.FocusDirection
|
||||||
import androidx.compose.ui.platform.LocalFocusManager
|
import androidx.compose.ui.platform.LocalFocusManager
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
|
import androidx.compose.ui.semantics.Role
|
||||||
import androidx.compose.ui.text.input.ImeAction
|
import androidx.compose.ui.text.input.ImeAction
|
||||||
import androidx.compose.ui.text.input.KeyboardType
|
import androidx.compose.ui.text.input.KeyboardType
|
||||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||||
@@ -125,10 +126,15 @@ fun SearchAccountProviderView(
|
|||||||
singleLine = true,
|
singleLine = true,
|
||||||
trailingIcon = if (userInputState.isNotEmpty()) {
|
trailingIcon = if (userInputState.isNotEmpty()) {
|
||||||
{
|
{
|
||||||
Box(Modifier.clickable {
|
Box(
|
||||||
userInputState = ""
|
Modifier.clickable(
|
||||||
eventSink(SearchAccountProviderEvents.UserInput(""))
|
onClickLabel = stringResource(CommonStrings.action_clear),
|
||||||
}) {
|
role = Role.Button,
|
||||||
|
) {
|
||||||
|
userInputState = ""
|
||||||
|
eventSink(SearchAccountProviderEvents.UserInput(""))
|
||||||
|
}
|
||||||
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = CompoundIcons.Close(),
|
imageVector = CompoundIcons.Close(),
|
||||||
contentDescription = stringResource(CommonStrings.action_clear)
|
contentDescription = stringResource(CommonStrings.action_clear)
|
||||||
|
|||||||
Reference in New Issue
Block a user