Chrome開發者透露了正在開發中的一個可以幫助開發者使網站對色盲更加友好的開發者工具Color Vision Deficiency(CVD,色覺障礙/色盲)。
根據ColourBlindAwareness.org的說法,目前全球大約有3億色盲人群。新的Chrome將通過DevTools在任何給定的網頁上模擬全色盲、紅色盲與綠色盲等色盲人群看到的樣式。需要包括以下內容:
引入Chrome DevTools協議(CDP)API(Emulation#setEmulatedColorVisionDeficiency),以支持通過CDP以編程方式啟用這些模擬。
引入新的Puppeteer API,以編程方式支持通過CDP進行這些模擬。
在DevTools colorpicker小部件中展開對比度檢查器,以檢查已知色盲之間的對比度問題。
向可訪問性審核添加一個Lighthouse測試,以使用新功能,并檢查每個模擬的對比級別。
長期而言,CVD理想情況下將在Blink Renderer級別獲得一級支持,因此可以在不更改文檔或不影響計算樣式的情況下將過濾器應用于文檔。以下是一個簡單的示例,該示例使用GraphicsContext::SetColorFilter無條件添加過濾器:
diff--gita/third_party/blink/renderer/platform/graphics/graphics_context.ccb/third_party/blink/renderer/platform/graphics/graphics_context.cc
index7cbbd9656eff..d700d15a5cb4100644
---a/third_party/blink/renderer/platform/graphics/graphics_context.cc
+++b/third_party/blink/renderer/platform/graphics/graphics_context.cc
@@-113,6+113,16@@GraphicsContext::GraphicsContext(PaintController&paint_controller,
paint_state_stack_.push_back(std::make_unique
paint_state_=paint_state_stack_.back().get();
+//clang-formatoff
+constfloatkAchromatopsiaColorMatrix[20]={
+0.299f,0.587f,0.114f,0.000f,0.000f,
+0.299f,0.587f,0.114f,0.000f,0.000f,
+0.299f,0.587f,0.114f,0.000f,0.000f,
+0.000f,0.000f,0.000f,1.000f,0.000f,
+};
+//clang-formaton
+paint_state_->SetColorFilter(SkColorFilters::Matrix(matrix));
+
if(ContextDisabled()){
DEFINE_STATIC_LOCAL(SkCanvas*,null_sk_canvas,
(SkMakeNullCanvas().release()));
預計Chrome 82會加入該工具,不過目前可以使用Canary版本體驗。
責任編輯:Rex_07