[GH-ISSUE #4753] RTL text direction #50262

Open
opened 2026-05-01 12:15:39 -05:00 by GiteaMirror · 8 comments
Owner

Originally created by @codokie on GitHub (Feb 20, 2025).
Original GitHub issue: https://github.com/bitwarden/android/issues/4753

Steps To Reproduce

To reproduce the bug with a vault item:

  1. Change app language to a language with an RTL script such as Hebrew or Arabic, or enable "Force RTL layout direction" in Android's Developer Settings
  2. Open Bitwarden (and unlock vault)
  3. Create a new login vault item with the following details and save it:
  • Name: not applicable (just type something)
  • Username: _user
  • Password: pass*
  • URL: https://bitwarden.com/ (don't forget the ending slash)
  • Custom field (text): $custom-text@#
  1. Open the newly created vault item and examine its username, password, URL and custom field

To reproduce the bug with the password generator:

  1. Open the password generator
  2. Generate a password which ends or starts with a number or a special character
  3. Copy the generated password and compare it with the displayed password

Expected Result

The username, password, URL, and custom field of a vault item should appear exactly as they were typed.

The generated password that is displayed in the Password Generator should be identical to the copied password.

Actual Result

The details of the vault item appear as follows:

  • Username: user_
  • Password: *pass
  • URL: /https://bitwarden.com
  • Custom field (text): #@custom-text$

Notice that the special characters at the start and end of each field have been reversed (same thing happens with the Password Generator).

Additional Context

The bug most likely happens because the direction of text fields automatically follows the direction of the layout (RTL).

This behavior is unwanted because it causes confusion and error when copying a displayed field visually.

Most websites do not allow passwords or usernames to contain RTL scripts, and when such characters appear in a URL, they must be (percent) encoded. So there is no benefit to apply an RTL direction to such fields.

Note that the RTL text direction is desired in the notes field of a login vault item as well as in a secure note and in the various fields of an identity vault item, because they are more likely to be written from right-to-left. So the current behavior should remain unchanged for them.

Lastly, it should be noted that the password and text fields of a Send are also affected.

UPDATE: It seems that this issue is present in the master password input field as well!

Build Version

2025.1.2

Environment Details

  • OS Version: Android 14

Issue Tracking Info

  • I understand that work is tracked outside of Github. A PR will be linked to this issue should one be opened to address it, but Bitwarden doesn't use fields like "assigned", "milestone", or "project" to track progress.
Originally created by @codokie on GitHub (Feb 20, 2025). Original GitHub issue: https://github.com/bitwarden/android/issues/4753 ### Steps To Reproduce **To reproduce the bug with a vault item:** 1. Change app language to a language with an RTL script such as Hebrew or Arabic, or enable "Force RTL layout direction" in Android's Developer Settings 2. Open Bitwarden (and unlock vault) 3. Create a new login vault item with the following details and save it: * Name: not applicable (just type something) * Username: `_user` * Password: `pass*` * URL: `https://bitwarden.com/` _(don't forget the ending slash)_ * Custom field (text): `$custom-text@#` 4. Open the newly created vault item and examine its username, password, URL and custom field **To reproduce the bug with the password generator:** 1. Open the password generator 2. Generate a password which ends or starts with a number or a special character 3. Copy the generated password and compare it with the displayed password ### Expected Result The username, password, URL, and custom field of a vault item should appear exactly as they were typed. The generated password that is displayed in the Password Generator should be identical to the copied password. ### Actual Result The details of the vault item appear as follows: * Username: `user_` * Password: `*pass` * URL: `/https://bitwarden.com` * Custom field (text): `#@custom-text$` Notice that the special characters at the start and end of each field have been reversed (same thing happens with the Password Generator). ### Additional Context The bug most likely happens because the direction of text fields automatically follows the direction of the layout (RTL). This behavior is unwanted because it causes confusion and error when copying a displayed field visually. Most websites do not allow passwords or usernames to contain RTL scripts, and when such characters appear in a URL, they must be (percent) encoded. So there is no benefit to apply an RTL direction to such fields. Note that the RTL text direction is desired in the notes field of a login vault item as well as in a secure note and in the various fields of an identity vault item, because they are more likely to be written from right-to-left. So the current behavior should remain unchanged for them. Lastly, it should be noted that the password and text fields of a Send are also affected. **UPDATE:** It seems that this issue is present in the master password input field as well! ### Build Version 2025.1.2 ### Environment Details - OS Version: Android 14 ### Issue Tracking Info - [x] I understand that work is tracked outside of Github. A PR will be linked to this issue should one be opened to address it, but Bitwarden doesn't use fields like "assigned", "milestone", or "project" to track progress.
GiteaMirror added the bugapp:password-manager labels 2026-05-01 12:15:39 -05:00
Author
Owner

@bitwarden-bot commented on GitHub (Feb 20, 2025):

Thank you for your report! We've added this to our internal board for review.
ID: PM-18467

<!-- gh-comment-id:2671613657 --> @bitwarden-bot commented on GitHub (Feb 20, 2025): Thank you for your report! We've added this to our internal board for review. ID: PM-18467
Author
Owner

@codokie commented on GitHub (Apr 6, 2025):

Please take a look at my proposed fix for the same problem in KeePassDX: 750e1b6c43

I have not looked into the Bitwarden codebase but I believe it should be easy to adapt such a change.

I would have opened a PR myself if it was possible to set up Bitwarden in Android Studio without setting up a server as well.

<!-- gh-comment-id:2781336720 --> @codokie commented on GitHub (Apr 6, 2025): Please take a look at my proposed fix for the same problem in KeePassDX: https://github.com/Kunzisoft/KeePassDX/pull/2021/commits/750e1b6c43aa4173fec784569ba3d654acc6ef15 I have not looked into the Bitwarden codebase but I believe it should be easy to adapt such a change. I would have opened a PR myself if it was possible to set up Bitwarden in Android Studio without setting up a server as well.
Author
Owner

@SaintPatrck commented on GitHub (Apr 7, 2025):

Hi @codokie,
Are you receiving a specific error that is preventing you from opening and running the project from Android Studio? I ask because setting up a server is not required to run Bitwarden from Android Studio. As stated in the Setup section, the only requirement is having a GitHub token with package:read access defined in user.properties so that the Bitwarden SDK can be downloaded from GitHub's Maven Repo.

<!-- gh-comment-id:2783328422 --> @SaintPatrck commented on GitHub (Apr 7, 2025): Hi @codokie, Are you receiving a specific error that is preventing you from opening and running the project from Android Studio? I ask because setting up a server is not required to run Bitwarden from Android Studio. As stated in the [Setup](https://github.com/bitwarden/android?tab=readme-ov-file#setup) section, the only requirement is having a GitHub token with `package:read` access defined in `user.properties` so that the Bitwarden SDK can be downloaded from GitHub's Maven Repo.
Author
Owner

@codokie commented on GitHub (Apr 8, 2025):

@SaintPatrck There is no error but it asks me to log in to a Bitwarden account.

Is there a way to use the debug app without doing so? If not, I guess I could create a dummy account just for testing purposes..

Edit: There would also be a need to test the text direction of the OTP codes which is a Premium feature..

<!-- gh-comment-id:2786148163 --> @codokie commented on GitHub (Apr 8, 2025): @SaintPatrck There is no error but it asks me to log in to a Bitwarden account. Is there a way to use the debug app without doing so? If not, I guess I could create a dummy account just for testing purposes.. **Edit:** There would also be a need to test the text direction of the OTP codes which is a Premium feature..
Author
Owner

@SaintPatrck commented on GitHub (Apr 8, 2025):

No, an account is required. You can log into your regular account or create a new one if you're not comfortable using your regular account.

<!-- gh-comment-id:2786505288 --> @SaintPatrck commented on GitHub (Apr 8, 2025): No, an account is required. You can log into your regular account or create a new one if you're not comfortable using your regular account.
Author
Owner

@closebot-bw commented on GitHub (Feb 11, 2026):

⚠️ Stale Issue Notice

This issue has been automatically marked as stale due to inactivity. It will be closed in 2 weeks (February 25, 2026) if no further activity occurs.

If this issue is still relevant and you would like to keep it open, please:

  • Comment on this issue to show continued interest
  • Provide any additional information or updates
  • Confirm that the issue still exists in the latest version

Thank you for your contribution to this project! 🙏

<!-- gh-comment-id:3886601478 --> @closebot-bw commented on GitHub (Feb 11, 2026): ⚠️ **Stale Issue Notice** This issue has been automatically marked as stale due to inactivity. It will be closed in **2 weeks** (February 25, 2026) if no further activity occurs. If this issue is still relevant and you would like to keep it open, please: - Comment on this issue to show continued interest - Provide any additional information or updates - Confirm that the issue still exists in the latest version Thank you for your contribution to this project! 🙏
Author
Owner

@closebot-bw commented on GitHub (Feb 23, 2026):

🔔 Final Notice - Issue Will Be Closed Soon

This issue was previously marked as stale and will be automatically closed in 2 days (February 25, 2026) if no further activity occurs.

If you're still experiencing this issue or believe it should remain open, please comment below to prevent automatic closure.

We appreciate your understanding and contribution to keeping our issue tracker organized! 📋

<!-- gh-comment-id:3946976307 --> @closebot-bw commented on GitHub (Feb 23, 2026): 🔔 **Final Notice - Issue Will Be Closed Soon** This issue was previously marked as stale and will be automatically closed in **2 days** (February 25, 2026) if no further activity occurs. If you're still experiencing this issue or believe it should remain open, please comment below to prevent automatic closure. We appreciate your understanding and contribution to keeping our issue tracker organized! 📋
Author
Owner

@pamperer562580892423 commented on GitHub (Feb 24, 2026):

There's still also an open PR, so I would guess it's not resolved yet.

<!-- gh-comment-id:3948272418 --> @pamperer562580892423 commented on GitHub (Feb 24, 2026): There's still also an open PR, so I would guess it's not resolved yet.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/android#50262