From 121c1528ae4666b514f3d15d72ebdf36c999663d Mon Sep 17 00:00:00 2001 From: 0xd9a <0xd9a@noreply.codeberg.org> Date: Sat, 19 Jul 2025 19:05:17 +0530 Subject: [PATCH] Improve accessibility in media activity (#443) --- .../fedilab/android/mastodon/activities/MediaActivity.java | 5 +++++ .../android/mastodon/ui/fragment/media/FragmentMedia.java | 1 + .../res/layouts/mastodon/layout/activity_media_pager.xml | 2 ++ app/src/main/res/values/strings.xml | 1 + 4 files changed, 9 insertions(+) diff --git a/app/src/main/java/app/fedilab/android/mastodon/activities/MediaActivity.java b/app/src/main/java/app/fedilab/android/mastodon/activities/MediaActivity.java index a705dbf5..fb1e5040 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/activities/MediaActivity.java +++ b/app/src/main/java/app/fedilab/android/mastodon/activities/MediaActivity.java @@ -197,6 +197,7 @@ public class MediaActivity extends BaseBarActivity implements OnDownloadInterfac if (translated != null) { attachments.get(mediaPosition - 1).translation = translated; binding.mediaDescriptionTranslated.setText(translated); + binding.mediaDescriptionTranslated.setContentDescription(getString(R.string.cd_translated_media_description, translated)); binding.mediaDescriptionTranslated.setVisibility(View.VISIBLE); binding.mediaDescription.setVisibility(View.GONE); if (mCurrentFragment != null) { @@ -214,6 +215,7 @@ public class MediaActivity extends BaseBarActivity implements OnDownloadInterfac mCurrentFragment.toggleController(false); } binding.mediaDescriptionTranslated.setText(attachments.get(mediaPosition - 1).translation); + binding.mediaDescriptionTranslated.setContentDescription(getString(R.string.cd_translated_media_description, attachments.get(mediaPosition - 1).translation)); binding.mediaDescriptionTranslated.setVisibility(View.VISIBLE); } else { binding.mediaDescription.setVisibility(View.VISIBLE); @@ -250,6 +252,7 @@ public class MediaActivity extends BaseBarActivity implements OnDownloadInterfac if (translated != null) { attachments.get(position).translation = translated; binding.mediaDescriptionTranslated.setText(translated); + binding.mediaDescriptionTranslated.setContentDescription(getString(R.string.cd_translated_media_description, translated)); binding.mediaDescriptionTranslated.setVisibility(View.VISIBLE); binding.mediaDescription.setVisibility(View.GONE); if (mCurrentFragment != null) { @@ -268,6 +271,7 @@ public class MediaActivity extends BaseBarActivity implements OnDownloadInterfac mCurrentFragment.toggleController(false); } binding.mediaDescriptionTranslated.setText(attachments.get(position).translation); + binding.mediaDescriptionTranslated.setContentDescription(getString(R.string.cd_translated_media_description, attachments.get(position).translation)); binding.mediaDescriptionTranslated.setVisibility(View.VISIBLE); } else { binding.mediaDescription.setVisibility(View.VISIBLE); @@ -437,6 +441,7 @@ public class MediaActivity extends BaseBarActivity implements OnDownloadInterfac if (attachments.get(binding.mediaViewpager.getCurrentItem()).translation != null) { binding.mediaDescription.setVisibility(View.GONE); binding.mediaDescriptionTranslated.setText(attachments.get(binding.mediaViewpager.getCurrentItem()).translation); + binding.mediaDescriptionTranslated.setContentDescription(getString(R.string.cd_translated_media_description, attachments.get(binding.mediaViewpager.getCurrentItem()).translation)); binding.mediaDescriptionTranslated.setVisibility(View.VISIBLE); } else { binding.mediaDescription.setVisibility(View.VISIBLE); diff --git a/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/media/FragmentMedia.java b/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/media/FragmentMedia.java index ef0b5a3f..8170e881 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/media/FragmentMedia.java +++ b/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/media/FragmentMedia.java @@ -124,6 +124,7 @@ public class FragmentMedia extends Fragment { enableSliding(true); } }); + binding.mediaPicture.setContentDescription(attachment.description); binding.mediaPicture.setOnClickListener(v -> { if (isAdded()) { ((MediaActivity) requireActivity()).toogleFullScreen(); diff --git a/app/src/main/res/layouts/mastodon/layout/activity_media_pager.xml b/app/src/main/res/layouts/mastodon/layout/activity_media_pager.xml index 2cf7620e..f983ab9d 100644 --- a/app/src/main/res/layouts/mastodon/layout/activity_media_pager.xml +++ b/app/src/main/res/layouts/mastodon/layout/activity_media_pager.xml @@ -29,6 +29,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" app:layout_constraintBottom_toBottomOf="parent" + android:importantForAccessibility="no" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> @@ -50,6 +51,7 @@ android:paddingTop="10dp" android:paddingBottom="10dp" android:paddingEnd="10dp" + android:importantForAccessibility="no" android:layout_width="match_parent" android:layout_height="0dp" android:maxHeight="300dp" diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 119a415b..f01b8d96 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -77,6 +77,7 @@ Open profile page Switch to %s + Translated media description: %s No message to display