colors - 如何确保用户自定义颜色的评论仍然可读?

标签 colors accessibility customization color-scheme

我正在探索我前几天的想法。

如果我允许网站上的注册用户为他们的评论和帖子选择他们自己的颜色会怎样?这样他们的存在感和个性表现会更强,也更容易发现(并忽略/禁止)麻烦制造者(#000 背景上的#900 字符)。 ;)

我怎么能保证他们的帖子仍然可读?能否推荐相关算法?

我主要在寻找 JavaScript 和 PHP 解决方案,但其他方法也可能有用。

最佳答案

用于计算颜色感知亮度的非常好的公式。为了确保足够的对比度,请确保对比度值的差异高于某个阈值。

Calculating the Perceived Brightness of a Color

C# 中的示例(我知道最初的发帖人想要一个 JavaScript 解决方案——我目前对它不是很熟悉):

    bool ValidateContrast(Color foreColor, Color backColor)
    {
        double foreBrightness = CalcBrightness(foreColor), 
               backBrightness = CalcBrightness(backColor);
        double threshold = 70; // Just a value, test this.
        bool enoughContrast = Math.Abs(foreBrightness - backBrightness) > threshold;
        return enoughContrast;
    }

    private double CalcBrightness(Color color)
    {
        double r = color.R, g = color.G, b = color.B;
        double brightness = Math.Sqrt(.241 * r * r + .691 * g * g + .068 * b * b);
        return brightness;
    }

关于colors - 如何确保用户自定义颜色的评论仍然可读?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1980403/

相关文章:

tabs - 如何添加带有外部链接的自定义标签按钮?

Delphi 编辑器配色方案

algorithm - 后续: "Sorting" colors by distinctiveness

objective-c - 为什么 UIScrollview 在 Interface Builder 中没有辅助功能区域?

iphone - 导航栏的自定义背景图像 - 大小调整和后退按钮着色

android - 如何将 Activity 添加到选项卡?

string - Flutter/Dart:将字符串转换为颜色?

创建下拉+悬停菜单时的CSS字体颜色

android - Android 2.3(GB) 中的辅助功能服务无法识别辅助功能事件

html - CSS 模糊视频的性能和浏览器支持注意事项