问题标签 [high-contrast]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
945 浏览

javascript - 如何在 JavaScript / CSS 中检测 MAC OS 反色模式?

如果操作系统处于高对比度模式,我想做一些额外的对比度工作。在 Windows 中,我们可以使用媒体查询,例如

这将通过媒体查询检测到这一点,我们可以从那里扩展功能。如果我们在 Mac OS 中没有这样的媒体查询,也许有一个 JS 替代方案?或者它是否会在如此低的水平上反转颜色,以至于我们根本无法真正看到它?

0 投票
3 回答
4042 浏览

javascript - 在 Chrome 浏览器中检测高对比度扩展程序的使用

我试图让我的网站以高对比度模式访问。为了检测何时启用高对比度模式,我创建了一个 JavaScript 方法来检测背景图像是否被禁用,因为高对比度模式会禁用背景图像。然后,如果浏览器处于高对比度模式,我会附加一个 CSS 文件来修复高对比度显示。这在 Firefox、Edge 和 IE 中运行良好,但 Chrome 使用自己的扩展程序来创建高对比度,并且它不会禁用背景图像,因此在 Chrome 中没有附加用于高对比度的 CSS。

通过搜索,我发现 Chrome 在网站上添加了一个过滤器,而不是启用/禁用/更改网站颜色或图像本身。我已经搜索和搜索,但我找不到任何可以测试的东西来检查 Chrome 是否使用高对比度模式。如果有一种方法可以检测正在使用哪些扩展也可以解决问题,但我也无法找到一种方法来做到这一点。

我的代码实际上运行良好,我只需要能够检测 Chrome 中的高对比度模式。这是我用来检查高对比度模式的方法。

0 投票
1 回答
208 浏览

c++ - 切换高对比度模式时,CMFCMenuButton 无法正确重新绘制

在我CMFCMenuButton使用 MSVC 2013 的 C++ MFC 项目中。

当我切换高对比度模式时,按钮未正确重绘(为了比较,显示正常按钮):

切换高对比度模式后 CMFCMenuButton 的重绘损坏

调用Invalidate()ShowWindow(SW_HIDE);ShowWindow(SW_SHOW);似乎没有效果 - 即使最小化对话框也不会导致正确的重绘。如何强制按钮使用更新的系统颜色重新绘制?

更新:在切换对比度模式后强制颜色只会使按钮文本可见,但按钮本身,即边框,不可见。

0 投票
0 回答
302 浏览

css - 高对比度的可访问 d3 文本

我有一个使用 d3 创建的简单圆环图。我的代码非常简单,我在圆环图中使用<text>element 添加了一个文本。与此处的示例类似,但要简单得多。

一切正常,但是当我在 Windows 高对比度模式(alt + 左移 + 打印屏幕)下测试时,这个文本没有出现。如果我将文本更改为黄色,则会以高对比度显示。但是,对于普通用户,我需要它是黑色的。

到目前为止我尝试了什么:1)我尝试使用此处建议的@media 查询检测高对比度模式,并仅在高对比度模式下将填充颜色更改为黄色,但似乎 FF 对此有一个错误。2)从这个链接,他们建议将颜色/边框设置为透明。还是没有运气。

以前有人遇到过这个问题吗?你做了什么让这个可以访问?我试图以高对比度打开 NVD3(使用 D3)示例页面,看起来他们的文本元素也有问题。

普通模式下的饼图: 正常模式

高对比度模式下的饼图(文字不显示): 在此处输入图像描述

0 投票
5 回答
18898 浏览

visual-studio - Visual Studio 2017 将其配置存储在哪里?

在 VS 2015 及更早版本中,设置存储在注册表中,例如HKEY_CURRENT_USER\SOFTWARE\Microsoft\VisualStudio\14.0_Config. 根据这篇文章,在 VS 2017 中,为了支持多个 VS 实例,设置已从注册表中移出。

根据这个 SO answer ,我之前一直在编辑注册表以在 Windows 处于高对比度模式时强制使用深色主题。现在我想在 VS 2017 中做同样的事情,但找不到设置的存储位置,以进行此更改。

Visual Studio 2017 的这些设置存储在哪里?

0 投票
0 回答
636 浏览

css - 边缘浏览器:高对比度可访问性:文本背景与 div 背景不同

我正在研究高对比度的可访问性。我在这里面临一个奇怪的问题。在正常模式下,文本与父级的背景色(例如 DIV)采用相同的背景色,但在高对比度模式下,尽管父级的背景色不同,但文本背景变为黑色。

这是JSFIDDLE

CSS

HTML

高对比度快捷键:Shift+ Alt+PrtScrn

问题: 在此处输入图像描述

预期结果:

在此处输入图像描述

注意:这在 IE 中运行良好。这只是 Edge 浏览器的问题(Microsoft EdgeHTML 14.14393 和 Microsoft Edge 38.14393.0.0)

0 投票
1 回答
903 浏览

css - Preventing high-contrast mode in Edge from adding background to text

I'm working to adjust some components so that they all function and look good in high-contrast mode. Edge seems to be adding a black background under all text that IE11 does not add. I can't seem to find a way to target this background in CSS, or any other way to normalize the behavior between the two browsers.

For example, let's say I have the following:

And let's say I assigned background-color: cyan; and color: black; to the .SelectedText div.

In this scenario, IE11 renders it as expected with the div and text having the assigned colors. However, in Edge the div background and text are given the right colors, but the text itself gets a black background drawn behind it, making it unreadable black on black text.

The following image illustrates this problem occurring in the context of menu items with with basically the same markup described above.

enter image description here

Is there any way to disable or target this extra background that Edge adds?

0 投票
2 回答
3444 浏览

sql - 如何将 SQL Management Studio 2017 与深色主题与 Windows 10 高对比度主题一起使用?

我已按照本指南在 VS2017 中使用高对比度 Windows 主题启用深色主题:如何将 Visual Studio 2012 深色主题与 Windows 8 高对比度主题一起使用?

效果很好。

现在我正在尝试使用 SQL Mangement Studio 2017。

我在 C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\ManagementStudio\ssms.pkgundef 中启用了深色主题

但它似乎被 Windows 的高对比度主题所推翻: https ://i.stack.imgur.com/KBGE2.png

我一直在 RegEdit 中挖掘,并在以下位置找到了 Sql Studio 的主题:

HKEY_CURRENT_USER\SOFTWARE\Microsoft\SQL Server Management Studio\14.0_Config\Themes

https://i.stack.imgur.com/51MhW.png

有4个主题。

a5c004b4-2d4b-494e-bf01-45fc492522c7 是高对比度主题,它被锁定

我试过以下没有运气:

  • 删除 a5c004b4-2d4b-494e-bf01-45fc492522c7 -> 它只是在 sql mangement studio 启动时再次创建
  • 将 a5c004b4-2d4b-494e-bf01-45fc492522c7 的内容替换为深色主题: 1ded0138-47ce-435e-84ef-9ec1f439b749 -> 一旦程序启动,它就会被覆盖

  • 禁用它,就像 ssms.pkgundef 中的黑暗主题一样 -> sql studio 无法启动

看起来主题是在程序启动时注入的,所以也许有办法禁用它?

有什么建议:P?

0 投票
0 回答
216 浏览

javascript - 高对比度页面,jQuery 切换类,如果类存在并且更改 url 将此类放在元素上

所以我试图在页面上创建一个按钮,在点击时将其更改为高对比度页面,它已经在工作,但是如果我转到此页面上的不同链接,这个高对比度类不存在,我需要点击我的按钮再次使页面具有高对比度。这不是很有用。我正在尝试编写一些函数,如果条件是如果元素上有一个“高对比度”类并且我的 url 发生了变化,那么这个类将仍然存在于一个新的 url 上。甚至可能吗?有人能帮我吗?

为了将类更改为“高对比度”,我正在使用 jQuery .togglelass()。也许我应该使用与此不同的东西?

写了这样的东西来将我的页面更改为高对比度,只是更改我需要放置高对比度的类。

这个页面真的很丰富多彩,所以我不得不在其中进行很多更改。

0 投票
0 回答
64 浏览

java - windows高对比度模式开启时如何检测主题的颜色信息

我正在使用以下代码来检测 Windows 高对比度模式。当 JButton 使用不同的主题(例如白底黑字或黑底白字)时,我想切换 JButton 的图像以支持高对比度。

所以我的问题是,当高对比度模式开启时,如何检测主题的颜色信息(至少是背景颜色)?