一个好老好老的老程序员了。
全部博文(915)
分类: Android平台
2018-06-11 21:35:20
可访问性问题
EstimatedFontSize程序和FitToSizeClock程序都有一个细微的缺陷,但如果您是众多不能在移动设备上轻松阅读文本并使用该设备的辅助功能来制作文本的人之一,则问题可能并不那么细微。 文字较大。
在iOS上,运行设置应用程序,然后选择“常规”,“辅助功能”和“较大文本”。 然后,您可以使用滑块使屏幕上的文字变大或变小。 该页面指示仅在支持动态类型功能的iOS应用程序中调整文本,
在Android上,运行设置应用,然后选择显示然后选择字体大小。 您将看到四个单选按钮,用于选择Small,Normal(默认),Large或Huge。
在Windows 10移动设备上,运行设置应用,然后选择轻松访问,然后选择更多选项。 然后,您可以将标记为文本缩放的滑块从100%移动到200%。
以下是您将发现的内容:
iOS设置对Xamarin.Forms应用程序没有影响。
Android设置会影响从Device.GetNamedSize返回的值。 如果选择Normal以外的其他东西并再次运行FontSizes程序,则会看到对于NamedSize.Default参数,Device.GetNamedSize在设置为Normal(如前面的屏幕截图所示)时返回14,但返回12 设置为小号,16号为大号,18号为巨型号。
此外,Android屏幕上显示的所有文本都是不同的大小 - 即使对于恒定的FontSize值,也可以选择更小或更大的设置,以便根据您选择的设置进行设置。
在Windows 10 Mobile上,从Device.GetNamedSize返回的值不依赖于辅助功能设置,但所有文本都显示得较大。
这意味着EstimatedFontSize或FitToSizeClock程序无法在Anroid或Windows 10 Mobile上正常运行,并具有较大文本的可访问性设置。 部分文本被截断。
我们再来探讨一下。 AccessibilityTest程序在其页面上显示两个标签元素。 第一个具有20的常量FontSize,第二个仅在大小更改时显示第一个Label的大小:
public class AccessibilityTestPage : ContentPage { public AccessibilityTestPage() { Label testLabel = new Label { Text = "FontSize of 20" + Environment.NewLine + "20 characters across", FontSize = 20, HorizontalTextAlignment = TextAlignment.Center, HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.CenterAndExpand }; Label displayLabel = new Label { HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.CenterAndExpand }; testLabel.SizeChanged += (sender, args) => { displayLabel.Text = String.Format("{0:F0} \u00D7 {1:F0}", testLabel.Width, testLabel.Height); }; Content = new StackLayout { Children = { testLabel, displayLabel } }; } }
通常,第二个标签显示的尺寸与前面所述的假设大致一致:
但现在进入可访问性设置并将它们一路调高。 Android和Windows 10 Mobile均显示较大的文字:
前面描述的字符大小假设不再有效,这就是程序不适合文本的原因。
但是,还有一种方法可以将文字大小设置为矩形区域。