OT: Type on Background - Contrast Ratios
Peter M. Brigham
pmbrig at gmail.com
Thu Oct 6 20:58:42 EDT 2016
But isn’t there something more fundamentally wrong with this measure, with the criteria outlined by Sannyasin:
> * Small text should have a contrast ratio of at least 4.5:1 against its background. A ratio of 7:1 is preferred.
> * Large text (at 14 pt bold/18 pt regular and up) should have a contrast ratio of at least 3:1 against its background.
If you’re comparing something with black, it’s very easy to get a high luminance ratio but text will still be unreadable. Try setting a field’s forecolor to 5,5,5 and the backcolor to 45,45,45. The luminance ratio is 8.27, but you can’t read the text at all.
— Peter
Peter M. Brigham
pmbrig at gmail.com
> On Oct 6, 2016, at 5:34 PM, hh <hh at hyperhh.de> wrote:
>
>> Jacqueline L.G. wrote:
>> Does this work well enough?:
>>
>> function luminanceRatio c1,c2 -- pass two RGB triplets
>> put calcLuminance(c1) into tL1
>> put calcLuminance(c2) into tL2
>> return max(tL1,tL2) / min(tL1,tL2)
>> end luminanceRatio
>>
>> function calcLuminance pRGB
>> -- wikipedia: Y = 0.2126 R + 0.7152 G + 0.0722 B
>> put item 1 of pRGB * 0.2126 into tR
>> put item 2 of pRGB * 0.7152 into tG
>> put item 3 of pRGB * 0.0722 into tB
>> return sum(tR,tG,tB)
>> # if sum(tR,tG,tB) > 125 then return "black"
>> # else return "white"
>> end calcLuminance
>
> In case black is also an option as color then the following
> ratio, known as contrast ratio, avoids dividing by zero:
>
> function contrastRatio c1,c2 -- pass two RGB triplets
> put calcLuminance(c1) into tL1
> put calcLuminance(c2) into tL2
> return (0.05 + max(tL1,tL2)) / (0.05 + min(tL1,tL2))
> end contrastRatio
>
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
More information about the use-livecode
mailing list