Below are two functions on base of the ones mentioned in the W3C's Accessibility Recommendations. They work fine here for me.
To test these, I made a stack for the Raspi collection in the forum. This stack contains also a _simple_ algorithm for _trying_ to get a textColor on base of the current textColor (the current backColor is fixed) such that a contrast ratio of at least 7 is reached. Works for giving an "advice" in most cases I tried. The algorithm may easily be improved (for example by giving the change of color channels different weights, adaptive, on base of input). -- usage example on mouseUp lock screen; lock messages put the backColor of fld "Text" into bC put the backColor of fld "Text" into fC put relativeLuminance(bC) into bL put relativeLuminance(fC) into fL put contrastRatio(bL,fL) into contrastBF put "Contrast Ratio: " & round(contrastBF,2) into fld "contrastRatio" unlock screen; unlock messages end mouseUp -- param RGB is of the form "r,g,b" where each -- item r,g,b is an integer in range 0-255 function relativeLuminance RGB put 0 into tLuminance put "0.2126,0.7152,0.0722" into tWeights repeat with i=1 to 3 put item i of RGB into ci put ci/255 into cc if cc <= 0.03928 then put cc/12.92 into ri else put ((cc+0.055)/1.055)^2.4 into ri end if add (item i of tWeights*ri) to tLuminance end repeat return tLuminance end relativeLuminance -- computes ratio of lighter against darker r.L. function contrastRatio lu1,lu2 if lu1 > lu2 then -- lu2 is darker return (lu1 + 0.05) / (lu2 + 0.05) else return (lu2 + 0.05) / (lu1 + 0.05) end contrastRatio _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode