-
Notifications
You must be signed in to change notification settings - Fork 2.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[HOLD for payment 2024-03-26] [$500] [Hold for payment 2024-02-22] Web - Most of the flag icons are replaced by country codes #33653
Comments
👋 Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open `StagingDeployCash` deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:
|
Triggered auto assignment to @deetergp ( |
ProposalPlease re-state the problem that we are trying to solve in this issue.Flag icons are not accessible on windows. What is the root cause of that problem?We are encountering an issue where flag icons are not rendered correctly on Windows platforms within the application. This problem affects the accessibility and visual consistency of the UI. To address the root cause, let's delve into the process of how browsers handle fonts, particularly for rendering emojis. font-family: FontBetaX; The browser's rendering process is two-fold:
@font-face {
font-family: ExpensifyNeue-Regular;
src: url('../assets/fonts/web/FontBetaX.woff') format('woff');
}
In the context of our app, specifically for emojis, the font styling is defined as:const fontFamily: FontFamilyStyles = {
EXP_NEUE: 'ExpensifyNeue-Regular, Segoe UI Emoji, Noto Color Emoji',
}; and then we use it in styling of the components Line 220 in 85fee5a
On the browser, this translates to: font-family: ExpensifyNeue-Regular, "Windows Segoe UI Emoji", "Noto Color Emoji"; Here’s the process the browser follows:
In contrast, on Ubuntu, none of the fonts are supported by default, resulting in emojis not displaying correctly, as shown in the attached screenshot from Ubuntu. The core issue lies in our reliance on default system fonts for emoji rendering, which varies across platforms:
What changes do you think we should make in order to solve the problem?To resolve this on Windows, we should serve a universally compatible emoji font from our server. I suggest
font-family: ExpensifyNeue-Regular, "Noto Color Emoji"; What alternative solutions did you explore? (Optional)We observed that the Expensify app currently renders emojis differently across platforms, as demonstrated in the attached screenshot comparing Windows and Android emojis. An alternative approach would be to standardize the emoji style across all platforms, akin to platforms like Slack. This would enhance consistency in our user experience. |
@deetergp the issue is only on Windows |
I think this was expected, and its known that on windows the flag emojis are not working perfectly. it would be great to avoid any kind of workarounds if we want to fix this |
I think this can be closed. If this should be fixed, original contributors in #31717 should handle this as follow-up as they enabled this feature. |
its pass the regression period but I think they knew about it so maybe we can just tag @puneetlath @c3024 @s-alves10 |
Yes, my understanding is that the two letter codes is what windows renders for these emojis. It's not a workaround on our part. It's just what the system is doing and it's not a bug. Feel free to reopen/comment if you disagree. |
Below a screenshot from Slack web app (flags) and same for other web apps on windows. I think it's not good for UX and for the app to allow using emoji unicode with a font that does not support it. |
@dragnoir Can you give more details about the implementation, we are trying to avoid platform specific code, even more so operating system specific one |
@dragnoir can you share |
@aimane-chnaif link for the font: https://fonts.google.com/noto/specimen/Noto+Color+Emoji |
This was done by intention in #31717. We added supports for flags emojis on Windows and those are flag emojis(not country code) by the font |
Okay, if we need to fix this, yeah, the use of proper font is the right way, I think. |
The consensus is that nobody feels super passionate about it, but if it's an easy fix, then we should go ahead and fix it. |
Job added to Upwork: https://www.upwork.com/jobs/~01bb535f38757934f7 |
Current assignee @aimane-chnaif is eligible for the External assigner, not assigning anyone new. |
Payouts due:
Upwork job is here. |
Contracts sent! |
Sorry but I just realized we did this and correct me if I am wrong but:
Is that all correct? |
Yeah, just seeing this now and echoing the same concern as Ionatan above - I think we picked a bad solution for this and we should revert what was implemented. |
Yep. I think we should just revert this and leave the "broken" flag emojis on window. If people feel passionate that it should work, then we should make it only load for windows users AND reduce the size of the font (maybe by removing all emojis that are not flags?) |
@iwiznia another issue to consider is:
|
Yes, I know, windows users will use the flag icons that windows has, which apparently is just initials of the place. |
|
The solution for this issue has been 🚀 deployed to production 🚀 in version 1.4.54-4 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue:
If no regressions arise, payment will be issued on 2024-03-26. 🎊 For reference, here are some details about the assignees on this issue:
|
BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:
|
If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!
Version Number: 1.4.18.1
Reproducible in staging?: y
Reproducible in production?: n
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
Issue found when executing PR #33603
Action Performed:
Expected Result:
Actual flags should be added. Black ones should be replaced.
Actual Result:
Most of the flag icons are replaced by country codes. Some of them are just black.
Workaround:
Unknown
Platforms:
Which of our officially supported platforms is this issue occurring on?
Screenshots/Videos
Add any screenshot/video evidence
Bug6326895_1703696523699.bandicam_2023-12-27_17-41-01-308.mp4
View all open jobs on GitHub
Upwork Automation - Do Not Edit
The text was updated successfully, but these errors were encountered: