Javascript 找到给定十六进制背景值的正确WCAG AA对比度颜色
我正在尝试为给定的背景色找到正确的匹配对比度颜色,该颜色将通过WCAG AA指南(文本小于14px) 我看到的算法是Javascript 找到给定十六进制背景值的正确WCAG AA对比度颜色,javascript,wcag2.0,Javascript,Wcag2.0,我正在尝试为给定的背景色找到正确的匹配对比度颜色,该颜色将通过WCAG AA指南(文本小于14px) 我看到的算法是 function getContrastYIQ(hexcolor){ var r = parseInt(hexcolor.substr(1,2),16); var g = parseInt(hexcolor.substr(3,2),16); var b = parseInt(hexcolor.substr(5,2),16); var yiq
function getContrastYIQ(hexcolor){
var r = parseInt(hexcolor.substr(1,2),16);
var g = parseInt(hexcolor.substr(3,2),16);
var b = parseInt(hexcolor.substr(5,2),16);
var yiq = ((r*299)+(g*587)+(b*114))/1000;
return (yiq >= 128) ? 'dark-color' : 'light-color'; }
参考:
但是,对于这些颜色,一些颜色,如#e8540a和#ff4249,当它不通过颜色对比度准则时,会返回浅色
JS中是否有另一个算法/函数可以用来返回有效的对比度颜色,从而通过这些准则
似乎有正确的算法在里面。。。但似乎找不到转换为JS的相关代码。有人有什么建议吗?您的算法与官方WCAG公式不匹配 您可以在以下页面上查看WCAG公式以获得对比度: 这要复杂得多 我不知道他们在哪里找到这个…初步概念 有几个概念需要澄清才能回答您的问题
#000080
)背景上,可以放置白色(#000000
)文本(对比度16.0),但也可以使用黄色(#ffff00
,对比度14.9)、粉色(#ffc0cb
,对比度10.4)等。参见以下示例:海军蓝上的白色
海军蓝上的黄色
海军蓝上的粉红色