我一直在电子书阅读器上测试一个HTML5 webapp,我得到它主要是工作,但颜色都搞砸了(它是单色的)。我的应用程序使用大量颜色,每秒更新一次。我也需要在彩色显示器上运行,所以我需要检测它是否是单色的。
我正在使用的电子阅读器由索尼制作,它报告screen.pixelDepth
和screen.colorDepth
为16,这与我支持的大多数其他设备不同(24和32是常见的)。
到目前为止,我的想法是:
navigator.appVersion
假设16位颜色=单色是否安全?还是有另外一种我可以忽视的技巧会更可靠吗?
答案 0 :(得分:2)
在计算中,“单色”通常是2位,16位显示通常称为灰度(尽管它可能是其他颜色的阴影)。
考虑使用调色板,其中颜色转换为适当的16位值而不是设备嗅探。你可以从web safe colour palette开始。
或者,如果用户认为看起来更好,则可以选择“使用灰度” - 您也可以找到其他用户选择该选项。如果您的颜色都是基于类的,您可以替换当前样式表或添加具有适当重新分配颜色的新样式表。
答案 1 :(得分:0)
我不熟悉如何检测灰度屏幕,但我希望一些色盲用户解决方案可能会给你帮助。
问题是你需要通过使用颜色传输信息,但屏幕(或色盲人的眼睛)从颜色中删除一些信息,这样用户就会感到困惑。解决方案是确保按颜色传输的信息不受屏幕或眼睛的影响,您也可以使用其他媒体而不是颜色。
色盲或灰度屏幕不会删除颜色中的所有信息。例如,如果颜色被描述为HSL(色调/饱和度/光),则灰度屏幕会移除色调和饱和度但保持亮度。如果您使用5种不同的颜色,只要它们具有5个不同的光值(例如0.1,0.3,0.5,0.7,0.9),用户在灰度屏幕中识别它们就不会有问题。
您还可以使用其他媒体传输按颜色传输的信息。例如,Adium for Mac使用形状和颜色来指示联系状态。在线用户为绿色矩形,距离为黄色三角形,忙碌为红色圆圈。这是色盲友好的,因为用户无论如何都可以通过识别形状来了解联系状态。