-
-
Notifications
You must be signed in to change notification settings - Fork 391
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
Support additional fonts for accessibility #3288
Conversation
- Ensures that no licenses/libraries are missed
Provide two alternative fonts for use throughout the entire app. - Atkinson Hyperlegible, from the Braille Institute, claims to improve readability for low-vision users. - OpenDyslexic claims to improve readability for people with dyslexia. Both fonts are available under a permissive license that allows bundling with the app. Include the license information so it shows up in LicenseActivity. Add a preference to allow the user to switch between the fonts. The preference previews the font in the list so the user can see the difference.
Note: Stacked on top of #3287 |
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
The creator of OpenDyslexic is also on Mastodon, @abbie@better.boston. |
Notes from feedback from usersFrom responses to https://mastodon.social/@Tusky/110741534444074976 OpenDyslexia
Atkinson Hyperlegible
Other specific font suggestions
Suggestions to download arbitrary fonts
PlanFrom the discussion it looks like starting with:
makes sense. Full support for downloading arbitrary fonts can wait, as we would still need to distribute some fonts that are not on Google Fonts. |
# Conflicts: # app/build.gradle # app/src/main/java/com/keylesspalace/tusky/BaseActivity.java # app/src/main/java/com/keylesspalace/tusky/LicenseActivity.kt # app/src/main/java/com/keylesspalace/tusky/components/preference/PreferencesActivity.kt # app/src/main/java/com/keylesspalace/tusky/components/preference/PreferencesFragment.kt # app/src/main/res/values/string-arrays.xml # gradle/libs.versions.toml
# Conflicts: # app/build.gradle # app/src/main/java/com/keylesspalace/tusky/LicenseActivity.kt # gradle/libs.versions.toml
Haven't researched this, yet, but maybe you know: Why is this no system setting / feature? (Packaging fonts with your app sounds a bit like 20 years ago.) |
Some manufacturers do -- for example, you can change the font system-wide on some Samsung devices (https://www.howtogeek.com/726320/how-to-change-font-on-a-samsung-galaxy-phone/). But that's manufacturer specific, and not something in the base OS.
Yes. A future change could use the font download support in Android, but even with that, some of the fonts are not available through that route, so would need to be packaged as well. |
How about starting with the two most popular / requested and see how that is received and if more are requested? (The list seems a bit long and then only contains "1 normal and 6 specials"; specials with mostly unknown advantages.) |
(Small side-note: For all these fonts the character rendering seems to be more sub-optimal than with the standard font? For me - in the emulator - they all are rendered too low. In my screenshot the "Home" is not top-aligned with the avatar and the address is cut at the bottom. Maybe a fixable bug?) |
I started with two. Then I posted https://mastodon.social/@Tusky/110741534444074976 to get feedback, and reviewed the responses to determine which other ones to add. This is all explained in #3288 (comment) |
Baseline variation is to expected. I can reproduce the problem in your screenshot with Luciole, but not the others. I suspect that
in toolbar definition in |
Ensures that with different fonts the text still lines up
It was a tiny bit more involved than that. I also noticed that with Luciole different textviews can have different baselines depending on the text, so I've ensured that they layout and constrain to the baseline rather than the top or bottom of another view. |
# Conflicts: # app/src/main/res/values-cy/strings.xml # app/src/main/res/values-tr/strings.xml
# Conflicts: # app/build.gradle
Does this patch add twemoji or only the license for twemoji? We should keep in mind that twemoji appears to be an abandoned project, so it may not continue to receive new emoji in when unicode updates in future. |
It's only the license. That change is from #3287, which this PR is stacked on top of. |
Provide alternative fonts for use throughout the entire app, based on feedback from users.
All fonts are available under a permissive license that allows bundling with the app. Include the license information so it shows up in LicenseActivity.
Add a preference to allow the user to switch between the fonts. The preference previews the font in the list so the user can see the difference.