From c0b3a57e0005ea377fc2959ac16571682905dd1c Mon Sep 17 00:00:00 2001
From: Queenhymon <66369714+Queenhymon@users.noreply.github.com>
Date: Mon, 8 Jun 2020 17:30:36 +0200
Subject: [PATCH] Exposureapp 1079 (#274)

* accessibility button texts

* accessibility fixes

* replace buttons with image views

* solve conflicts with dev

* accessibility for all onboarding views

* accessibility for all submission views

* accessibility for risk details

* call views with bindings

* pull request review fixes

* strings

* lint check fixes

* lint check fixes

Co-authored-by: harambasicluka <64483219+harambasicluka@users.noreply.github.com>
---
 .../rki/coronawarnapp/ui/main/MainFragment.kt | 17 ++++
 .../ui/main/MainOverviewFragment.kt           | 11 +++
 .../ui/onboarding/OnboardingFragment.kt       | 11 +++
 .../OnboardingNotificationsFragment.kt        | 11 +++
 .../onboarding/OnboardingPrivacyFragment.kt   | 11 +++
 .../ui/onboarding/OnboardingTestFragment.kt   | 11 +++
 .../onboarding/OnboardingTracingFragment.kt   | 11 +++
 .../ui/riskdetails/RiskDetailsFragment.kt     |  8 +-
 .../submission/SubmissionContactFragment.kt   | 11 +++
 .../SubmissionDispatcherFragment.kt           | 11 +++
 .../ui/submission/SubmissionIntroFragment.kt  | 12 ++-
 .../ui/submission/SubmissionTanFragment.kt    | 12 ++-
 .../ui/viewmodel/TracingViewModel.kt          |  3 +-
 .../src/main/res/layout/fragment_main.xml     |  4 +
 .../res/layout/fragment_main_overview.xml     | 83 ++++++++++---------
 .../main/res/layout/fragment_onboarding.xml   |  5 +-
 .../fragment_onboarding_notifications.xml     |  4 +-
 .../layout/fragment_onboarding_privacy.xml    |  2 +
 .../res/layout/fragment_onboarding_test.xml   |  4 +-
 .../layout/fragment_onboarding_tracing.xml    |  4 +-
 .../main/res/layout/fragment_risk_details.xml | 16 +++-
 .../layout/fragment_submission_contact.xml    |  2 +
 .../layout/fragment_submission_dispatcher.xml |  4 +-
 .../res/layout/fragment_submission_intro.xml  |  8 +-
 .../res/layout/fragment_submission_tan.xml    | 13 ++-
 .../main/res/layout/include_button_icon.xml   |  2 +-
 .../res/layout/include_dispatcher_card.xml    | 10 +--
 .../src/main/res/layout/include_main_card.xml |  3 +-
 .../layout/include_main_overview_segment.xml  |  9 +-
 .../main/res/layout/include_onboarding.xml    |  7 +-
 .../src/main/res/layout/include_risk_card.xml |  7 +-
 .../res/layout/include_risk_card_header.xml   |  1 -
 ...e_risk_details_behavior_increased_risk.xml |  8 ++
 .../include_risk_details_behavior_row.xml     |  3 +
 .../res/layout/include_submission_contact.xml | 29 +++++--
 .../res/layout/include_submission_intro.xml   |  6 +-
 ...include_submission_status_card_content.xml |  4 +
 ...de_submission_status_card_unregistered.xml |  7 +-
 .../src/main/res/values/strings.xml           | 46 +++++++++-
 39 files changed, 349 insertions(+), 82 deletions(-)

diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/MainFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/MainFragment.kt
index e699c28da..cebf0c1f9 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/MainFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/MainFragment.kt
@@ -5,6 +5,7 @@ import android.util.Log
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
+import android.view.accessibility.AccessibilityEvent
 import android.widget.PopupMenu
 import androidx.core.app.NotificationCompat
 import androidx.core.app.NotificationManagerCompat
@@ -62,6 +63,7 @@ class MainFragment : BaseFragment() {
     override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
         super.onViewCreated(view, savedInstanceState)
         setButtonOnClickListener()
+        setContentDescription()
     }
 
     override fun onResume() {
@@ -74,6 +76,21 @@ class MainFragment : BaseFragment() {
         tracingViewModel.refreshActiveTracingDaysInRetentionPeriod()
         TimerHelper.checkManualKeyRetrievalTimer()
         submissionViewModel.refreshDeviceUIState()
+        binding.mainScrollview.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED)
+    }
+
+    override fun onStart() {
+        super.onStart()
+        binding.mainScrollview.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED)
+    }
+
+    private fun setContentDescription() {
+        val shareButtonString: String = getString(R.string.button_share)
+        val menuButtonString: String = getString(R.string.button_menu)
+        val mainCardString: String = getString(R.string.hint_external_webpage)
+        binding.mainHeaderShare.buttonIcon.setContentDescription(shareButtonString)
+        binding.mainHeaderOptionsMenu.buttonIcon.setContentDescription(menuButtonString)
+        binding.mainAbout.mainCard.setContentDescription(mainCardString)
     }
 
     private fun setButtonOnClickListener() {
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/MainOverviewFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/MainOverviewFragment.kt
index 28b9c00ba..7131a3ed3 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/MainOverviewFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/MainOverviewFragment.kt
@@ -4,6 +4,7 @@ import android.os.Bundle
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
+import android.view.accessibility.AccessibilityEvent
 import de.rki.coronawarnapp.databinding.FragmentMainOverviewBinding
 import de.rki.coronawarnapp.ui.BaseFragment
 
@@ -42,6 +43,16 @@ class MainOverviewFragment : BaseFragment() {
         setButtonOnClickListener()
     }
 
+    override fun onStart() {
+        super.onStart()
+        binding.mainOverviewContainer.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED)
+    }
+
+    override fun onResume() {
+        super.onResume()
+        binding.mainOverviewContainer.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED)
+    }
+
     private fun setButtonOnClickListener() {
         binding.mainOverviewHeader.headerToolbar.setNavigationOnClickListener {
             (activity as MainActivity).goBack()
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingFragment.kt
index bad65043b..8aae16616 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingFragment.kt
@@ -4,6 +4,7 @@ import android.os.Bundle
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
+import android.view.accessibility.AccessibilityEvent
 import de.rki.coronawarnapp.databinding.FragmentOnboardingBinding
 import de.rki.coronawarnapp.ui.BaseFragment
 
@@ -40,4 +41,14 @@ class OnboardingFragment : BaseFragment() {
             )
         }
     }
+
+    override fun onStart() {
+        super.onStart()
+        binding.onboardingContainer.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED)
+    }
+
+    override fun onResume() {
+        super.onResume()
+        binding.onboardingContainer.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED)
+    }
 }
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingNotificationsFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingNotificationsFragment.kt
index 7b9c98795..b7f060e57 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingNotificationsFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingNotificationsFragment.kt
@@ -4,6 +4,7 @@ import android.os.Bundle
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
+import android.view.accessibility.AccessibilityEvent
 import androidx.appcompat.app.AlertDialog
 import androidx.core.app.NotificationManagerCompat
 import de.rki.coronawarnapp.databinding.FragmentOnboardingNotificationsBinding
@@ -42,6 +43,16 @@ class OnboardingNotificationsFragment : BaseFragment() {
         setButtonOnClickListener()
     }
 
+    override fun onStart() {
+        super.onStart()
+        binding.onboardingNotificationsContainer.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED)
+    }
+
+    override fun onResume() {
+        super.onResume()
+        binding.onboardingNotificationsContainer.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED)
+    }
+
     private fun setButtonOnClickListener() {
         binding.onboardingButtonNext.setOnClickListener {
             navigateToMain()
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingPrivacyFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingPrivacyFragment.kt
index 21bacc792..d0b725448 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingPrivacyFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingPrivacyFragment.kt
@@ -4,6 +4,7 @@ import android.os.Bundle
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
+import android.view.accessibility.AccessibilityEvent
 import de.rki.coronawarnapp.databinding.FragmentOnboardingPrivacyBinding
 import de.rki.coronawarnapp.ui.BaseFragment
 
@@ -37,6 +38,16 @@ class OnboardingPrivacyFragment : BaseFragment() {
         setButtonOnClickListener()
     }
 
+    override fun onStart() {
+        super.onStart()
+        binding.onboardingPrivacyContainer.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED)
+    }
+
+    override fun onResume() {
+        super.onResume()
+        binding.onboardingPrivacyContainer.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED)
+    }
+
     private fun setButtonOnClickListener() {
         binding.onboardingButtonNext.setOnClickListener {
             doNavigate(
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingTestFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingTestFragment.kt
index 494b6fbd7..c2926653b 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingTestFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingTestFragment.kt
@@ -4,6 +4,7 @@ import android.os.Bundle
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
+import android.view.accessibility.AccessibilityEvent
 import de.rki.coronawarnapp.databinding.FragmentOnboardingTestBinding
 import de.rki.coronawarnapp.ui.BaseFragment
 
@@ -37,6 +38,16 @@ class OnboardingTestFragment : BaseFragment() {
         setButtonOnClickListener()
     }
 
+    override fun onStart() {
+        super.onStart()
+        binding.onboardingTestContainer.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED)
+    }
+
+    override fun onResume() {
+        super.onResume()
+        binding.onboardingTestContainer.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED)
+    }
+
     private fun setButtonOnClickListener() {
         binding.onboardingButtonNext.setOnClickListener {
             doNavigate(
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingTracingFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingTracingFragment.kt
index 3ff6a0f5d..82a3c4707 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingTracingFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingTracingFragment.kt
@@ -5,6 +5,7 @@ import android.os.Bundle
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
+import android.view.accessibility.AccessibilityEvent
 import androidx.appcompat.app.AlertDialog
 import androidx.lifecycle.lifecycleScope
 import de.rki.coronawarnapp.R
@@ -65,6 +66,16 @@ class OnboardingTracingFragment : BaseFragment(),
     override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
         super.onViewCreated(view, savedInstanceState)
         setButtonOnClickListener()
+    }
+
+    override fun onStart() {
+        super.onStart()
+        binding.onboardingTracingContainer.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED)
+    }
+
+    override fun onResume() {
+        super.onResume()
+        binding.onboardingTracingContainer.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED)
         resetTracing()
     }
 
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/riskdetails/RiskDetailsFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/riskdetails/RiskDetailsFragment.kt
index 3c753af57..d4e93ee4c 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/riskdetails/RiskDetailsFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/riskdetails/RiskDetailsFragment.kt
@@ -4,6 +4,7 @@ import android.os.Bundle
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
+import android.view.accessibility.AccessibilityEvent
 import androidx.fragment.app.activityViewModels
 import de.rki.coronawarnapp.databinding.FragmentRiskDetailsBinding
 import de.rki.coronawarnapp.timer.TimerHelper
@@ -11,7 +12,6 @@ import de.rki.coronawarnapp.ui.BaseFragment
 import de.rki.coronawarnapp.ui.main.MainActivity
 import de.rki.coronawarnapp.ui.viewmodel.SettingsViewModel
 import de.rki.coronawarnapp.ui.viewmodel.TracingViewModel
-
 /**
  * This is the detail view of the risk card if additional information for the user.
  *
@@ -51,6 +51,11 @@ class RiskDetailsFragment : BaseFragment() {
         setButtonOnClickListeners()
     }
 
+    override fun onStart() {
+        super.onStart()
+        binding.riskDetailsContainer.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED)
+    }
+
     override fun onResume() {
         super.onResume()
         // refresh required data
@@ -58,6 +63,7 @@ class RiskDetailsFragment : BaseFragment() {
         tracingViewModel.refreshExposureSummary()
         tracingViewModel.refreshLastTimeDiagnosisKeysFetchedDate()
         TimerHelper.checkManualKeyRetrievalTimer()
+        binding.riskDetailsContainer.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED)
     }
 
     private fun setButtonOnClickListeners() {
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/SubmissionContactFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/SubmissionContactFragment.kt
index 93bd99e04..fd37c6941 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/SubmissionContactFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/SubmissionContactFragment.kt
@@ -4,6 +4,7 @@ import android.os.Bundle
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
+import android.view.accessibility.AccessibilityEvent
 import de.rki.coronawarnapp.R
 import de.rki.coronawarnapp.databinding.FragmentSubmissionContactBinding
 import de.rki.coronawarnapp.ui.BaseFragment
@@ -38,6 +39,16 @@ class SubmissionContactFragment : BaseFragment() {
         setButtonOnClickListener()
     }
 
+    override fun onStart() {
+        super.onStart()
+        binding.submissionContactScrollview.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED)
+    }
+
+    override fun onResume() {
+        super.onResume()
+        binding.submissionContactScrollview.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED)
+    }
+
     private fun setButtonOnClickListener() {
         binding.submissionContactHeader.headerToolbar.setNavigationOnClickListener {
             (activity as MainActivity).goBack()
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/SubmissionDispatcherFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/SubmissionDispatcherFragment.kt
index 73bf2aa35..99bdf0a44 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/SubmissionDispatcherFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/SubmissionDispatcherFragment.kt
@@ -4,6 +4,7 @@ import android.os.Bundle
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
+import android.view.accessibility.AccessibilityEvent
 import de.rki.coronawarnapp.R
 import de.rki.coronawarnapp.databinding.FragmentSubmissionDispatcherBinding
 import de.rki.coronawarnapp.ui.BaseFragment
@@ -39,6 +40,16 @@ class SubmissionDispatcherFragment : BaseFragment() {
         setButtonOnClickListener()
     }
 
+    override fun onStart() {
+        super.onStart()
+        binding.submissionDispatcherScrollview.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED)
+    }
+
+    override fun onResume() {
+        super.onResume()
+        binding.submissionDispatcherScrollview.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED)
+    }
+
     private fun setButtonOnClickListener() {
         binding.submissionDispatcherHeader.headerToolbar.setNavigationOnClickListener {
             (activity as MainActivity).goBack()
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/SubmissionIntroFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/SubmissionIntroFragment.kt
index 0dc26e99b..eb58eaced 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/SubmissionIntroFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/SubmissionIntroFragment.kt
@@ -4,9 +4,9 @@ import android.os.Bundle
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
+import android.view.accessibility.AccessibilityEvent
 import de.rki.coronawarnapp.databinding.FragmentSubmissionIntroBinding
 import de.rki.coronawarnapp.ui.BaseFragment
-
 /**
  * The [SubmissionIntroFragment] displays information about how the corona warning system works
  */
@@ -35,6 +35,16 @@ class SubmissionIntroFragment : BaseFragment() {
         setButtonOnClickListener()
     }
 
+    override fun onStart() {
+        super.onStart()
+        binding.submissionIntroScrollview.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED)
+    }
+
+    override fun onResume() {
+        super.onResume()
+        binding.submissionIntroScrollview.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED)
+    }
+
     private fun setButtonOnClickListener() {
         binding.submissionIntroHeader.headerToolbar.setNavigationOnClickListener {
             doNavigate(SubmissionIntroFragmentDirections.actionSubmissionIntroFragmentToMainFragment())
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/SubmissionTanFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/SubmissionTanFragment.kt
index 7a6036caa..b8cc6974f 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/SubmissionTanFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/SubmissionTanFragment.kt
@@ -4,6 +4,7 @@ import android.os.Bundle
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
+import android.view.accessibility.AccessibilityEvent
 import androidx.fragment.app.activityViewModels
 import de.rki.coronawarnapp.R
 import de.rki.coronawarnapp.databinding.FragmentSubmissionTanBinding
@@ -15,7 +16,6 @@ import de.rki.coronawarnapp.ui.BaseFragment
 import de.rki.coronawarnapp.ui.viewmodel.SubmissionViewModel
 import de.rki.coronawarnapp.util.DialogHelper
 import de.rki.coronawarnapp.util.observeEvent
-
 /**
  * Fragment for TAN entry
  */
@@ -110,6 +110,16 @@ class SubmissionTanFragment : BaseFragment() {
         })
     }
 
+    override fun onStart() {
+        super.onStart()
+        binding.submissionTanScrollview.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED)
+    }
+
+    override fun onResume() {
+        super.onResume()
+        binding.submissionTanScrollview.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED)
+    }
+
     private fun navigateToDispatchScreen() =
         doNavigate(SubmissionTanFragmentDirections.actionSubmissionTanFragmentToSubmissionDispatcherFragment())
 
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/viewmodel/TracingViewModel.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/viewmodel/TracingViewModel.kt
index 4bccd807c..cfbf5efcb 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/viewmodel/TracingViewModel.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/viewmodel/TracingViewModel.kt
@@ -32,7 +32,8 @@ class TracingViewModel : ViewModel() {
     // TODO: comments for variables
     // Values from RiskLevelRepository
     val riskLevel: LiveData<Int> = RiskLevelRepository.riskLevelScore
-    val riskLevelScoreLastSuccessfulCalculated = RiskLevelRepository.riskLevelScoreLastSuccessfulCalculated
+    val riskLevelScoreLastSuccessfulCalculated =
+        RiskLevelRepository.riskLevelScoreLastSuccessfulCalculated
 
     // Values from ExposureSummaryRepository
     val daysSinceLastExposure: LiveData<Int?> = ExposureSummaryRepository.daysSinceLastExposure
diff --git a/Corona-Warn-App/src/main/res/layout/fragment_main.xml b/Corona-Warn-App/src/main/res/layout/fragment_main.xml
index 27b5cd78e..95e316012 100644
--- a/Corona-Warn-App/src/main/res/layout/fragment_main.xml
+++ b/Corona-Warn-App/src/main/res/layout/fragment_main.xml
@@ -22,6 +22,8 @@
     </data>
 
     <ScrollView
+        android:id="@+id/main_scrollview"
+        android:contentDescription="@string/main_title"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:fillViewport="true"
@@ -76,6 +78,7 @@
             </androidx.constraintlayout.widget.ConstraintLayout>
 
             <androidx.constraintlayout.widget.ConstraintLayout
+                android:focusable="true"
                 android:id="@+id/main_tracing"
                 style="@style/buttonTracing"
                 android:layout_width="@dimen/match_constraint"
@@ -86,6 +89,7 @@
                 app:layout_constraintTop_toBottomOf="@+id/main_header">
 
                 <TextView
+                    android:focusable="false"
                     android:id="@+id/main_tracing_headline"
                     style="@style/bodyButton"
                     android:layout_width="@dimen/match_constraint"
diff --git a/Corona-Warn-App/src/main/res/layout/fragment_main_overview.xml b/Corona-Warn-App/src/main/res/layout/fragment_main_overview.xml
index a2d3826e6..218d1e0e8 100644
--- a/Corona-Warn-App/src/main/res/layout/fragment_main_overview.xml
+++ b/Corona-Warn-App/src/main/res/layout/fragment_main_overview.xml
@@ -3,10 +3,13 @@
     xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <androidx.constraintlayout.widget.ConstraintLayout
+        android:id="@+id/main_overview_container"
         android:layout_width="match_parent"
-        android:layout_height="match_parent">
+        android:layout_height="match_parent"
+        android:contentDescription="@string/main_overview_accessibility_title">
 
         <!-- todo font adjustments needed through final styles -->
+
         <include
             android:id="@+id/main_overview_header"
             layout="@layout/include_header"
@@ -14,6 +17,7 @@
             android:layout_height="wrap_content"
             app:icon="@{@drawable/ic_close}"
             app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintHorizontal_bias="0.0"
             app:layout_constraintStart_toStartOf="parent"
             app:layout_constraintTop_toTopOf="parent"
             app:title="@{@string/main_overview_title}" />
@@ -74,58 +78,60 @@
                     android:layout_width="0dp"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="@dimen/spacing_normal"
+                    android:focusable="true"
                     app:layout_constraintEnd_toEndOf="parent"
                     app:layout_constraintStart_toStartOf="parent"
                     app:layout_constraintTop_toBottomOf="@+id/main_overview_risk">
 
                     <TextView
+                        android:id="@+id/main_overview_risk_subtitle_text"
                         style="@style/headline6"
                         android:layout_width="0dp"
                         android:layout_height="wrap_content"
                         android:layout_marginStart="@dimen/guideline_body_title"
+                        android:focusable="false"
                         android:text="@string/main_overview_subtitle_risk_levels"
                         app:layout_constraintEnd_toEndOf="parent"
                         app:layout_constraintStart_toStartOf="parent"
                         app:layout_constraintTop_toTopOf="parent" />
 
-                </androidx.constraintlayout.widget.ConstraintLayout>
-
-                <include
-                    android:id="@+id/main_overview_risk_increased_risk"
-                    layout="@layout/include_row"
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    android:layout_marginTop="@dimen/spacing_small"
-                    app:iconStart="@{@drawable/ic_main_overview_circle}"
-                    app:iconTint="@{@color/colorSemanticHighRisk}"
-                    app:layout_constraintEnd_toEndOf="parent"
-                    app:layout_constraintStart_toStartOf="parent"
-                    app:layout_constraintTop_toBottomOf="@+id/main_overview_risk_subtitle"
-                    app:subtitle="@{@string/main_overview_subtitle_increased_risk}" />
+                    <include
+                        android:id="@+id/main_overview_risk_increased_risk"
+                        layout="@layout/include_row"
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="@dimen/spacing_small"
+                        app:iconStart="@{@drawable/ic_main_overview_circle}"
+                        app:iconTint="@{@color/colorSemanticHighRisk}"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toBottomOf="@+id/main_overview_risk_subtitle_text"
+                        app:subtitle="@{@string/main_overview_subtitle_increased_risk}" />
 
-                <include
-                    android:id="@+id/main_overview_risk_low_risk"
-                    layout="@layout/include_row"
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    app:iconStart="@{@drawable/ic_main_overview_circle}"
-                    app:iconTint="@{@color/colorSemanticLowRisk}"
-                    app:layout_constraintEnd_toEndOf="parent"
-                    app:layout_constraintStart_toStartOf="parent"
-                    app:layout_constraintTop_toBottomOf="@+id/main_overview_risk_increased_risk"
-                    app:subtitle="@{@string/main_overview_subtitle_low_risk}" />
+                    <include
+                        android:id="@+id/main_overview_risk_low_risk"
+                        layout="@layout/include_row"
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        app:iconStart="@{@drawable/ic_main_overview_circle}"
+                        app:iconTint="@{@color/colorSemanticLowRisk}"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toBottomOf="@+id/main_overview_risk_increased_risk"
+                        app:subtitle="@{@string/main_overview_subtitle_low_risk}" />
 
-                <include
-                    android:id="@+id/main_overview_risk_unknown_risk"
-                    layout="@layout/include_row"
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    app:iconStart="@{@drawable/ic_main_overview_circle}"
-                    app:iconTint="@{@color/colorSemanticNeutralRisk}"
-                    app:layout_constraintEnd_toEndOf="parent"
-                    app:layout_constraintStart_toStartOf="parent"
-                    app:layout_constraintTop_toBottomOf="@+id/main_overview_risk_low_risk"
-                    app:subtitle="@{@string/main_overview_subtitle_unknown_risk}" />
+                    <include
+                        android:id="@+id/main_overview_risk_unknown_risk"
+                        layout="@layout/include_row"
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        app:iconStart="@{@drawable/ic_main_overview_circle}"
+                        app:iconTint="@{@color/colorSemanticNeutralRisk}"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toBottomOf="@+id/main_overview_risk_low_risk"
+                        app:subtitle="@{@string/main_overview_subtitle_unknown_risk}" />
+                </androidx.constraintlayout.widget.ConstraintLayout>
 
                 <include
                     android:id="@+id/main_overview_test"
@@ -137,7 +143,7 @@
                     app:icon="@{@drawable/ic_main_overview_3}"
                     app:layout_constraintEnd_toEndOf="parent"
                     app:layout_constraintStart_toStartOf="parent"
-                    app:layout_constraintTop_toBottomOf="@+id/main_overview_risk_unknown_risk"
+                    app:layout_constraintTop_toBottomOf="@+id/main_overview_risk_subtitle"
                     app:subtitle="@{@string/main_overview_headline_test}" />
 
                 <include
@@ -151,6 +157,7 @@
                     app:layout_constraintTop_toBottomOf="@id/main_overview_test" />
 
                 <androidx.constraintlayout.widget.ConstraintLayout
+                    android:focusable="true"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:background="@color/colorSurface2"
diff --git a/Corona-Warn-App/src/main/res/layout/fragment_onboarding.xml b/Corona-Warn-App/src/main/res/layout/fragment_onboarding.xml
index 7227d5efb..6c99c27ae 100644
--- a/Corona-Warn-App/src/main/res/layout/fragment_onboarding.xml
+++ b/Corona-Warn-App/src/main/res/layout/fragment_onboarding.xml
@@ -4,6 +4,8 @@
     xmlns:tools="http://schemas.android.com/tools">
 
     <androidx.constraintlayout.widget.ConstraintLayout
+        android:id="@+id/onboarding_container"
+        android:contentDescription="@string/onboarding_onboarding_accessibility_title"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:fillViewport="true"
@@ -23,7 +25,8 @@
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent"
             app:layout_constraintTop_toBottomOf="@+id/guideline_top"
-            app:subtitle="@{@string/onboarding_subtitle}" />
+            app:subtitle="@{@string/onboarding_subtitle}"
+            android:focusable="false"/>
 
         <Button
             android:id="@+id/onboarding_button_next"
diff --git a/Corona-Warn-App/src/main/res/layout/fragment_onboarding_notifications.xml b/Corona-Warn-App/src/main/res/layout/fragment_onboarding_notifications.xml
index da7e8378d..a4d892473 100644
--- a/Corona-Warn-App/src/main/res/layout/fragment_onboarding_notifications.xml
+++ b/Corona-Warn-App/src/main/res/layout/fragment_onboarding_notifications.xml
@@ -3,9 +3,11 @@
     xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <androidx.constraintlayout.widget.ConstraintLayout
+        android:id="@+id/onboarding_notifications_container"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:fillViewport="true">
+        android:fillViewport="true"
+        android:contentDescription="@string/onboarding_notifications_accessibility_title">
 
         <include
             android:id="@+id/onboarding_button_back"
diff --git a/Corona-Warn-App/src/main/res/layout/fragment_onboarding_privacy.xml b/Corona-Warn-App/src/main/res/layout/fragment_onboarding_privacy.xml
index 65d102f43..e0b0d9448 100644
--- a/Corona-Warn-App/src/main/res/layout/fragment_onboarding_privacy.xml
+++ b/Corona-Warn-App/src/main/res/layout/fragment_onboarding_privacy.xml
@@ -11,8 +11,10 @@
     </data>
 
     <androidx.constraintlayout.widget.ConstraintLayout
+        android:id="@+id/onboarding_privacy_container"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
+        android:contentDescription="@string/onboarding_privacy_accessibility_title"
         android:fillViewport="true">
 
         <include
diff --git a/Corona-Warn-App/src/main/res/layout/fragment_onboarding_test.xml b/Corona-Warn-App/src/main/res/layout/fragment_onboarding_test.xml
index ec7bb4e9e..69316d407 100644
--- a/Corona-Warn-App/src/main/res/layout/fragment_onboarding_test.xml
+++ b/Corona-Warn-App/src/main/res/layout/fragment_onboarding_test.xml
@@ -3,9 +3,11 @@
     xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <androidx.constraintlayout.widget.ConstraintLayout
+        android:id="@+id/onboarding_test_container"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:fillViewport="true">
+        android:fillViewport="true"
+        android:contentDescription="@string/onboarding_test_accessibility_title">
 
         <include
             android:id="@+id/onboarding_button_back"
diff --git a/Corona-Warn-App/src/main/res/layout/fragment_onboarding_tracing.xml b/Corona-Warn-App/src/main/res/layout/fragment_onboarding_tracing.xml
index c46d695cd..442c4f9ab 100644
--- a/Corona-Warn-App/src/main/res/layout/fragment_onboarding_tracing.xml
+++ b/Corona-Warn-App/src/main/res/layout/fragment_onboarding_tracing.xml
@@ -3,9 +3,11 @@
     xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <androidx.constraintlayout.widget.ConstraintLayout
+        android:id="@+id/onboarding_tracing_container"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:fillViewport="true">
+        android:fillViewport="true"
+        android:contentDescription="@string/onboarding_tracing_accessibility_title">
 
         <include
             android:id="@+id/onboarding_button_back"
diff --git a/Corona-Warn-App/src/main/res/layout/fragment_risk_details.xml b/Corona-Warn-App/src/main/res/layout/fragment_risk_details.xml
index 3e5f3ad20..d4851a0e1 100644
--- a/Corona-Warn-App/src/main/res/layout/fragment_risk_details.xml
+++ b/Corona-Warn-App/src/main/res/layout/fragment_risk_details.xml
@@ -21,8 +21,10 @@
     </data>
 
     <androidx.constraintlayout.widget.ConstraintLayout
+        android:id="@+id/risk_details_container"
         android:layout_width="match_parent"
-        android:layout_height="match_parent">
+        android:layout_height="match_parent"
+        android:contentDescription="@string/risk_details_accessibility_title">
 
         <com.google.android.material.appbar.AppBarLayout
             android:id="@+id/risk_details_app_bar_layout"
@@ -58,10 +60,12 @@
             app:layout_constraintTop_toBottomOf="@+id/risk_details_app_bar_layout">
 
             <androidx.constraintlayout.widget.ConstraintLayout
+                android:focusable="true"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content">
 
                 <include
+                    android:focusable="false"
                     android:id="@+id/risk_details_risk_card"
                     layout="@layout/include_risk_card"
                     android:layout_width="0dp"
@@ -74,6 +78,7 @@
                     app:tracingViewModel="@{tracingViewModel}" />
 
                 <TextView
+                    android:focusable="false"
                     android:id="@+id/risk_details_behavior_headline"
                     style="@style/headline5"
                     android:layout_width="0dp"
@@ -85,6 +90,7 @@
                     app:layout_constraintTop_toBottomOf="@+id/risk_details_risk_card" />
 
                 <TextView
+                    android:focusable="false"
                     android:id="@+id/risk_details_behavior_subtitle"
                     style="@style/body2"
                     android:layout_width="0dp"
@@ -99,6 +105,7 @@
                     android:id="@+id/risk_details_behavior_wrapper"
                     android:layout_width="0dp"
                     android:layout_height="wrap_content"
+                    android:focusable="true"
                     app:layout_constraintEnd_toStartOf="@+id/guideline_end"
                     app:layout_constraintStart_toStartOf="@+id/guideline_start"
                     app:layout_constraintTop_toBottomOf="@id/risk_details_behavior_subtitle">
@@ -109,6 +116,7 @@
                         android:layout_width="0dp"
                         android:layout_height="wrap_content"
                         android:layout_marginTop="@dimen/spacing_normal"
+                        android:focusable="false"
                         android:visibility="@{FormatterRiskHelper.formatVisibilityBehavior(tracingViewModel.riskLevel)}"
                         app:layout_constraintEnd_toEndOf="parent"
                         app:layout_constraintStart_toStartOf="parent"
@@ -121,6 +129,7 @@
                         android:layout_width="0dp"
                         android:layout_height="wrap_content"
                         android:layout_marginTop="@dimen/spacing_normal"
+                        android:focusable="false"
                         android:visibility="@{FormatterRiskHelper.formatVisibilityBehaviorIncreasedRisk(tracingViewModel.riskLevel)}"
                         app:layout_constraintEnd_toEndOf="parent"
                         app:layout_constraintStart_toStartOf="parent"
@@ -130,6 +139,7 @@
                 </androidx.constraintlayout.widget.ConstraintLayout>
 
                 <androidx.constraintlayout.widget.ConstraintLayout
+                    android:focusable="true"
                     android:id="@+id/risk_details_body"
                     style="@style/greyBodyBackground"
                     android:layout_width="match_parent"
@@ -139,6 +149,7 @@
                     app:layout_constraintTop_toBottomOf="@id/risk_details_behavior_wrapper">
 
                     <TextView
+                        android:focusable="false"
                         android:id="@+id/risk_details_information_headline"
                         style="@style/headline5"
                         android:layout_width="match_parent"
@@ -149,6 +160,7 @@
                         app:layout_constraintTop_toTopOf="parent" />
 
                     <TextView
+                        android:focusable="false"
                         android:id="@+id/risk_details_information_subtitle"
                         style="@style/body2"
                         android:layout_width="match_parent"
@@ -160,6 +172,7 @@
                         app:layout_constraintTop_toBottomOf="@+id/risk_details_information_headline" />
 
                     <TextView
+                        android:focusable="false"
                         android:id="@+id/risk_details_information_body"
                         style="@style/body2"
                         android:layout_width="match_parent"
@@ -172,6 +185,7 @@
                         app:layout_constraintTop_toBottomOf="@+id/risk_details_information_subtitle" />
 
                     <TextView
+                        android:focusable="false"
                         android:id="@+id/risk_details_information_body_notice"
                         style="@style/body2"
                         android:layout_width="match_parent"
diff --git a/Corona-Warn-App/src/main/res/layout/fragment_submission_contact.xml b/Corona-Warn-App/src/main/res/layout/fragment_submission_contact.xml
index 1c0e6016e..a007acf69 100644
--- a/Corona-Warn-App/src/main/res/layout/fragment_submission_contact.xml
+++ b/Corona-Warn-App/src/main/res/layout/fragment_submission_contact.xml
@@ -4,9 +4,11 @@
     xmlns:tools="http://schemas.android.com/tools">
 
     <ScrollView
+        android:id="@+id/submission_contact_scrollview"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:fillViewport="true"
+        android:contentDescription="@string/submission_contact_accessibility_title"
         tools:context=".ui.submission.SubmissionContactFragment">
 
         <androidx.constraintlayout.widget.ConstraintLayout
diff --git a/Corona-Warn-App/src/main/res/layout/fragment_submission_dispatcher.xml b/Corona-Warn-App/src/main/res/layout/fragment_submission_dispatcher.xml
index d4f5b84bc..086d6c77f 100644
--- a/Corona-Warn-App/src/main/res/layout/fragment_submission_dispatcher.xml
+++ b/Corona-Warn-App/src/main/res/layout/fragment_submission_dispatcher.xml
@@ -4,10 +4,12 @@
     xmlns:tools="http://schemas.android.com/tools">
 
     <ScrollView
+        android:id="@+id/submission_dispatcher_scrollview"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:fillViewport="true"
-        tools:context=".ui.submission.SubmissionDispatcherFragment">
+        tools:context=".ui.submission.SubmissionDispatcherFragment"
+        android:contentDescription="@string/submission_dispatcher_accessibility_title">
 
         <androidx.constraintlayout.widget.ConstraintLayout
             android:layout_width="match_parent"
diff --git a/Corona-Warn-App/src/main/res/layout/fragment_submission_intro.xml b/Corona-Warn-App/src/main/res/layout/fragment_submission_intro.xml
index f9742d587..c3cd9f457 100644
--- a/Corona-Warn-App/src/main/res/layout/fragment_submission_intro.xml
+++ b/Corona-Warn-App/src/main/res/layout/fragment_submission_intro.xml
@@ -4,9 +4,11 @@
     xmlns:tools="http://schemas.android.com/tools">
 
     <ScrollView
+        android:id="@+id/submission_intro_scrollview"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:fillViewport="true"
+        android:contentDescription="@string/submission_intro_accessibility_title"
         tools:context=".ui.submission.SubmissionIntroFragment">
 
         <androidx.constraintlayout.widget.ConstraintLayout
@@ -22,7 +24,8 @@
                 app:layout_constraintEnd_toEndOf="parent"
                 app:layout_constraintStart_toStartOf="parent"
                 app:layout_constraintTop_toTopOf="parent"
-                app:title="@{@string/submission_intro_title}" />
+                app:title="@{@string/submission_intro_title}"
+               />
 
             <include
                 layout="@layout/include_submission_intro"
@@ -31,7 +34,8 @@
                 app:layout_constraintBottom_toTopOf="@+id/guideline_action"
                 app:layout_constraintEnd_toEndOf="parent"
                 app:layout_constraintStart_toStartOf="parent"
-                app:layout_constraintTop_toBottomOf="@+id/submission_intro_header" />
+                app:layout_constraintTop_toBottomOf="@+id/submission_intro_header"
+              />
 
             <Button
                 android:id="@+id/submission_intro_button_next"
diff --git a/Corona-Warn-App/src/main/res/layout/fragment_submission_tan.xml b/Corona-Warn-App/src/main/res/layout/fragment_submission_tan.xml
index c940d7044..4803d45dd 100644
--- a/Corona-Warn-App/src/main/res/layout/fragment_submission_tan.xml
+++ b/Corona-Warn-App/src/main/res/layout/fragment_submission_tan.xml
@@ -14,14 +14,17 @@
 
 
     <ScrollView
+        android:id="@+id/submission_tan_scrollview"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:fillViewport="true"
+        android:contentDescription="@string/submission_tan_accessibility_title"
         tools:context=".ui.submission.SubmissionTanFragment">
 
         <androidx.constraintlayout.widget.ConstraintLayout
             android:layout_width="match_parent"
-            android:layout_height="wrap_content">
+            android:layout_height="wrap_content"
+            android:focusable="true">
 
             <include
                 android:id="@+id/submission_tan_header"
@@ -32,7 +35,8 @@
                 app:layout_constraintEnd_toEndOf="parent"
                 app:layout_constraintStart_toStartOf="parent"
                 app:layout_constraintTop_toTopOf="parent"
-                app:title="@{@string/submission_tan_title}" />
+                app:title="@{@string/submission_tan_title}"
+                android:focusable="false"/>
 
             <TextView
                 android:id="@+id/submission_tan_body"
@@ -43,7 +47,8 @@
                 android:text="@string/submission_tan_body"
                 app:layout_constraintEnd_toStartOf="@+id/guideline_end"
                 app:layout_constraintStart_toStartOf="@+id/guideline_start"
-                app:layout_constraintTop_toBottomOf="@id/submission_tan_header" />
+                app:layout_constraintTop_toBottomOf="@id/submission_tan_header"
+                android:focusable="false"/>
 
             <de.rki.coronawarnapp.ui.submission.TanInput
                 android:id="@+id/submission_tan_input"
@@ -52,7 +57,7 @@
                 android:layout_marginTop="@dimen/spacing_normal"
                 app:layout_constraintEnd_toStartOf="@+id/guideline_end"
                 app:layout_constraintStart_toStartOf="@+id/guideline_start"
-                app:layout_constraintTop_toBottomOf="@+id/submission_tan_body" />
+                app:layout_constraintTop_toBottomOf="@+id/submission_tan_body"/>
 
             <Button
                 android:id="@+id/submission_tan_button_enter"
diff --git a/Corona-Warn-App/src/main/res/layout/include_button_icon.xml b/Corona-Warn-App/src/main/res/layout/include_button_icon.xml
index 4bdf45b4d..2eabc9342 100644
--- a/Corona-Warn-App/src/main/res/layout/include_button_icon.xml
+++ b/Corona-Warn-App/src/main/res/layout/include_button_icon.xml
@@ -22,7 +22,7 @@
             style="@style/icon"
             android:layout_width="@dimen/icon_size_button"
             android:layout_height="@dimen/icon_size_button"
-            android:contentDescription="@string/lorem_ipsum"
+            android:contentDescription="@string/button_back"
             android:src="@{icon}"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
diff --git a/Corona-Warn-App/src/main/res/layout/include_dispatcher_card.xml b/Corona-Warn-App/src/main/res/layout/include_dispatcher_card.xml
index 12f0a3542..6dc37f0bd 100644
--- a/Corona-Warn-App/src/main/res/layout/include_dispatcher_card.xml
+++ b/Corona-Warn-App/src/main/res/layout/include_dispatcher_card.xml
@@ -24,7 +24,8 @@
         style="@style/cardGrey"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        app:layout_constraintTop_toTopOf="parent">
+        app:layout_constraintTop_toTopOf="parent"
+        android:focusable="true">
 
         <TextView
             android:id="@+id/dispatcher_card_title"
@@ -40,16 +41,16 @@
             app:layout_constraintTop_toTopOf="parent"
             tools:text="@string/submission_dispatcher_card_qr" />
 
-        <include
+        <ImageView
             android:id="@+id/dispatcher_card_icon"
-            layout="@layout/include_button_icon"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_marginTop="@dimen/spacing_small"
             android:layout_marginEnd="@dimen/spacing_normal"
             app:icon="@{@drawable/ic_forward}"
             app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintTop_toTopOf="parent" />
+            app:layout_constraintTop_toTopOf="parent"
+            tools:src="@drawable/ic_icon_drilldowncard_dark" />
 
         <TextView
             android:id="@+id/submission_dispatcher_card_text"
@@ -70,7 +71,6 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_marginTop="@dimen/button_icon_margin"
-            android:contentDescription="@string/lorem_ipsum"
             android:src="@{illustration}"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
diff --git a/Corona-Warn-App/src/main/res/layout/include_main_card.xml b/Corona-Warn-App/src/main/res/layout/include_main_card.xml
index 5783ed452..d147902ef 100644
--- a/Corona-Warn-App/src/main/res/layout/include_main_card.xml
+++ b/Corona-Warn-App/src/main/res/layout/include_main_card.xml
@@ -42,7 +42,7 @@
     <androidx.constraintlayout.widget.ConstraintLayout
         android:id="@+id/main_card"
         style="@style/card"
-        android:layout_width="match_parent"
+         android:layout_width="match_parent"
         android:layout_height="wrap_content">
 
         <androidx.constraintlayout.widget.ConstraintLayout
@@ -116,7 +116,6 @@
                 android:id="@+id/main_card_content_illustration"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:contentDescription="@string/lorem_ipsum"
                 android:src="@{illustration}"
                 app:layout_constraintEnd_toEndOf="parent"
                 app:layout_constraintTop_toTopOf="parent" />
diff --git a/Corona-Warn-App/src/main/res/layout/include_main_overview_segment.xml b/Corona-Warn-App/src/main/res/layout/include_main_overview_segment.xml
index 25644c52e..8201510f7 100644
--- a/Corona-Warn-App/src/main/res/layout/include_main_overview_segment.xml
+++ b/Corona-Warn-App/src/main/res/layout/include_main_overview_segment.xml
@@ -28,7 +28,8 @@
             android:layout_height="wrap_content"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toTopOf="parent">
+            app:layout_constraintTop_toTopOf="parent"
+            android:focusable="true">
 
             <ImageView
                 android:id="@+id/main_overview_segment_icon"
@@ -48,7 +49,8 @@
                 android:text="@{subtitle}"
                 app:layout_constraintEnd_toEndOf="parent"
                 app:layout_constraintStart_toStartOf="@+id/guideline_body"
-                app:layout_constraintTop_toTopOf="parent" />
+                app:layout_constraintTop_toTopOf="parent"
+                android:focusable="false"/>
 
             <TextView
                 android:id="@+id/main_overview_segment_body"
@@ -60,7 +62,8 @@
                 app:layout_constraintBottom_toBottomOf="parent"
                 app:layout_constraintEnd_toEndOf="parent"
                 app:layout_constraintStart_toStartOf="@+id/main_overview_segment_subtitle"
-                app:layout_constraintTop_toBottomOf="@+id/main_overview_segment_subtitle" />
+                app:layout_constraintTop_toBottomOf="@+id/main_overview_segment_subtitle"
+                android:focusable="false"/>
 
             <androidx.constraintlayout.widget.Guideline
                 android:id="@+id/guideline_body"
diff --git a/Corona-Warn-App/src/main/res/layout/include_onboarding.xml b/Corona-Warn-App/src/main/res/layout/include_onboarding.xml
index b7628a823..f8e7814a7 100644
--- a/Corona-Warn-App/src/main/res/layout/include_onboarding.xml
+++ b/Corona-Warn-App/src/main/res/layout/include_onboarding.xml
@@ -47,7 +47,8 @@
 
         <androidx.constraintlayout.widget.ConstraintLayout
             android:layout_width="match_parent"
-            android:layout_height="wrap_content">
+            android:layout_height="wrap_content"
+            android:focusable="true">
 
             <ImageView
                 android:id="@+id/onboarding_illustration"
@@ -66,6 +67,7 @@
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="@dimen/spacing_normal"
+                android:focusable="false"
                 android:text="@{headline}"
                 app:layout_constraintEnd_toEndOf="@id/guideline_end"
                 app:layout_constraintStart_toStartOf="@id/guideline_start"
@@ -78,6 +80,7 @@
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="@dimen/spacing_small"
+                android:focusable="false"
                 android:text="@{subtitle}"
                 android:visibility="@{FormatterHelper.formatVisibilityText(subtitle)}"
                 app:layout_constraintEnd_toEndOf="@id/guideline_end"
@@ -91,6 +94,7 @@
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="@dimen/spacing_normal"
+                android:focusable="false"
                 android:text="@{body}"
                 app:layout_constraintEnd_toEndOf="@id/guideline_end"
                 app:layout_constraintStart_toStartOf="@id/guideline_start"
@@ -103,6 +107,7 @@
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="@dimen/spacing_normal"
+                android:focusable="false"
                 android:text="@{bodyEmphasized}"
                 android:visibility="@{FormatterHelper.formatVisibilityText(bodyEmphasized)}"
                 app:layout_constraintEnd_toEndOf="@id/guideline_end"
diff --git a/Corona-Warn-App/src/main/res/layout/include_risk_card.xml b/Corona-Warn-App/src/main/res/layout/include_risk_card.xml
index 5eabb5178..48c7feab6 100644
--- a/Corona-Warn-App/src/main/res/layout/include_risk_card.xml
+++ b/Corona-Warn-App/src/main/res/layout/include_risk_card.xml
@@ -27,7 +27,8 @@
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:background="@{FormatterRiskHelper.formatRiskShape(showDetails)}"
-        android:backgroundTint="@{FormatterRiskHelper.formatRiskColor(tracingViewModel.riskLevel)}">
+        android:backgroundTint="@{FormatterRiskHelper.formatRiskColor(tracingViewModel.riskLevel)}"
+        android:focusable="true">
 
         <include
             android:id="@+id/risk_card_header"
@@ -144,9 +145,9 @@
             <!-- todo exchange variable-->
             <androidx.constraintlayout.widget.ConstraintLayout
                 android:id="@+id/risk_card_row_saved_days"
-                android:layout_marginTop="@dimen/spacing_small"
                 android:layout_width="@dimen/match_constraint"
                 android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/spacing_small"
                 android:visibility="@{FormatterHelper.formatVisibilityText(FormatterRiskHelper.formatRiskActiveTracingDaysInRetentionPeriod(tracingViewModel.riskLevel, showDetails, tracingViewModel.activeTracingDaysInRetentionPeriod))}"
                 app:layout_constraintEnd_toEndOf="parent"
                 app:layout_constraintStart_toStartOf="parent"
@@ -165,12 +166,12 @@
                         android:layout_width="23dp"
                         android:layout_height="23dp"
                         app:circleColor="@color/colorStableMedium"
+                        app:circleWidth="5"
                         app:disableText="true"
                         app:layout_constraintBottom_toBottomOf="parent"
                         app:layout_constraintEnd_toEndOf="parent"
                         app:layout_constraintStart_toStartOf="parent"
                         app:layout_constraintTop_toTopOf="parent"
-                        app:circleWidth="5"
                         app:progress="@{tracingViewModel.activeTracingDaysInRetentionPeriod}"
                         app:progressColor="@color/colorStableLight" />
 
diff --git a/Corona-Warn-App/src/main/res/layout/include_risk_card_header.xml b/Corona-Warn-App/src/main/res/layout/include_risk_card_header.xml
index 4b625854d..5aa9c5097 100644
--- a/Corona-Warn-App/src/main/res/layout/include_risk_card_header.xml
+++ b/Corona-Warn-App/src/main/res/layout/include_risk_card_header.xml
@@ -40,7 +40,6 @@
             android:id="@+id/risk_card_header_icon"
             android:layout_width="@dimen/icon_size_risk_card"
             android:layout_height="@dimen/icon_size_risk_card"
-            android:contentDescription="@string/lorem_ipsum"
             android:importantForAccessibility="no"
             android:src="@drawable/ic_forward"
             android:tint="@{FormatterRiskHelper.formatStableIconColor(tracingViewModel.riskLevel)}"
diff --git a/Corona-Warn-App/src/main/res/layout/include_risk_details_behavior_increased_risk.xml b/Corona-Warn-App/src/main/res/layout/include_risk_details_behavior_increased_risk.xml
index 32fe7197c..15e1b4702 100644
--- a/Corona-Warn-App/src/main/res/layout/include_risk_details_behavior_increased_risk.xml
+++ b/Corona-Warn-App/src/main/res/layout/include_risk_details_behavior_increased_risk.xml
@@ -15,10 +15,12 @@
     </data>
 
     <androidx.constraintlayout.widget.ConstraintLayout
+        android:focusable="true"
         android:layout_width="match_parent"
         android:layout_height="match_parent">
 
         <include
+            android:focusable="false"
             android:id="@+id/risk_details_behavior_stay_home"
             layout="@layout/include_risk_details_behavior_row"
             android:layout_width="0dp"
@@ -31,6 +33,7 @@
             app:riskLevel="@{tracingViewModel.riskLevel}" />
 
         <include
+            android:focusable="false"
             android:id="@+id/risk_details_behavior_stay_away"
             layout="@layout/include_risk_details_behavior_row"
             android:layout_width="0dp"
@@ -44,6 +47,7 @@
             app:riskLevel="@{tracingViewModel.riskLevel}" />
 
         <include
+            android:focusable="false"
             android:id="@+id/risk_details_behavior_cough_sneeze"
             layout="@layout/include_risk_details_behavior_row"
             android:layout_width="0dp"
@@ -58,6 +62,7 @@
 
 
         <androidx.constraintlayout.widget.ConstraintLayout
+            android:focusable="true"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layout_marginStart="@dimen/spacing_large"
@@ -67,6 +72,7 @@
             app:layout_constraintTop_toBottomOf="@+id/risk_details_behavior_cough_sneeze">
 
             <TextView
+                android:focusable="false"
                 android:id="@+id/risk_details_behavior_bullet_point_1"
                 style="@style/subtitle"
                 android:layout_width="0dp"
@@ -77,6 +83,7 @@
                 app:layout_constraintTop_toTopOf="parent" />
 
             <TextView
+                android:focusable="false"
                 android:id="@+id/risk_details_behavior_bullet_point_2"
                 style="@style/subtitle"
                 android:layout_width="0dp"
@@ -88,6 +95,7 @@
                 app:layout_constraintTop_toBottomOf="@id/risk_details_behavior_bullet_point_1" />
 
             <TextView
+                android:focusable="false"
                 android:id="@+id/risk_details_behavior_bullet_point_3"
                 style="@style/subtitle"
                 android:layout_width="0dp"
diff --git a/Corona-Warn-App/src/main/res/layout/include_risk_details_behavior_row.xml b/Corona-Warn-App/src/main/res/layout/include_risk_details_behavior_row.xml
index 82bfcf512..8d5e0f5e8 100644
--- a/Corona-Warn-App/src/main/res/layout/include_risk_details_behavior_row.xml
+++ b/Corona-Warn-App/src/main/res/layout/include_risk_details_behavior_row.xml
@@ -21,6 +21,7 @@
     </data>
 
     <androidx.constraintlayout.widget.ConstraintLayout
+        android:focusable="true"
         android:layout_width="match_parent"
         android:layout_height="wrap_content">
 
@@ -35,6 +36,7 @@
             app:layout_constraintTop_toTopOf="parent">
 
             <ImageView
+                android:focusable="false"
                 style="@style/icon"
                 android:layout_width="@dimen/icon_size_risk_details_behavior"
                 android:layout_height="@dimen/icon_size_risk_details_behavior"
@@ -49,6 +51,7 @@
         </androidx.constraintlayout.widget.ConstraintLayout>
 
         <TextView
+            android:focusable="false"
             style="@style/subtitle"
             android:layout_width="0dp"
             android:layout_height="wrap_content"
diff --git a/Corona-Warn-App/src/main/res/layout/include_submission_contact.xml b/Corona-Warn-App/src/main/res/layout/include_submission_contact.xml
index 6fde2a8fc..b07947c95 100644
--- a/Corona-Warn-App/src/main/res/layout/include_submission_contact.xml
+++ b/Corona-Warn-App/src/main/res/layout/include_submission_contact.xml
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android"
+<layout xmlns:tools="http://schemas.android.com/tools"
+    xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <ScrollView
@@ -8,7 +9,8 @@
 
         <androidx.constraintlayout.widget.ConstraintLayout
             android:layout_width="match_parent"
-            android:layout_height="wrap_content">
+            android:layout_height="wrap_content"
+            android:focusable="true">
 
             <ImageView
                 android:id="@+id/submission_contact_illustration"
@@ -28,7 +30,8 @@
                 android:text="@string/submission_contact_body"
                 app:layout_constraintEnd_toStartOf="@+id/guideline_end"
                 app:layout_constraintStart_toStartOf="@+id/guideline_start"
-                app:layout_constraintTop_toBottomOf="@id/submission_contact_illustration" />
+                app:layout_constraintTop_toBottomOf="@id/submission_contact_illustration"
+                android:focusable="false"/>
 
             <TextView
                 android:id="@+id/submission_contact_headline"
@@ -39,7 +42,8 @@
                 android:text="@string/submission_contact_headline"
                 app:layout_constraintEnd_toEndOf="parent"
                 app:layout_constraintStart_toStartOf="@id/guideline_start"
-                app:layout_constraintTop_toBottomOf="@+id/submission_contact_body" />
+                app:layout_constraintTop_toBottomOf="@+id/submission_contact_body"
+                android:focusable="false"/>
 
 
             <de.rki.coronawarnapp.ui.view.StepEntry
@@ -51,7 +55,8 @@
                 app:layout_constraintStart_toStartOf="@+id/guideline_start"
                 app:layout_constraintTop_toBottomOf="@id/submission_contact_headline"
                 app:step_entry_final="false"
-                app:step_entry_icon="@drawable/ic_main_overview_1">
+                app:step_entry_icon="@drawable/ic_main_overview_1"
+                android:contentDescription="@string/submission_contact_step_1_content">
 
                 <androidx.constraintlayout.widget.ConstraintLayout
                     android:layout_width="match_parent"
@@ -105,12 +110,20 @@
                 app:layout_constraintTop_toBottomOf="@+id/submission_contact_step_1"
                 app:step_entry_final="true"
                 app:step_entry_icon="@drawable/ic_main_overview_2">
+                android:contentDescription="@string/submission_contact_step_2_content">
+                <androidx.constraintlayout.widget.ConstraintLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content">
 
                 <TextView
-                    style="@style/subtitle"
-                    android:layout_width="wrap_content"
+                    android:layout_width="@dimen/match_constraint"
                     android:layout_height="wrap_content"
-                    android:text="@string/submission_contact_step_2_body" />
+                    android:layout_marginTop="@dimen/button_icon_margin"
+                    android:text="@string/submission_contact_step_2_body"
+                    app:layout_constraintEnd_toEndOf="parent"
+                    app:layout_constraintStart_toStartOf="parent"
+                    app:layout_constraintTop_toTopOf="parent" />
+                </androidx.constraintlayout.widget.ConstraintLayout>
 
             </de.rki.coronawarnapp.ui.view.StepEntry>
 
diff --git a/Corona-Warn-App/src/main/res/layout/include_submission_intro.xml b/Corona-Warn-App/src/main/res/layout/include_submission_intro.xml
index 06ae9ec33..c60a1ff19 100644
--- a/Corona-Warn-App/src/main/res/layout/include_submission_intro.xml
+++ b/Corona-Warn-App/src/main/res/layout/include_submission_intro.xml
@@ -8,7 +8,8 @@
 
         <androidx.constraintlayout.widget.ConstraintLayout
             android:layout_width="match_parent"
-            android:layout_height="wrap_content">
+            android:layout_height="wrap_content"
+            android:focusable="true">
 
             <ImageView
                 android:id="@+id/submission_intro_hero_illustration"
@@ -23,6 +24,7 @@
 
             <TextView
                 android:id="@+id/submission_intro_headline"
+                android:focusable="false"
                 style="@style/headline4"
                 android:layout_width="@dimen/match_constraint"
                 android:layout_height="wrap_content"
@@ -34,6 +36,7 @@
 
             <TextView
                 android:id="@+id/submission_intro_text"
+                android:focusable="false"
                 style="@style/subtitle"
                 android:layout_width="@dimen/match_constraint"
                 android:layout_height="wrap_content"
@@ -46,6 +49,7 @@
             <TextView
                 android:id="@+id/submission_intro_text_enum"
                 style="@style/subtitle"
+                android:focusable="false"
                 android:layout_width="@dimen/match_constraint"
                 android:layout_height="wrap_content"
                 android:layout_marginStart="@dimen/spacing_normal"
diff --git a/Corona-Warn-App/src/main/res/layout/include_submission_status_card_content.xml b/Corona-Warn-App/src/main/res/layout/include_submission_status_card_content.xml
index bc18df4e3..8ab090fe2 100644
--- a/Corona-Warn-App/src/main/res/layout/include_submission_status_card_content.xml
+++ b/Corona-Warn-App/src/main/res/layout/include_submission_status_card_content.xml
@@ -13,12 +13,14 @@
     </data>
 
     <androidx.constraintlayout.widget.ConstraintLayout
+        android:focusable="true"
         android:id="@+id/submission_status_card_content"
         style="@style/cardNoPadding"
         android:layout_width="match_parent"
         android:layout_height="wrap_content">
 
         <TextView
+            android:focusable="false"
             android:id="@+id/submission_status_card_content_title"
             style="@style/headline5"
             android:layout_width="@dimen/match_constraint"
@@ -33,6 +35,7 @@
             tools:text="@string/submission_status_card_title_available" />
 
         <TextView
+            android:focusable="false"
             android:id="@+id/submission_status_card_content_subtitle"
             style="@style/subtitleMedium"
             android:layout_width="@dimen/match_constraint"
@@ -49,6 +52,7 @@
             tools:text="@string/test_result_card_status_negative" />
 
         <TextView
+            android:focusable="false"
             android:id="@+id/submission_status_card_content_body"
             style="@style/subtitle"
             android:layout_width="@dimen/match_constraint"
diff --git a/Corona-Warn-App/src/main/res/layout/include_submission_status_card_unregistered.xml b/Corona-Warn-App/src/main/res/layout/include_submission_status_card_unregistered.xml
index 8c60e2647..918d8abac 100644
--- a/Corona-Warn-App/src/main/res/layout/include_submission_status_card_unregistered.xml
+++ b/Corona-Warn-App/src/main/res/layout/include_submission_status_card_unregistered.xml
@@ -6,7 +6,8 @@
         android:id="@+id/submission_status_card_unregistered"
         style="@style/cardNoPadding"
         android:layout_width="match_parent"
-        android:layout_height="wrap_content">
+        android:layout_height="wrap_content"
+        android:focusable="true">
 
 
         <TextView
@@ -20,11 +21,13 @@
             android:text="@string/submission_status_card_title_unregistered"
             app:layout_constraintEnd_toStartOf="@+id/submission_status_card_unregistered_icon"
             app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toTopOf="parent" />
+            app:layout_constraintTop_toTopOf="parent"
+            android:focusable="false"/>
 
 
         <TextView
             android:id="@+id/submission_status_card_unregistered_body"
+            android:focusable="false"
             style="@style/subtitleMedium"
             android:layout_width="@dimen/match_constraint"
             android:layout_height="wrap_content"
diff --git a/Corona-Warn-App/src/main/res/values/strings.xml b/Corona-Warn-App/src/main/res/values/strings.xml
index 0b6468412..98914fc88 100644
--- a/Corona-Warn-App/src/main/res/values/strings.xml
+++ b/Corona-Warn-App/src/main/res/values/strings.xml
@@ -226,7 +226,8 @@
     <string name="main_about_body">Hier finden Sie Antworten auf häufig gestellte Fragen rund um die Corona-Warn-App.</string>
     <!-- NOTR todo insert english link in translation file https://www.bundesregierung.de/corona-warn-app-faq-englisch -->
     <string name="main_about_link">https://www.bundesregierung.de/corona-warn-app-faq</string>
-
+    <!-- XACT: Opens external webpage -->
+    <string name="hint_external_webpage">Häufige Fragen, hier finden Sie Antworten auf häufig gestellte Fragen rund um die Corona-Warn-App. Aufruf externer Infos im Web.</string>
     <!-- ####################################
                Main - Share
     ###################################### -->
@@ -250,6 +251,8 @@
 
     <!-- XHED: App overview page title -->
     <string name="main_overview_title">Ãœberblick</string>
+    <!-- XACT: main overview page title -->
+    <string name="main_overview_accessibility_title">Ãœberblick</string>
     <!-- XHED: App overview subtitle for tracing explanation-->
     <string name="main_overview_subtitle_tracing">Risiko-Ermittlung</string>
     <!-- YTXT: App overview body text about tracing -->
@@ -294,6 +297,8 @@
     <string name="main_overview_body_glossary_keys">Die Zufallscodes sind zufällig erzeugte Zahlen- und Buchstabenkombinationen. Sie werden zwischen benachbarten Smartphones ausgetauscht. Zufallskennungen lassen sich nicht einer bestimmten Person zuordnen und werden nach 14 Tagen automatisch gelöscht. Eine Corona-positiv getestete Person kann ihre Zufallscodes der letzten bis zu 14 Tage freiwillig mit anderen CWA-Nutzern teilen.</string>
     <!-- XACT: main (overview) - illustraction description, explanation image -->
     <string name="main_overview_illustration_description">Ein Smartphone zeigt unterschiedliche Inhalte, die von eins bis drei nummeriert sind.</string>
+    <!-- XACT: App main page title -->
+    <string name="main_title">Hauptseite der Corona-Warn App</string>
 
     <!-- ####################################
                Risk Details
@@ -341,6 +346,8 @@
     <string name="risk_details_information_body_notice">Das Infektionsrisiko wird anhand der Daten der Risiko-Ermittlung unter Berücksichtigung von Abstand und Dauer lokal auf Ihrem Smartphone berechnet. Ihr Infektionsrisiko ist für niemanden einsehbar und wird nicht weitergegeben.</string> <!-- final -->
     <string name="risk_details_button_update">@string/risk_card_button_update</string>
     <string name="risk_details_button_enable_tracing">@string/risk_card_button_enable_tracing</string>
+    <!-- XACT: risk details page title -->
+    <string name="risk_details_accessibility_title">Ihr Risikostatus</string>
 
     <!-- ####################################
               Onboarding
@@ -359,6 +366,8 @@
     <string name="onboarding_button_start">Los geht\'s</string>
     <!-- XTXT: onboarding - back description for screen reader -->
     <string name="onboarding_button_back_description">Zurück</string>
+    <!-- XACT: Onboarding (together) page title -->
+    <string name="onboarding_onboarding_accessibility_title">Einführung Seite 1 von 5. Gemeinsam Corona bekämpfen</string>
     <!-- XHED: onboarding(together) - fight corona -->
     <string name="onboarding_headline">Gemeinsam Corona bekämpfen</string>
     <!-- XHED: onboarding(together) - two/three line headline under an illustration -->
@@ -369,12 +378,16 @@
     <string name="onboarding_body_emphasized">Die App merkt sich Begegnungen zwischen Menschen, indem ihre Smartphones verschlüsselte Zufallscodes austauschen. Und zwar ohne dabei auf persönliche Daten zuzugreifen.</string>
     <!-- XACT: onboarding(together) - illustraction description, header image -->
     <string name="onboarding_illustration_description">Eine vielfältige Gruppe in einer Stadt benutzt Smartphones.</string>
+    <!-- XACT: Onboarding (privacy) page title -->
+    <string name="onboarding_privacy_accessibility_title">Einführung Seite 2 von 5. Datenschutz</string>
     <!-- XHED: onboarding(privacy) - title -->
     <string name="onboarding_privacy_headline">Datenschutz</string>
     <!-- YTXT: onboarding(privacy) - body -->
     <string name="onboarding_privacy_body">@string/information_privacy_body</string>
     <!-- XACT: onboarding(privacy) - illustraction description, header image -->
     <string name="onboarding_privacy_illustration_description">Eine Frau mit einem Handy benutzt die Corona-Warn-App, ein Vorhängeschloss auf einem Schild steht als Symbol für verschlüsselte Daten.</string>
+    <!-- XACT: Onboarding (tracing) page title -->
+    <string name="onboarding_tracing_accessibility_title">Einführung Seite 3 von 5. Wie Sie die Risiko Ermittlung ermöglichen</string>
     <!-- XHED: onboarding(tracing) - how to enable tracing -->
     <string name="onboarding_tracing_headline">Wie Sie die Risiko-Ermittlung ermöglichen</string>
     <!-- XHED: onboarding(tracing) - two/three line headline under an illustration -->
@@ -399,6 +412,8 @@
     <string name="onboarding_tracing_dialog_button_negative">Zurück</string>
     <!-- XACT: onboarding(tracing) - illustraction description, header image -->
     <string name="onboarding_tracing_illustration_description">Drei Personen haben die Risiko-Erkennung auf ihren Smartphones aktiviert, ihre Begegnung wird daher aufgezeichnet.</string>
+    <!-- XACT: Onboarding (test) page title -->
+    <string name="onboarding_test_accessibility_title">Einführung Seite 4 von 5. Falls Sie positiv getestet wurden</string>
     <!-- XHED: onboarding(test) - about positive tests -->
     <string name="onboarding_test_headline">Falls Sie positiv getestet werden …</string>
     <!-- XHED: onboarding(test) - two/three line headline under an illustration -->
@@ -407,6 +422,8 @@
     <string name="onboarding_test_body">Ihre Mitteilung wird zuverlässig verschlüsselt über einen sicheren Server weiterverarbeitet. Die Personen, deren verschlüsselte Zufallscodes Sie gesammelt haben, erhalten nun eine Warnung und Informationen darüber, wie sie weiter vorgehen sollen.</string>
     <!-- XACT: onboarding(test) - illustraction description, header image -->
     <string name="onboarding_test_illustration_description">Ein positiver Testbefund wird verschlüsselt ins System übermittelt, das nun andere Nutzerinnen und Nutzer warnt.</string>
+    <!-- XACT: Onboarding (datashare) page title -->
+    <string name="onboarding_notifications_accessibility_title">Einführung Seite 5 von 5. Warnungen erhalten und Risiken erkennen</string>
     <!-- XHED: onboarding(datashare) - about positive tests -->
     <string name="onboarding_notifications_headline">Warnungen erhalten, Risiken erkennen</string>
     <!-- XHED: onboarding(datashare) - two/three line headline under an illustration -->
@@ -2667,6 +2684,9 @@ as modifying the License.
     <string name="submission_tan_body">Die TAN ist 7-stellig und Groß- und Kleinschreibung muss beachtet werden.\n\nGeben Sie bitte die Ihnen mitgeteilte TAN ein:</string>
     <!-- XBUT: Submit TAN button -->
     <string name="submission_tan_button_text">Weiter</string>
+    <!-- XACT: Submission Tan page title -->
+    <string name="submission_tan_accessibility_title">TAN Eingabe</string>
+
 
     <!-- Submission Intro -->
     <!-- XHED: Page title for menu at the start of the submission process  -->
@@ -2681,6 +2701,9 @@ as modifying the License.
     <string name="submission_intro_button_next">Weiter</string>
     <!-- XACT: Submission intro - illustration description, explanation image -->
     <string name="submission_intro_illustration_description">Ein positiver Testbefund wird verschlüsselt ins System übermittelt, das nun andere Nutzerinnen und Nutzer warnt.</string>
+    <!-- XACT: Submission Intro page title -->
+    <string name="submission_intro_accessibility_title">Wurden Sie getestet? So funktioniert das Corona-Warn-System</string>
+
 
     <!-- Notification -->
     <!-- XHED: Dialog headline for result dialog  -->
@@ -2712,6 +2735,8 @@ as modifying the License.
     <string name="submission_dispatcher_card_tan_tele">Noch keine TAN?</string>
     <!-- YTXT: Body text for TELE_TAN dispatcher option -->
     <string name="submission_dispatcher_tan_tele_card_text">Bitte rufen Sie uns an, falls Sie Positiv getestet wurden</string>
+    <!-- XACT: Dispatcher Tan page title -->
+    <string name="submission_dispatcher_accessibility_title">Welche Informationen liegen ihnen vor?</string>
 
     <!-- Submission Positive Other Warning -->
     <!-- XHED: Page title for the positive result additional warning page-->
@@ -2782,6 +2807,12 @@ as modifying the License.
     <!-- YTXT: Body text for operating hours in contact page-->
     <string name="submission_contact_operating_hours_body">Unsere Öffnungszeiten:\nMo - Fr: 08:00 - 22:00 Uhr\nSa - So: 10:00 - 22:00 Uhr\nEs gelten die Preise Ihres\nTelefonanbieters.</string>
 
+    <!-- XACT: Submission contact page title -->
+    <string name="submission_contact_accessibility_title">TAN Anfrage per Telefonanruf</string>
+    <!-- XACT: Content Description for submission contact step 1 -->
+    <string name="submission_contact_step_1_content">Im ersten Schritt Hotline anrufen und TAN erfragen, unter der Rufnummer 0800 7540002. Die Öffnungszeiten sind Montag bis Freitag von 8 bis 22 Uhr sowie Samstag und Sonntag von 10 bis 22 Uhr. Es gelten die Preise ihres Telefonanbieters.</string>
+    <!-- XACT: Content Description for submission contact step 2 -->
+    <string name="submission_contact_step_2_content">Im Zweiten Schritt registrieren Sie den Test per TAN-Eingabe in der App</string>
 
     <!-- Submission Status Card -->
     <!-- XHED: Page title for the various submission status: fetching -->
@@ -2845,6 +2876,19 @@ as modifying the License.
     <!-- XBUT: submission result dialog close button -->
     <string name="submission_result_button_dialog_close">OK</string>
 
+
+    <!-- ####################################
+          Button Tooltips for Accessibility
+    ###################################### -->
+    <!-- XACT: back button-->
+    <string name="button_back">Zurück zur vorherigen Seite</string>
+    <!-- XACT: proceed button-->
+    <string name="button_proceed">Fortfahren Button</string>
+    <!-- XACT: share button-->
+    <string name="button_share">Teilen</string>
+    <!-- XACT: menu button-->
+    <string name="button_menu">Menü</string>
+
     <!-- ####################################
                Generic Error Messages
         ###################################### -->
-- 
GitLab