MDFTextAccessibility 协助选择满足 W3C 标准《可访问性》的文本颜色。
文本可访问性
为了覆盖最广泛的用户范围,应确保用户可以读取在任何背景上显示的文本。虽然文本的可读性取决于许多因素,但一个好的开始是提供一个足够大的 对比度 之间的前景文本颜色和它们的后景颜色。两种颜色的对比度是两个颜色的亮度差异的衡量。例如,黑色背景上的白色可能有 9:1 的对比度比,而白色背景上的中等灰色可能只有 4:1 的对比度比。一般来说,更大的对比度比更好,并将确保最广泛的用户可以轻松读取您的应用程序中的文本。
W3C 的 Web 内容可访问性指南 包含关于文本对比度的两个建议
- 最小对比度:文本的对比度比应至少为 4.5:1,除非是“大号”文本,其对比度比可以为 3:1。
- 增强对比度:文本的对比度比应至少为 7:1,除非是“大号”文本,其对比度比可以为 4.5:1。
"大号"文本的标准定义是正常字体样式中至少 18pt 或加粗字体样式中至少 14pt。有关更多信息(包括一些重要的异常),请参阅 指南。
计算对比度比率
计算可接受的对比度比率涉及到前景颜色、背景颜色、文字大小,以及如果有,前景颜色的透明度。MDFTextAccessibility提供了方便的方法来访问将自动给出可接受对比度比率的颜色。
对于返回UIColor的方法,颜色及其alpha值保证提供符合W3C推荐的最低对比度比率的对比度。返回的alpha值可能大于请求的alpha值,以确保可接受的对比度,也就是说,返回的颜色可能比请求的更不透明,以确保文本保持可读。
在图像上显示可读文本
因为在任意图像上显示可读的文本是有难度的,因为图像内容可能与文本冲突。具有平滑渐变或模糊区域的图像可能导致更可读的文本;具有许多细节和高对比度的图像不太可能导致可读的文本。
MDFTextAccessibility提供了尝试选择特别图像上显示文本的良好颜色的方法,但结果质量将取决于图像内容。如果不知道图像内容(例如,当用户提供的图像时),则考虑使用图像和文本之间的半透明隔离层来提高对比度。
使用方法
基本使用
最简单的使用方法是根据背景颜色选择黑色或白色文本,不考虑字体。
label.textColor = [MDFTextAccessibility textColorOnBackgroundColor:label.backgroundColor
textAlpha:1
font:nil];
许多用户界面设计标准使用不是完全不透明的文本颜色。然而,透明文本可能会降低可读性,因此您可以请求尽可能接近特定alpha值的颜色,同时仍然保持可读。
label.textColor = [MDFTextAccessibility textColorOnBackgroundColor:label.backgroundColor
targetTextAlpha:0.85
font:nil];
由于W3C建议为“正常”和“大号”文本推荐不同的对比度比例,包括字体可以使文本颜色在适当的时候更接近您的目标透明度
label.textColor = [MDFTextAccessibility textColorOnBackgroundColor:label.backgroundColor
textAlpha:0.85
font:label.font];
高级用法
对于更高级的用法,例如从除白色和黑色之外的颜色集中选择,请参阅MDFTextAccessibility的textColorFromChoices:onBackgroundColor:options:
。
许可证
MDFTextAccessiblity是基于Apache许可证版本2.0授权的。