计算最接近colourblind友好的颜色?

Bob*_*tiz 6 php python algorithm accessibility colors

如何从HEX颜色代码(如#0a87af)或三个RGB值(0-255)计算最接近颜色的友好颜色.

我正在寻找一种有效的计算方法或者这样做,所以我可以用PHP或Python实现它,并且算法可以用于更好的网站访问colourblind人.

Zim*_*mmi 3

正如其他人在评论/答案中提到的那样,两种颜色之间的对比度非常重要。

W3 已经创建了一种定义颜色之间最小对比度的方法,以便通过不同级别的可访问性。

他们在此处提供了描述,计算公式位于同一页面的底部

contrast ratio = (L1 + 0.05) / (L2 + 0.05)
Run Code Online (Sandbox Code Playgroud)

对于这个看似简单的公式,您需要使用此处找到的其他公式来计算两种颜色的L1相对亮度:L2

L = 0.2126 * R + 0.7152 * G + 0.0722 * B where R, G and B are defined as:

if RsRGB <= 0.03928 then R = RsRGB/12.92 else R = ((RsRGB+0.055)/1.055) ^ 2.4

if GsRGB <= 0.03928 then G = GsRGB/12.92 else G = ((GsRGB+0.055)/1.055) ^ 2.4

if BsRGB <= 0.03928 then B = BsRGB/12.92 else B = ((BsRGB+0.055)/1.055) ^ 2.4
Run Code Online (Sandbox Code Playgroud)

RsRGB、GsRGB 和 BsRGB 定义为:

RsRGB = R8bit/255

GsRGB = G8bit/255

BsRGB = B8bit/255
Run Code Online (Sandbox Code Playgroud)

文本与背景之间的最小对比度对于 AA 级应为 4.5:1,对于 AAA 级应为 7:1。这仍然为创造精美的设计留下了空间。

Lea Verou有一个JS 实现示例。

这不会为您提供最接近您要求的颜色,因为在独特的背景上,会有多个前色给出相同的对比度结果,但这是计算对比度的标准方法。