Add a "FontUserScaled" boolean property to XF controls with text such as Label, Button, Entry that selects between Android SP-like mode (true) and DiP-like mode (false) for font sizing. Currently on Android, Scaled Pixels are used, which are affected by user preference, and there is no way to choose DiP's which are consistent with iOS and much easier to achieve reliable layout.
1) Add FontUserScaled boolean property to Label, Button, Entry etc, wherever font sizes are specified eg. https://github.com/xamarin/Xamarin.Forms/search?utf8=✓&q=SetTextSize
On Android, this would switch between SP and DiP eg. for calls to SetTextSize. On iOS, it may have no effect, or some attempt could be made to emulate SP (not important)
2) With a FontUserScaled property today, there would be a typical choice to be made between future improvement vs breaking existing projects:
a) Backwards Compatible, platform inconsistent, beginner-unfriendly FontUserScaled=true
This is how XF works on Android now, but not iOS. This option would mean good XAML code would be littered with FontUserScaled="false" on most controls.
b) Breaking change, platform consistent, beginner-friendly FontUserScaled=false
I recommend b) It is still early in Xamarin's adoption lifetime. By default, apps would be built ignoring user font size preference, which is easier for beginners, but the developer could
Developers should not have to consider or test for user preference font size when learning Xamarin or beginning a project. As a later improvement, they should be able to enable FontUserScaled for particular controls where it makes sense and they have tested for the side effects across devices to accomodate users with poor eyesight.
On Android, Xamarin Forms uses "Scaled Pixels" for font sizes (see github search below). Android also offers "Device Independent Pixels". The difference is that with SP's, all your font sizes and therefore layout is at the mercy of the user font size preference. Text on buttons and labels wraps or is cropped, or the control resizes to accomodate, perhaps breaking other things. I bet the layout breaks on most XF apps when the user preference is set to "Extra Large" or "Huge" because of this, on top of all the other cross platform concerns.
See discussion here : https://forums.xamarin.com/discussion/comment/218238#Comment_218238
To use SP's properly, the developer must think in fluid layout terms for the whole layout. It makes sense for long text areas for users with poor eyesight, but this is generally a more advanced concern, than just getting the layout to work.
From my brief research, iOS has no equivalent to SP's (instead the app can look up the user preference and adjust font sizes in code). This creates an inconsistency between iOS and Android versions of an Xamarin Forms app.
Therefore, DiPs would have been a more reliable and cross-platform-consistent choice for Xamarin Forms in the beginning, but this can still be fixed now.