服务器之家:专注于服务器技术及软件下载分享
分类导航

服务器资讯|IT/互联网|云计算|区块链|软件资讯|操作系统|手机数码|百科知识|免费资源|头条新闻|

服务器之家 - 新闻资讯 - 软件资讯 - 谷歌 Chrome 新增开发者工具,帮助开发对色盲友好的页面

谷歌 Chrome 新增开发者工具,帮助开发对色盲友好的页面

2020-03-14 13:09开源中国 软件资讯

Chrome 开发者透露了正在开发中的一个可以帮助开发者使网站对色盲更加友好的 开发者工具 Color Vision Deficiency(CVD,色觉障碍/色盲)。 根据ColourBlindAwareness.org的说法,目前全球大约有3亿色盲人群。新的Chrome将通过DevTools在任何给定的

Chrome开发者透露了正在开发中的一个可以帮助开发者使网站对色盲更加友好的开发者工具Color Vision Deficiency(CVD,色觉障碍/色盲)。

谷歌 Chrome 新增开发者工具,帮助开发对色盲友好的页面

根据ColourBlindAwareness.org的说法,目前全球大约有3亿色盲人群。新的Chrome将通过DevTools在任何给定的网页上模拟全色盲、红色盲与绿色盲等色盲人群看到的样式。需要包括以下内容:

引入Chrome DevTools协议(CDP)API(Emulation#setEmulatedColorVisionDeficiency),以支持通过CDP以编程方式启用这些模拟。

引入新的Puppeteer API,以编程方式支持通过CDP进行这些模拟。

在DevTools colorpicker小部件中展开对比度检查器,以检查已知色盲之间的对比度问题。

向可访问性审核添加一个Lighthouse测试,以使用新功能,并检查每个模拟的对比级别。

长期而言,CVD理想情况下将在Blink Renderer级别获得一级支持,因此可以在不更改文档或不影响计算样式的情况下将过滤器应用于文档。以下是一个简单的示例,该示例使用GraphicsContext::SetColorFilter无条件添加过滤器:

  1. diff --git a/third_party/blink/renderer/platform/graphics/graphics_context.cc b/third_party/blink/renderer/platform/graphics/graphics_context.cc 
  2. index 7cbbd9656eff..d700d15a5cb4 100644 
  3. --- a/third_party/blink/renderer/platform/graphics/graphics_context.cc 
  4. +++ b/third_party/blink/renderer/platform/graphics/graphics_context.cc 
  5. @@ -113,6 +113,16 @@ GraphicsContext::GraphicsContext(PaintController& paint_controller, 
  6.    paint_state_stack_.push_back(std::make_unique<GraphicsContextState>()); 
  7.    paint_state_ = paint_state_stack_.back().get(); 
  8. +  // clang-format off 
  9. +  const float kAchromatopsiaColorMatrix[20] = { 
  10. +      0.299f, 0.587f, 0.114f, 0.000f, 0.000f, 
  11. +      0.299f, 0.587f, 0.114f, 0.000f, 0.000f, 
  12. +      0.299f, 0.587f, 0.114f, 0.000f, 0.000f, 
  13. +      0.000f, 0.000f, 0.000f, 1.000f, 0.000f, 
  14. +  }; 
  15. +  // clang-format on 
  16. +  paint_state_->SetColorFilter(SkColorFilters::Matrix(matrix)); 
  17.    if (ContextDisabled()) { 
  18.      DEFINE_STATIC_LOCAL(SkCanvas*, null_sk_canvas, 
  19.                          (SkMakeNullCanvas().release())); 

预计Chrome 82会加入该工具,不过目前可以使用Canary版本体验。

延伸 · 阅读

精彩推荐