From 772bed90fa8776300869192fa3a9871e19433d47 Mon Sep 17 00:00:00 2001 From: Philipp Crocoll Date: Mon, 12 Oct 2026 09:55:55 +0200 Subject: [PATCH 1/3] make password field accessible by talkback and add content descriptions --- src/keepass2android-app/PasswordActivity.cs | 3 +++ src/keepass2android-app/Resources/layout/password.xml | 5 +++-- src/keepass2android-app/Resources/values/strings.xml | 1 + 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/keepass2android-app/PasswordActivity.cs b/src/keepass2android-app/PasswordActivity.cs index a4d129a32..5c314bcf4 100644 --- a/src/keepass2android-app/PasswordActivity.cs +++ b/src/keepass2android-app/PasswordActivity.cs @@ -1601,6 +1601,9 @@ private void MakePasswordMaskedOrVisible() password.InputType = InputTypes.ClassText | InputTypes.TextVariationPassword; } password.SetSelection(selStart, selEnd); + var toggleButton = FindViewById(Resource.Id.toggle_password); + if (toggleButton != null) + toggleButton.ContentDescription = GetString(_showPassword ? Resource.String.hide_password : Resource.String.show_password); } protected override void OnPause() diff --git a/src/keepass2android-app/Resources/layout/password.xml b/src/keepass2android-app/Resources/layout/password.xml index 8a06ca267..02124d949 100644 --- a/src/keepass2android-app/Resources/layout/password.xml +++ b/src/keepass2android-app/Resources/layout/password.xml @@ -137,8 +137,7 @@ android:inputType="textPassword" android:layout_weight="1" android:fontFamily="sans-serif" - android:hint="@string/hint_login_pass" - android:importantForAccessibility="no"/> + android:hint="@string/hint_login_pass" /> diff --git a/src/keepass2android-app/Resources/values/strings.xml b/src/keepass2android-app/Resources/values/strings.xml index 25467a0d7..003488d21 100644 --- a/src/keepass2android-app/Resources/values/strings.xml +++ b/src/keepass2android-app/Resources/values/strings.xml @@ -259,6 +259,7 @@ Space Search Show password + Hide password Sort by... Sort by name Sort by creation date From 6148d8f5444934327c48989c9294a67c499db4d3 Mon Sep 17 00:00:00 2001 From: Philipp Crocoll Date: Mon, 12 Oct 2026 10:38:59 +0200 Subject: [PATCH 2/3] Changes to improve accessibility/talkback: remove importantForAccessibility=no on password fields, add content descriptions for more elements --- .../Resources/layout/ListViewPluginRow.xml | 2 +- .../Resources/layout/QuickUnlock.xml | 7 ++-- .../Resources/layout/about.xml | 6 +-- .../layout/autofill_service_list_item.xml | 2 +- .../Resources/layout/child_db_config_row.xml | 3 +- .../Resources/layout/create_database.xml | 10 ++--- .../Resources/layout/donate.xml | 2 +- .../Resources/layout/donate_bday.xml | 2 +- .../Resources/layout/donate_bdaymissed.xml | 2 +- .../Resources/layout/entry_edit.xml | 13 +++--- .../layout/entry_edit_section_file.xml | 4 +- .../layout/entry_extrastring_value.xml | 3 +- .../Resources/layout/entry_list_entry.xml | 8 ++-- .../Resources/layout/entry_view.xml | 2 +- .../Resources/layout/entry_view_contents.xml | 40 +++++++++---------- .../Resources/layout/file_selection.xml | 2 +- .../layout/file_selection_filename.xml | 2 +- .../Resources/layout/fingerprint_setup.xml | 2 +- .../Resources/layout/ftpcredentials.xml | 3 +- .../Resources/layout/generate_password.xml | 4 +- .../Resources/layout/group.xml | 8 ++-- .../Resources/layout/group_edit.xml | 2 +- .../Resources/layout/group_list_entry.xml | 8 ++-- .../layout/image_list_preference_row.xml | 1 + .../Resources/layout/megacredentials.xml | 3 +- .../Resources/layout/owncloudcredentials.xml | 3 +- .../Resources/layout/password.xml | 6 +-- .../Resources/layout/plugin_details.xml | 2 +- .../Resources/layout/search.xml | 2 +- .../Resources/layout/sftpcredentials.xml | 3 +- .../Resources/values/strings.xml | 3 ++ 31 files changed, 75 insertions(+), 85 deletions(-) diff --git a/src/keepass2android-app/Resources/layout/ListViewPluginRow.xml b/src/keepass2android-app/Resources/layout/ListViewPluginRow.xml index 159c425ca..ac5ac1a94 100644 --- a/src/keepass2android-app/Resources/layout/ListViewPluginRow.xml +++ b/src/keepass2android-app/Resources/layout/ListViewPluginRow.xml @@ -10,7 +10,7 @@ android:layout_alignParentTop="true" android:layout_marginRight="15dp" android:layout_marginTop="5dp" - android:layout_marginBottom="5dp" /> + android:layout_marginBottom="5dp" android:importantForAccessibility="no"/> android:layout_height="match_parent" android:scaleType="centerCrop" android:src="@drawable/toolbar_bg_quickunlock" - app:layout_collapseMode="parallax" /> + app:layout_collapseMode="parallax" android:importantForAccessibility="no"/> + android:focusableInTouchMode="true" /> + android:background="?android:selectableItemBackground" android:contentDescription="@string/fingerprint_prefs"/> diff --git a/src/keepass2android-app/Resources/layout/about.xml b/src/keepass2android-app/Resources/layout/about.xml index f529841f7..815797b8e 100644 --- a/src/keepass2android-app/Resources/layout/about.xml +++ b/src/keepass2android-app/Resources/layout/about.xml @@ -22,7 +22,7 @@ android:layout_height="wrap_content" android:layout_below="@id/about_title" android:scaleType="fitXY" - android:src="@android:drawable/divider_horizontal_dark" /> + android:src="@android:drawable/divider_horizontal_dark" android:importantForAccessibility="no"/> + android:src="@android:drawable/divider_horizontal_dark" android:importantForAccessibility="no"/> + android:src="@android:drawable/divider_horizontal_dark" android:importantForAccessibility="no"/> + android:src="@drawable/ic_launcher" android:importantForAccessibility="no"/> \ No newline at end of file diff --git a/src/keepass2android-app/Resources/layout/child_db_config_row.xml b/src/keepass2android-app/Resources/layout/child_db_config_row.xml index 2e2ad24cc..9530ce5ca 100644 --- a/src/keepass2android-app/Resources/layout/child_db_config_row.xml +++ b/src/keepass2android-app/Resources/layout/child_db_config_row.xml @@ -22,8 +22,7 @@ android:layout_centerVertical="true" android:paddingBottom="4sp" - android:paddingTop="4sp" - /> + android:paddingTop="4sp" android:importantForAccessibility="no"/> android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_storage_file" - android:padding="5dp" - - /> + android:padding="5dp" android:importantForAccessibility="no"/> android:hint="@string/hint_pass" android:inputType="textPassword" android:singleLine="true" - android:typeface="monospace" - android:importantForAccessibility="no" /> + android:typeface="monospace" /> android:hint="@string/hint_conf_pass" android:inputType="textPassword" android:singleLine="true" - android:typeface="monospace" - android:importantForAccessibility="no"/> + android:typeface="monospace" /> diff --git a/src/keepass2android-app/Resources/layout/donate.xml b/src/keepass2android-app/Resources/layout/donate.xml index 78d29fac2..51342c48f 100644 --- a/src/keepass2android-app/Resources/layout/donate.xml +++ b/src/keepass2android-app/Resources/layout/donate.xml @@ -24,7 +24,7 @@ android:layout_below="@id/donate_question" android:adjustViewBounds="true" android:scaleType="fitCenter" - android:src="@drawable/oktoberfest" /> + android:src="@drawable/oktoberfest" android:importantForAccessibility="no"/>