android: accessibility fixes (#359)

Updates tailscale/corp#18976

Signed-off-by: kari-ts <kari@tailscale.com>
pull/354/head
kari-ts 2 months ago committed by GitHub
parent 427e2d29b4
commit 22c129ee1c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -86,11 +86,11 @@ private val LightColors =
private val DarkColors = private val DarkColors =
darkColorScheme( darkColorScheme(
primary = Color(0xFF4B70CC), // blue-500 primary = Color(0xFF3E5DB3), // blue-600
onPrimary = Color(0xFFFFFFFF), // white onPrimary = Color(0xFFFFFFFF), // white
primaryContainer = Color(0xFFf0f5ff), // blue-0 primaryContainer = Color(0xFFf0f5ff), // blue-0
onPrimaryContainer = Color(0xFF3f5eb3), // blue-600 onPrimaryContainer = Color(0xFF5A82DC), // blue-400
error = Color(0xFFB22D30), // red-500 error = Color(0xFFEF5350), // red-400
onError = Color(0xFFFFFFFF), // white onError = Color(0xFFFFFFFF), // white
errorContainer = Color(0xFFfff6f4), // red-0 errorContainer = Color(0xFFfff6f4), // red-0
onErrorContainer = Color(0xFF940822), // red-600 onErrorContainer = Color(0xFF940822), // red-600
@ -150,7 +150,7 @@ val ColorScheme.off: Color
} }
val ColorScheme.link: Color val ColorScheme.link: Color
get() = primary get() = onPrimaryContainer
/** /**
* Main color scheme for list items, uses onPrimaryContainer color for leading and trailing icons. * Main color scheme for list items, uses onPrimaryContainer color for leading and trailing icons.
@ -248,7 +248,7 @@ val ColorScheme.warningListItem: ListItemColors
containerColor = MaterialTheme.colorScheme.warning, containerColor = MaterialTheme.colorScheme.warning,
headlineColor = MaterialTheme.colorScheme.onPrimary, headlineColor = MaterialTheme.colorScheme.onPrimary,
leadingIconColor = MaterialTheme.colorScheme.onPrimary, leadingIconColor = MaterialTheme.colorScheme.onPrimary,
overlineColor = MaterialTheme.colorScheme.onPrimary.copy(alpha = 0.7f), overlineColor = MaterialTheme.colorScheme.onPrimary.copy(alpha = 0.8f),
supportingTextColor = MaterialTheme.colorScheme.onPrimary, supportingTextColor = MaterialTheme.colorScheme.onPrimary,
trailingIconColor = MaterialTheme.colorScheme.onPrimary, trailingIconColor = MaterialTheme.colorScheme.onPrimary,
disabledHeadlineColor = default.disabledHeadlineColor, disabledHeadlineColor = default.disabledHeadlineColor,
@ -272,12 +272,20 @@ val ColorScheme.secondaryButton: ButtonColors
@Composable @Composable
get() { get() {
val defaults = ButtonDefaults.buttonColors() val defaults = ButtonDefaults.buttonColors()
if (isSystemInDarkTheme()) {
return ButtonColors(
containerColor = Color(0xFF4B70CC), // blue-500
contentColor = Color(0xFFFFFFFF), // white
disabledContainerColor = defaults.disabledContainerColor,
disabledContentColor = defaults.disabledContentColor)
} else {
return ButtonColors( return ButtonColors(
containerColor = Color(0xFF6D94EC), // blue-400 containerColor = Color(0xFF5A82DC), // blue-400
contentColor = Color(0xFFFFFFFF), // white contentColor = Color(0xFFFFFFFF), // white
disabledContainerColor = defaults.disabledContainerColor, disabledContainerColor = defaults.disabledContainerColor,
disabledContentColor = defaults.disabledContentColor) disabledContentColor = defaults.disabledContentColor)
} }
}
val ColorScheme.defaultTextColor: Color val ColorScheme.defaultTextColor: Color
@Composable @Composable

@ -38,7 +38,7 @@ import com.tailscale.ipn.ui.theme.logoBackground
fun AboutView(backToSettings: BackNavigation) { fun AboutView(backToSettings: BackNavigation) {
val localClipboardManager = LocalClipboardManager.current val localClipboardManager = LocalClipboardManager.current
Scaffold(topBar = { Header(R.string.about_view_title, onBack = backToSettings) }) { innerPadding Scaffold(topBar = { Header(R.string.about_view_header, onBack = backToSettings) }) { innerPadding
-> ->
Column( Column(
verticalArrangement = verticalArrangement =

@ -17,9 +17,11 @@ import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.clip
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import coil.annotation.ExperimentalCoilApi import coil.annotation.ExperimentalCoilApi
import coil.compose.AsyncImage import coil.compose.AsyncImage
import com.tailscale.ipn.R
import com.tailscale.ipn.ui.model.IpnLocal import com.tailscale.ipn.ui.model.IpnLocal
@OptIn(ExperimentalCoilApi::class) @OptIn(ExperimentalCoilApi::class)
@ -34,7 +36,10 @@ fun Avatar(profile: IpnLocal.LoginProfile?, size: Int = 50, action: (() -> Unit)
indication = rememberRipple(bounded = false), indication = rememberRipple(bounded = false),
onClick = action) onClick = action)
} }
Icon(imageVector = Icons.Default.Person, contentDescription = null, modifier = modifier) Icon(
imageVector = Icons.Default.Person,
contentDescription = stringResource(R.string.settings_title),
modifier = modifier)
profile?.UserProfile?.ProfilePicURL?.let { url -> profile?.UserProfile?.ProfilePicURL?.let { url ->
AsyncImage(model = url, modifier = Modifier.size((size * 1.2f).dp), contentDescription = null) AsyncImage(model = url, modifier = Modifier.size((size * 1.2f).dp), contentDescription = null)

@ -110,7 +110,7 @@ fun ExitNodeItem(
trailingContent = { trailingContent = {
Row { Row {
if (node.selected) { if (node.selected) {
Icon(Icons.Outlined.Check, contentDescription = stringResource(R.string.selected)) Icon(Icons.Outlined.Check, null)
} }
} }
}) })
@ -134,7 +134,7 @@ fun MullvadItem(nav: ExitNodePickerNav, count: Int, selected: Boolean) {
}, },
trailingContent = { trailingContent = {
if (selected) { if (selected) {
Icon(Icons.Outlined.Check, contentDescription = stringResource(R.string.selected)) Icon(Icons.Outlined.Check, null)
} }
}) })
} }

@ -71,7 +71,7 @@ fun BackArrow(action: () -> Unit) {
@Composable @Composable
fun CheckedIndicator() { fun CheckedIndicator() {
Icon(Icons.Default.CheckCircle, "selected", tint = ts_color_light_blue) Icon(Icons.Default.CheckCircle, null, tint = ts_color_light_blue)
} }
@Composable @Composable

@ -25,6 +25,7 @@
<string name="app_name">Tailscale</string> <string name="app_name">Tailscale</string>
<string name="tile_name">Tailscale</string> <string name="tile_name">Tailscale</string>
<string name="version">Version</string> <string name="version">Version</string>
<string name="about_view_header">About Tailscale</string>
<string name="about_view_title">Tailscale for Android</string> <string name="about_view_title">Tailscale for Android</string>
<string name="acknowledgements">Acknowledgements</string> <string name="acknowledgements">Acknowledgements</string>
<string name="privacy_policy">Privacy Policy</string> <string name="privacy_policy">Privacy Policy</string>

Loading…
Cancel
Save