diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/statistics/ui/homecards/cards/IncidenceCard.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/statistics/ui/homecards/cards/IncidenceCard.kt index d5433c1fc991a1a57f63f20ce4918cffc4558367..fafe09299dc76f1bce35db8c079449a8e3cc374b 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/statistics/ui/homecards/cards/IncidenceCard.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/statistics/ui/homecards/cards/IncidenceCard.kt @@ -3,10 +3,15 @@ package de.rki.coronawarnapp.statistics.ui.homecards.cards import android.view.ViewGroup import de.rki.coronawarnapp.R import de.rki.coronawarnapp.databinding.HomeStatisticsCardsIncidenceLayoutBinding +import de.rki.coronawarnapp.server.protocols.internal.stats.KeyFigureCardOuterClass import de.rki.coronawarnapp.statistics.IncidenceStats +import de.rki.coronawarnapp.statistics.StatsItem import de.rki.coronawarnapp.statistics.ui.homecards.StatisticsCardAdapter import de.rki.coronawarnapp.statistics.util.formatStatisticalValue +import de.rki.coronawarnapp.statistics.util.getContentDescriptionForTrends import de.rki.coronawarnapp.statistics.util.getLocalizedSpannableString +import de.rki.coronawarnapp.util.StringBuilderExtension.appendWithLineBreak +import de.rki.coronawarnapp.util.StringBuilderExtension.appendWithTrailingSpace import de.rki.coronawarnapp.util.formatter.getPrimaryLabel class IncidenceCard(parent: ViewGroup) : @@ -32,12 +37,40 @@ class IncidenceCard(parent: ViewGroup) : } with(item.stats as IncidenceStats) { + + incidenceContainer.contentDescription = + buildAccessibilityStringForIncidenceCard(item.stats, sevenDayIncidence) + primaryLabel.text = getPrimaryLabel(context) primaryValue.text = getLocalizedSpannableString( context, formatStatisticalValue(context, sevenDayIncidence.value, sevenDayIncidence.decimals) ) + + primaryValue.contentDescription = StringBuilder() + .appendWithTrailingSpace(context.getString(R.string.statistics_explanation_seven_day_incidence_title)) + .appendWithTrailingSpace(getPrimaryLabel(context)) + .appendWithTrailingSpace(formatStatisticalValue(context, sevenDayIncidence.value, + sevenDayIncidence.decimals)) + .append(getContentDescriptionForTrends(context, sevenDayIncidence.trend)) + trendArrow.setTrend(sevenDayIncidence.trend, sevenDayIncidence.trendSemantic) } } + + private fun buildAccessibilityStringForIncidenceCard( + item: StatsItem, + sevenDayIncidence: KeyFigureCardOuterClass.KeyFigure + ): StringBuilder { + + return StringBuilder() + .appendWithTrailingSpace(context.getString(R.string.accessibility_statistics_card_announcement)) + .appendWithLineBreak(context.getString(R.string.statistics_explanation_seven_day_incidence_title)) + .appendWithTrailingSpace(item.getPrimaryLabel(context)) + .appendWithTrailingSpace(formatStatisticalValue(context, sevenDayIncidence.value, + sevenDayIncidence.decimals)) + .appendWithTrailingSpace(context.getString(R.string.statistics_card_incidence_value_description)) + .appendWithLineBreak(getContentDescriptionForTrends(context, sevenDayIncidence.trend)) + .append(context.getString(R.string.accessibility_statistics_card_navigation_information)) + } } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/statistics/ui/homecards/cards/InfectionsCard.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/statistics/ui/homecards/cards/InfectionsCard.kt index c1fad337fe9ace15e485796f28f913e75eff677d..1e7f9bfc3821c847a2508e146413bb16a121a4b2 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/statistics/ui/homecards/cards/InfectionsCard.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/statistics/ui/homecards/cards/InfectionsCard.kt @@ -3,10 +3,15 @@ package de.rki.coronawarnapp.statistics.ui.homecards.cards import android.view.ViewGroup import de.rki.coronawarnapp.R import de.rki.coronawarnapp.databinding.HomeStatisticsCardsInfectionsLayoutBinding +import de.rki.coronawarnapp.server.protocols.internal.stats.KeyFigureCardOuterClass import de.rki.coronawarnapp.statistics.InfectionStats +import de.rki.coronawarnapp.statistics.StatsItem import de.rki.coronawarnapp.statistics.ui.homecards.StatisticsCardAdapter import de.rki.coronawarnapp.statistics.util.formatStatisticalValue import de.rki.coronawarnapp.util.formatter.getPrimaryLabel +import de.rki.coronawarnapp.statistics.util.getContentDescriptionForTrends +import de.rki.coronawarnapp.util.StringBuilderExtension.appendWithLineBreak +import de.rki.coronawarnapp.util.StringBuilderExtension.appendWithTrailingSpace class InfectionsCard(parent: ViewGroup) : StatisticsCardAdapter.ItemVH<StatisticsCardItem, HomeStatisticsCardsInfectionsLayoutBinding>( @@ -31,11 +36,52 @@ class InfectionsCard(parent: ViewGroup) : } with(item.stats as InfectionStats) { + + infectionsContainer.contentDescription = + buildAccessibilityStringForInfectionsCard(item.stats, newInfections, sevenDayAverage, total) + primaryLabel.text = getPrimaryLabel(context) primaryValue.text = formatStatisticalValue(context, newInfections.value, newInfections.decimals) + primaryValue.contentDescription = StringBuilder() + .appendWithTrailingSpace(getPrimaryLabel(context)) + .appendWithTrailingSpace(formatStatisticalValue(context, newInfections.value, newInfections.decimals)) + .append(context.getString(R.string.statistics_card_infections_title)) + secondaryValue.text = formatStatisticalValue(context, sevenDayAverage.value, sevenDayAverage.decimals) + secondaryValue.contentDescription = StringBuilder() + .appendWithTrailingSpace(context.getString(R.string.statistics_card_infections_secondary_label)) + .appendWithTrailingSpace(formatStatisticalValue(context, sevenDayAverage.value, + sevenDayAverage.decimals)) + .appendWithTrailingSpace(context.getString(R.string.statistics_card_infections_title)) + .append(getContentDescriptionForTrends(context, sevenDayAverage.trend)) + tertiaryValue.text = formatStatisticalValue(context, total.value, total.decimals) + tertiaryValue.contentDescription = StringBuilder() + .appendWithTrailingSpace(context.getString(R.string.statistics_card_infections_tertiary_label)) + .appendWithTrailingSpace(formatStatisticalValue(context, total.value, total.decimals)) + .append(context.getString(R.string.statistics_card_infections_title)) + trendArrow.setTrend(sevenDayAverage.trend, sevenDayAverage.trendSemantic) } } + + private fun buildAccessibilityStringForInfectionsCard( + item: StatsItem, + newInfections: KeyFigureCardOuterClass.KeyFigure, + sevenDayAverage: KeyFigureCardOuterClass.KeyFigure, + total: KeyFigureCardOuterClass.KeyFigure + ): StringBuilder { + + return StringBuilder() + .appendWithTrailingSpace(context.getString(R.string.accessibility_statistics_card_announcement)) + .appendWithLineBreak(context.getString(R.string.statistics_card_infections_title)) + .appendWithTrailingSpace(item.getPrimaryLabel(context)) + .appendWithLineBreak(formatStatisticalValue(context, newInfections.value, newInfections.decimals)) + .appendWithTrailingSpace(context.getString(R.string.statistics_card_infections_secondary_label)) + .appendWithTrailingSpace(formatStatisticalValue(context, sevenDayAverage.value, sevenDayAverage.decimals)) + .appendWithLineBreak(getContentDescriptionForTrends(context, sevenDayAverage.trend)) + .appendWithTrailingSpace(context.getString(R.string.statistics_card_infections_tertiary_label)) + .appendWithLineBreak(formatStatisticalValue(context, total.value, total.decimals)) + .append(context.getString(R.string.accessibility_statistics_card_navigation_information)) + } } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/statistics/ui/homecards/cards/KeySubmissionsCard.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/statistics/ui/homecards/cards/KeySubmissionsCard.kt index 08218528f43b04ab12ec4bff2ecf1812d41e5238..a722f23d298856f48b21d4f1ba82e0e272bfc7e8 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/statistics/ui/homecards/cards/KeySubmissionsCard.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/statistics/ui/homecards/cards/KeySubmissionsCard.kt @@ -3,9 +3,14 @@ package de.rki.coronawarnapp.statistics.ui.homecards.cards import android.view.ViewGroup import de.rki.coronawarnapp.R import de.rki.coronawarnapp.databinding.HomeStatisticsCardsKeysubmissionsLayoutBinding +import de.rki.coronawarnapp.server.protocols.internal.stats.KeyFigureCardOuterClass import de.rki.coronawarnapp.statistics.KeySubmissionsStats +import de.rki.coronawarnapp.statistics.StatsItem import de.rki.coronawarnapp.statistics.ui.homecards.StatisticsCardAdapter import de.rki.coronawarnapp.statistics.util.formatStatisticalValue +import de.rki.coronawarnapp.statistics.util.getContentDescriptionForTrends +import de.rki.coronawarnapp.util.StringBuilderExtension.appendWithLineBreak +import de.rki.coronawarnapp.util.StringBuilderExtension.appendWithTrailingSpace import de.rki.coronawarnapp.util.formatter.getPrimaryLabel class KeySubmissionsCard(parent: ViewGroup) : @@ -31,11 +36,53 @@ class KeySubmissionsCard(parent: ViewGroup) : } with(item.stats as KeySubmissionsStats) { + + keysubmissionsContainer.contentDescription = + buildAccessibilityStringForKeySubmissionsCard(item.stats, keySubmissions, sevenDayAverage, total) + primaryLabel.text = getPrimaryLabel(context) primaryValue.text = formatStatisticalValue(context, keySubmissions.value, keySubmissions.decimals) + primaryValue.contentDescription = StringBuilder() + .appendWithTrailingSpace(getPrimaryLabel(context)) + .appendWithTrailingSpace(formatStatisticalValue(context, keySubmissions.value, keySubmissions.decimals)) + .append(context.getString(R.string.statistics_card_submission_title)) + secondaryValue.text = formatStatisticalValue(context, sevenDayAverage.value, sevenDayAverage.decimals) + secondaryValue.contentDescription = StringBuilder() + .appendWithTrailingSpace(context.getString(R.string.statistics_card_infections_secondary_label)) + .appendWithTrailingSpace(formatStatisticalValue(context, sevenDayAverage.value, + sevenDayAverage.decimals)) + .appendWithTrailingSpace(context.getString(R.string.statistics_card_submission_title)) + .append(getContentDescriptionForTrends(context, sevenDayAverage.trend)) + tertiaryValue.text = formatStatisticalValue(context, total.value, total.decimals) + tertiaryValue.contentDescription = StringBuilder() + .appendWithTrailingSpace(context.getString(R.string.statistics_card_infections_tertiary_label)) + .appendWithTrailingSpace(formatStatisticalValue(context, total.value, total.decimals)) + .append(context.getString(R.string.statistics_card_submission_title)) + trendArrow.setTrend(sevenDayAverage.trend, sevenDayAverage.trendSemantic) } } + + private fun buildAccessibilityStringForKeySubmissionsCard( + item: StatsItem, + keySubmissions: KeyFigureCardOuterClass.KeyFigure, + sevenDayAverage: KeyFigureCardOuterClass.KeyFigure, + total: KeyFigureCardOuterClass.KeyFigure + ): StringBuilder { + + return StringBuilder() + .appendWithTrailingSpace(context.getString(R.string.accessibility_statistics_card_announcement)) + .appendWithLineBreak(context.getString(R.string.statistics_card_submission_title)) + .appendWithTrailingSpace(item.getPrimaryLabel(context)) + .appendWithLineBreak(formatStatisticalValue(context, keySubmissions.value, keySubmissions.decimals)) + .appendWithTrailingSpace(context.getString(R.string.statistics_card_infections_secondary_label)) + .appendWithTrailingSpace(formatStatisticalValue(context, sevenDayAverage.value, sevenDayAverage.decimals)) + .appendWithLineBreak(getContentDescriptionForTrends(context, sevenDayAverage.trend)) + .appendWithTrailingSpace(context.getString(R.string.statistics_card_infections_tertiary_label)) + .appendWithTrailingSpace(formatStatisticalValue(context, total.value, total.decimals)) + .appendWithLineBreak(context.getString(R.string.statistics_card_submission_bottom_text)) + .append(context.getString(R.string.accessibility_statistics_card_navigation_information)) + } } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/statistics/ui/homecards/cards/SevenDayRValueCard.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/statistics/ui/homecards/cards/SevenDayRValueCard.kt index b21614ef32e06d843ac78f8181399a7863a82270..cc384a068d37978b8127d740cb00ca6ddc428704 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/statistics/ui/homecards/cards/SevenDayRValueCard.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/statistics/ui/homecards/cards/SevenDayRValueCard.kt @@ -3,10 +3,15 @@ package de.rki.coronawarnapp.statistics.ui.homecards.cards import android.view.ViewGroup import de.rki.coronawarnapp.R import de.rki.coronawarnapp.databinding.HomeStatisticsCardsSevendayrvalueLayoutBinding +import de.rki.coronawarnapp.server.protocols.internal.stats.KeyFigureCardOuterClass import de.rki.coronawarnapp.statistics.SevenDayRValue +import de.rki.coronawarnapp.statistics.StatsItem import de.rki.coronawarnapp.statistics.ui.homecards.StatisticsCardAdapter import de.rki.coronawarnapp.statistics.util.formatStatisticalValue +import de.rki.coronawarnapp.statistics.util.getContentDescriptionForTrends import de.rki.coronawarnapp.statistics.util.getLocalizedSpannableString +import de.rki.coronawarnapp.util.StringBuilderExtension.appendWithLineBreak +import de.rki.coronawarnapp.util.StringBuilderExtension.appendWithTrailingSpace import de.rki.coronawarnapp.util.formatter.getPrimaryLabel class SevenDayRValueCard(parent: ViewGroup) : @@ -32,12 +37,40 @@ class SevenDayRValueCard(parent: ViewGroup) : } with(item.stats as SevenDayRValue) { + + sevenDayRValueContainer.contentDescription = + buildAccessibilityStringForSevenDayRValueCard(item.stats, reproductionNumber) + primaryLabel.text = getPrimaryLabel(context) primaryValue.text = getLocalizedSpannableString( context, formatStatisticalValue(context, reproductionNumber.value, reproductionNumber.decimals) ) + + primaryValue.contentDescription = StringBuilder() + .appendWithTrailingSpace(context.getString(R.string.statistics_title_reproduction)) + .appendWithTrailingSpace(getPrimaryLabel(context)) + .appendWithTrailingSpace(formatStatisticalValue(context, reproductionNumber.value, + reproductionNumber.decimals)) + .append(getContentDescriptionForTrends(context, reproductionNumber.trend)) + trendArrow.setTrend(reproductionNumber.trend, reproductionNumber.trendSemantic) } } + + private fun buildAccessibilityStringForSevenDayRValueCard( + item: StatsItem, + reproductionNumber: KeyFigureCardOuterClass.KeyFigure + ): StringBuilder { + + return StringBuilder() + .appendWithTrailingSpace(context.getString(R.string.accessibility_statistics_card_announcement)) + .appendWithLineBreak(context.getString(R.string.statistics_title_reproduction)) + .appendWithTrailingSpace(item.getPrimaryLabel(context)) + .appendWithTrailingSpace(formatStatisticalValue(context, reproductionNumber.value, + reproductionNumber.decimals)) + .appendWithTrailingSpace(context.getString(R.string.statistics_reproduction_average)) + .appendWithLineBreak(getContentDescriptionForTrends(context, reproductionNumber.trend)) + .append(context.getString(R.string.accessibility_statistics_card_navigation_information)) + } } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/statistics/util/AccessibilityHelper.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/statistics/util/AccessibilityHelper.kt index 1c9bff6793ff87ac42d657cb863d75944a74a172..ac2bc08813cc2e4614098923be48bb829d50e441 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/statistics/util/AccessibilityHelper.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/statistics/util/AccessibilityHelper.kt @@ -3,7 +3,9 @@ package de.rki.coronawarnapp.statistics.util import android.content.Context import android.text.SpannableString import android.text.style.LocaleSpan +import de.rki.coronawarnapp.R import de.rki.coronawarnapp.contactdiary.util.getLocale +import de.rki.coronawarnapp.server.protocols.internal.stats.KeyFigureCardOuterClass /** * returns localized spannable string so that screen readers read out decimal values appropriately @@ -11,3 +13,16 @@ import de.rki.coronawarnapp.contactdiary.util.getLocale fun getLocalizedSpannableString(context: Context, source: String) = SpannableString(source).apply { setSpan(LocaleSpan(context.getLocale()), 0, this.length, 0) } + +fun getContentDescriptionForTrends( + context: Context, + trend: KeyFigureCardOuterClass.KeyFigure.Trend +): String { + return context.getString( + when (trend) { + KeyFigureCardOuterClass.KeyFigure.Trend.INCREASING -> R.string.statistics_trend_increasing + KeyFigureCardOuterClass.KeyFigure.Trend.DECREASING -> R.string.statistics_trend_decreasing + else -> R.string.statistics_trend_stable + } + ) +} diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/StringBuilderExtension.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/StringBuilderExtension.kt new file mode 100644 index 0000000000000000000000000000000000000000..e1ac8d8c2768500f2b2a7dca651ce983d157ab17 --- /dev/null +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/StringBuilderExtension.kt @@ -0,0 +1,9 @@ +package de.rki.coronawarnapp.util + +import kotlin.text.StringBuilder + +object StringBuilderExtension { + + fun StringBuilder.appendWithTrailingSpace(str: String): StringBuilder = this.append(str).append(" ") + fun StringBuilder.appendWithLineBreak(str: String): StringBuilder = this.append(str).append(" \n ") +} diff --git a/Corona-Warn-App/src/main/res/layout/home_statistics_cards_incidence_layout.xml b/Corona-Warn-App/src/main/res/layout/home_statistics_cards_incidence_layout.xml index de5b14693dc5b51ec89f6dcfa6cd3fcf200a8ee0..a2bd07c8f2264973bfb2a1e84db6985393cc5e08 100644 --- a/Corona-Warn-App/src/main/res/layout/home_statistics_cards_incidence_layout.xml +++ b/Corona-Warn-App/src/main/res/layout/home_statistics_cards_incidence_layout.xml @@ -9,6 +9,7 @@ android:layout_height="wrap_content" tools:layout_height="wrap_content" tools:layout_width="@dimen/statistics_card_width" + android:id="@+id/incidence_container" tools:showIn="@layout/home_statistics_cards_basecard_layout"> <androidx.appcompat.widget.AppCompatImageView @@ -16,6 +17,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:importantForAccessibility="no" + android:contentDescription="@null" android:src="@drawable/ic_statistics_incidence" android:paddingStart="0dp" android:paddingEnd="@dimen/spacing_small" @@ -47,6 +49,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:includeFontPadding="false" + android:focusable="true" tools:text="98,9" /> <TextView diff --git a/Corona-Warn-App/src/main/res/layout/home_statistics_cards_infections_layout.xml b/Corona-Warn-App/src/main/res/layout/home_statistics_cards_infections_layout.xml index 5d227e91ffc571b3db20c4f1d8d9a3f3e2491ed8..f44904922ab4c86fe30b4e7141d40e5deb3897c9 100644 --- a/Corona-Warn-App/src/main/res/layout/home_statistics_cards_infections_layout.xml +++ b/Corona-Warn-App/src/main/res/layout/home_statistics_cards_infections_layout.xml @@ -9,6 +9,7 @@ android:layout_height="wrap_content" tools:layout_height="wrap_content" tools:layout_width="@dimen/statistics_card_width" + android:id="@+id/infections_container" tools:showIn="@layout/home_statistics_cards_basecard_layout"> <androidx.appcompat.widget.AppCompatImageView @@ -16,6 +17,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:importantForAccessibility="no" + android:contentDescription="@null" android:src="@drawable/ic_main_illustration_infection" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="@id/flow_layout" /> @@ -42,6 +44,7 @@ <TextView android:id="@+id/primary_value" style="@style/StatisticsCardPrimaryValue" + android:focusable="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:includeFontPadding="false" @@ -58,6 +61,7 @@ <TextView android:id="@+id/secondary_value" style="@style/StatisticsCardSecondaryValue" + android:focusable="true" android:layout_width="wrap_content" android:layout_height="wrap_content" tools:text="11.981" /> @@ -81,6 +85,7 @@ <TextView android:id="@+id/tertiary_value" + android:focusable="true" style="@style/StatisticsCardSecondaryValue" android:layout_width="wrap_content" android:layout_height="wrap_content" diff --git a/Corona-Warn-App/src/main/res/layout/home_statistics_cards_keysubmissions_layout.xml b/Corona-Warn-App/src/main/res/layout/home_statistics_cards_keysubmissions_layout.xml index 44b537c3567bb9b5bafe1a3f09fda373c8b5a43b..781e99cdf4a48cc807509c0b6f227212d8d5a91d 100644 --- a/Corona-Warn-App/src/main/res/layout/home_statistics_cards_keysubmissions_layout.xml +++ b/Corona-Warn-App/src/main/res/layout/home_statistics_cards_keysubmissions_layout.xml @@ -9,6 +9,7 @@ android:layout_height="wrap_content" tools:layout_height="wrap_content" tools:layout_width="@dimen/statistics_card_width" + android:id="@+id/keysubmissions_container" tools:showIn="@layout/home_statistics_cards_basecard_layout"> <androidx.appcompat.widget.AppCompatImageView @@ -16,6 +17,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:importantForAccessibility="no" + android:contentDescription="@null" android:src="@drawable/ic_main_illustration_warnende_personen" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="@id/flow_layout" /> @@ -42,6 +44,7 @@ <TextView android:id="@+id/primary_value" style="@style/StatisticsCardPrimaryValue" + android:focusable="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:includeFontPadding="false" @@ -58,6 +61,7 @@ <TextView android:id="@+id/secondary_value" style="@style/StatisticsCardSecondaryValue" + android:focusable="true" android:layout_width="wrap_content" android:layout_height="wrap_content" tools:text="1.812" /> @@ -83,6 +87,7 @@ android:id="@+id/tertiary_value" style="@style/StatisticsCardSecondaryValue" android:layout_width="wrap_content" + android:focusable="true" android:layout_height="wrap_content" tools:text="20.922" /> diff --git a/Corona-Warn-App/src/main/res/layout/home_statistics_cards_sevendayrvalue_layout.xml b/Corona-Warn-App/src/main/res/layout/home_statistics_cards_sevendayrvalue_layout.xml index d32cc602176b1c3b7a17d1e94a940ba5d5ee933b..feca8a674d5c9f9583b3c1bd2a67794507d57128 100644 --- a/Corona-Warn-App/src/main/res/layout/home_statistics_cards_sevendayrvalue_layout.xml +++ b/Corona-Warn-App/src/main/res/layout/home_statistics_cards_sevendayrvalue_layout.xml @@ -9,6 +9,7 @@ android:layout_height="wrap_content" tools:layout_height="wrap_content" tools:layout_width="@dimen/statistics_card_width" + android:id="@+id/seven_day_r_value_container" tools:showIn="@layout/home_statistics_cards_basecard_layout"> <androidx.appcompat.widget.AppCompatImageView @@ -44,6 +45,7 @@ <TextView android:id="@+id/primary_value" style="@style/StatisticsCardPrimaryValue" + android:focusable="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:includeFontPadding="false" diff --git a/Corona-Warn-App/src/main/res/values-de/strings.xml b/Corona-Warn-App/src/main/res/values-de/strings.xml index 6ea9903115861a288124baa1ed597ed1ba751e8e..8e5b4abf718b389dc3d00512977f6c08f26697dd 100644 --- a/Corona-Warn-App/src/main/res/values-de/strings.xml +++ b/Corona-Warn-App/src/main/res/values-de/strings.xml @@ -1368,6 +1368,11 @@ <!-- XACT: Statistics explanation illustration description --> <string name="statistics_explanation_illustration_description">"Abstrakte Darstellung eines Smartphones mit vier Platzhaltern für Informationen"</string> + <!-- XTXT: Statistics Card Announcement --> + <string name="accessibility_statistics_card_announcement">"Statistikkarte"</string> + <!-- XTXT: Statistics Card Navigation Announcement --> + <string name="accessibility_statistics_card_navigation_information">"Wische horizontal zwischen den Karten für weitere Statistiken"</string> + <!-- #################################### Button Tooltips for Accessibility ###################################### --> diff --git a/Corona-Warn-App/src/main/res/values/strings.xml b/Corona-Warn-App/src/main/res/values/strings.xml index e1bda105d85bd9f7d2ae025f654d374a7bcd41b9..5e67caee473747918f7ff67b9ff9f6bcbe8d3e21 100644 --- a/Corona-Warn-App/src/main/res/values/strings.xml +++ b/Corona-Warn-App/src/main/res/values/strings.xml @@ -1377,11 +1377,16 @@ <string name="statistics_explanation_trend_stable_title">"Trend: Steady"</string> <!-- XHED: Explanation screen trend description --> <string name="statistics_explanation_trend_description">"The assessment of the trend for warnings by app users changes depending on current infection levels, which is why this trend is always displayed as neutral."</string> - <!-- XTXT: Explains user about statistics: URL, has to be "translated" into english (relevant for all languages except german) - https://www.coronawarn.app/en/faq/#further_details --> + <!-- XTXT: Explains user about statistics: URL, has to be "translated" into english (relevant for all languages except german)0 - https://www.coronawarn.app/en/faq/#further_details --> <string name="statistics_explanation_faq_url">"https://www.coronawarn.app/en/faq/#further_details"</string> <!-- XACT: Statistics explanation illustration description --> <string name="statistics_explanation_illustration_description">"Abstract picture of a smartphone with four placeholders for information"</string> + <!-- XTXT: Statistics Card Announcement --> + <string name="accessibility_statistics_card_announcement">""</string> + <!-- XTXT: Statistics Card Navigation Announcement --> + <string name="accessibility_statistics_card_navigation_information">""</string> + <!-- #################################### Button Tooltips for Accessibility