GTFTextAccessibility
GTFTextAccessibility 帮助选择满足 W3C 无障碍标准的文本颜色。
文本无障碍性
为最广泛的用户创建的应用应确保用户可以阅读在任何背景上呈现的文本。虽然文本的可读性取决于许多因素,但一个好的开始是提供足够的 对比度,即前景文本颜色和其背景颜色之间的对比度。两种颜色的对比度是衡量两种颜色亮度差异的一个度量。例如,深灰色上的白色可能有 9:1 的对比度,而中灰色上的白色可能只有 4:1 的对比度。一般来说,较大的对比度更好,可以确保最大范围的用户可以轻松阅读您应用中的文本。
W3C 的 Web 内容无障碍指南 包含有关文本对比度的两个建议
- 最小对比度:文本应具有至少 4.5:1 的对比度,除非是“大号”文本,其对比度可以是 3:1。
- 增强对比度:文本应具有至少 7:1 的对比度,除非是“大号”文本,其对比度可以是 4.5:1。
"大号"文本通常定义为在正常字体中至少 18pt,或在粗体字体中至少 14pt。有关更多信息(包括一些重要的例外情况),请参阅 指南。
计算对比度
计算可接受的对比度需要考虑前景色、背景色、文本大小以及前景色(如有)的透明度。GTFTextAccessibility提供了一种方便的方式来访问这些颜色,它可以自动提供可接受的对比度。
对于返回UIColor的方法,颜色与其alpha值一起保证了能达到W3C推荐的最低对比度比率。返回的alpha值可能大于请求的alpha值,以确保可接受的对比度,即返回的颜色可能比请求的更不透明,以确保文本的可读性。
图像上的可读文本
在任意图像上清晰显示文本很困难,因为图像内容可能与文本冲突。具有平滑渐变或模糊区域的图像更有可能生成可读文本;具有许多细节和高对比度的图像则不太可能出现可读文本。
GTFTextAccessibility提供了一些方法,试图选择一种在特定图像上显示文本的良好颜色,但结果的质量将取决于图像的内容。如果不知道图像的内容(例如,当图像由用户提供时),请考虑在图像和文本之间使用半透明垫片以增加对比度。
使用方法
基本使用
最简单的使用方法是选择白色或黑色文本,不考虑字体。
label.textColor = [GTFTextAccessibility textColorOnBackgroundColor:label.backgroundColor
textAlpha:1
font:nil];
许多用户界面设计标准都使用不完全不透明的文本颜色。然而,透明文本可能会降低可读性,因此您可以请求尽可能接近特定alpha值的颜色,同时保持可读性。
label.textColor = [GTFTextAccessibility textColorOnBackgroundColor:label.backgroundColor
targetTextAlpha:0.85
font:nil];
鉴于W3C为“正常”和“大”文本推荐不同的对比度比率,包括字体可以在适当的情况下使文本颜色更接近您的目标alpha值。
label.textColor = [GTFTextAccessibility textColorOnBackgroundColor:label.backgroundColor
textAlpha:0.85
font:label.font];
高级使用
对于需要从除白色和黑色之外的另一组颜色中进行选择等更高级的使用情况,请参阅GTFTextAccessibility的textColorFromChoices:onBackgroundColor:options:
。
作者
liuxc123, [email protected]
许可协议
GTFTextAccessibility在MIT许可证下可用。有关更多信息,请参阅LICENSE文件。