如何提供一种易于使用的高对比度替代柔和的配色方案?

2024-04-01

如何确保网站的颜色主题提供符合以下要求的高对比度替代方案WCAG 2 最低对比度要求 https://webaim.org/articles/contrast/#sc143除非用户想要或需要更高的对比度,否则更喜欢柔和的低对比度主题?

我尝试定义一个具有较高对比度的后备主题,并提供较低对比度的版本,除非用户需要高对比度,使用偏好对比媒体查询 https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-contrast,但是下面的例子(也作为代码笔在这里 https://codepen.io/openmindculture/pen/OJQBMPQ由于前景色 2.71 的低对比度:#eeeeee,背景色:#f26600,它未能通过 axe Chrome 扩展的可访问性审核。)

需要什么 CSS 代码来定义正确的后备? 用户希望如何表明他们的对比度偏好,是否有办法让浏览器或操作系统根据日光设置、暗/亮主题、环境光传感器等来适应对比度偏好?

p {
  background-color: #f26600;
  color: #eeeeee;
}

@media (prefers-contrast: more) {
  p {
    background-color: #aa3300;
    color: #ffffff;
  }
}

我还尝试反转代码片段中的逻辑,以使高对比度成为实际默认值,而不是相反:codepen.io/openmindculture/pen/eYVPgoo https://codepen.io/openmindculture/pen/eYVPgoo。这在没有颜色对比警告的情况下验证,但是这会显示柔和的版本吗?我在哪里可以声明我更喜欢较小的对比度,我怎么知道?


这是一个非常有趣的问题。

关于提供替代对比版本

提供具有足够对比度的控件,允许用户切换到使用足够对比度的演示文稿实际上是一个足够的技术来满足 WCAG 的对比标准 https://www.w3.org/WAI/WCAG21/Techniques/general/G174.html.

不过,他们确实需要以下内容:

  1. 原始页面上的链接或控件本身必须满足所需 SC 的对比度要求。 (如果用户看不到该控件,他们可能无法使用它转到新页面。)
  2. 新页面必须包含与原始页面相同的所有信息和功能。
  3. 新页面必须符合所有 SC 以获得所需的一致性级别。 (即,新页面不能仅具有所需的对比度级别,但在其他方面不符合要求)。

由于你只想切换样式,很可能会遇到2和3。你只需要添加一个切换样式的按钮即可。

您可以有第二个样式表(.css 文件)来定义对比版本。然后您可以执行以下操作:

<link href="contrast.css" rel="alternate stylesheet" type="text/css" title="Contrast Styles">

这将允许支持这些的浏览器(Firefox)向用户提供样式切换。看替代样式表 https://developer.mozilla.org/en-US/docs/Web/CSS/Alternative_style_sheets

然后添加一个通过 JavaScript 激活该样式表的按钮,以及一个在以下情况下导入该样式表的媒体查询:@media (prefers-contrast: more).

当替代样式表处于活动状态时,不确定您的审核工具是否会通过该审核工具。最后,为了符合法律规定,手动审核始终是必要的,您应该通过 1.4.3。

用户如何表明他们的对比度偏好

当时有一场关于字体大小控件是否应该成为网站一部分的大讨论,因为它已经在浏览器中可用很长时间了。 WCAG 从未要求这样做(据我所知),但在网站上进行控制的理由是很多用户对他们的浏览器不够了解。

同样的论点也适用于对比度模式(很多人可能不知道操作系统的对比度设置或无法访问它们),但这次 WCAG 实际上要求以任何方式进行控制。

有没有办法让浏览器或操作系统根据日光设置、暗/亮主题、环境光传感器等调整对比度首选项?

有多种方法可以根据 Android 中的日光设置来使用深色主题设置,并且可能有一些应用程序允许根据环境光进行切换。

我不知道有任何功能允许基于相同的设置对比度模式,即使在Windows 11 大大提高了其可访问性对比主题 https://support.microsoft.com/en-us/windows/change-color-contrast-in-windows-fedc744c-90ac-69df-aed5-c8a90125e696.

这可能是有道理的,因为它更多地表明用户需要更高的对比度,无论是白天还是晚上,浅色还是深色主题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何提供一种易于使用的高对比度替代柔和的配色方案? 的相关文章

  • 旋转后变换比例

    我有个问题 我正在将 div 旋转 45 度 然后我想在新的 y 轴上缩放它http jsfiddle net P37g5 2 http jsfiddle net P37g5 2 y 轴现在不是 45 度吗 我不确定我是否正确理解了这个问题
  • 如何在严格模式下设置元素样式属性?

    Given body document getElementsByTagName body 0 iframe document createElement iframe iframe src protocol settings script
  • 如何让文字发光?

    我们可以将发光效果应用于任何文本 如下所示 Updated Please also tell me what things i need to create something like this 我需要为此使用特殊字体吗 如何使用以下命令
  • 缩放对象上的弹跳动画

    拥有对象比例 然后在返回到原始比例因子之前以该比例因子执行弹跳动画的最佳方法是什么 我意识到我可以做一些事情 比如将其缩放到 2 2 然后 1 8 然后 2 0 但我正在寻找一种方法 您只需在比例因子上执行弹跳动画 因为我的比例因子会改变
  • 使用 CSS 网格布局跨越所有列/行的项目

    随着 CSS 网格布局模块很快在 Firefox 和 Chrome 中发布 我想我应该尝试了解如何使用它 我尝试用一 个项目创建一个简单的网格a跨越所有行的左侧 其他项目 b c d e等 跨越各个行的右侧 跨越行右侧的项目数量是可变的 因
  • SVG 沿圆弧添加文本

    我正在尝试绘制 SVG 径向饼图 如下所述 色卡 https stackoverflow com a 18210763 1395178 现在我尝试将文本与圆弧一起添加到每个切片 我试图展示Text 1具有与 M 和 A 值完全相同的 x y
  • Div 上的倾斜边框

    我正在尝试倾斜一个 div 类似于 使用 css 倾斜 div 的顶部而不倾斜文本 https stackoverflow com questions 13591584 slant the top of a div using css wi
  • HTML 和 CSS 的基本编码标准 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想知道它们是否是像 PSR 01 这样的 HTML 和 CSS 基本编码标准 我尝试谷歌搜索和搜索 但没有找到 我建议看看类似的东西
  • CSS 动画在 Internet Explorer 10 和 11 中不起作用

    以下 css 动画在 Chrome Mozilla Opera 浏览器中完美运行 但在 Internet Exporer 10 和 11 中不起作用 出了什么问题 请参见http jsfiddle net bm72w3n3 http jsf
  • 当鼠标悬停在上面时制作一个 React Bootstrap NavDropdown 下拉菜单

    我试图让 React Bootstrap 中的下拉菜单栏在您显示选项时hover超过它 我到处查看 所有解决方案似乎都已过时并且不起作用 如果您能够解决此问题 请告诉我 这是我尝试将更改应用到的下拉菜单
  • 停止 CSS 动画但让其当前迭代完成

    我有以下 HTML div class rotate div 以及以下 CSS webkit keyframes rotate to webkit transform rotate 360deg rotate width 100px hei
  • 使用 getRGB() 时负数的含义是什么?

    我对颜色 渲染等很陌生 并且观看了一些有关渲染等的教程视频 我的问题是 当我致电getRGB像素上的方法 它返回一个负整数 这个负数是什么意思 例如 当我打电话时getRGB对于 r 186 g 186 b 186 的颜色 它返回 4539
  • 为什么连字符不能与内部 一起使用?

    我正在尝试让连字符处理具有以下内容的文本 span 里面的元素用于突出显示 这似乎打破了连字符算法 有什么方法可以修复这种行为 使连字符的放置方式与没有连字符的位置相同 span 元素 我不是在问像这样的解决方法 shy 代码 沙箱 htt
  • Safari 6 (iOS 6) 弹性布局不会换行元素

    我需要将两个框放在列中 这在我测试过的其他浏览器中有效 但在 iOS 6 上的 Safari 6 中无效 例子 http jsfiddle net 5FESj 1 http jsfiddle net 5FESj 1 display webk
  • [FLUTTER]滚动更改选项卡[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想构建这个用户界面 其中选项卡在某些滚动点上发生变化 请告诉我应该如何处理 是否有任何可用的包 UI LINK https www
  • 是否可以使用纯 css 禁用 mat-tab 动画

    我想禁用 Angular Material mat tab 动画 内容滑入到位时发生的动画 我知道可以使用 disabled 属性 但我想知道是否可以使用纯 css 达到相同的效果 EDIT 我们的用户体验团队希望从材质选项卡中删除幻灯片动
  • 将箭头添加到 Twitter Bootstrap 的下拉药丸中?

    我的 Twitter 引导下拉按钮成功工作 但我有一个小问题 这里的黑色导航栏 http twitter github com bootstrap javascript html dropdowns http twitter github
  • 自动调整元素 (div) 大小以适合水平内容

    我尝试谷歌搜索 但没有得到太多结果 我正在构建一个水平轮播 它在浮动的 LI 中显示图像 我想解决的问题是 每次我向轮播添加缩略图 我是延迟加载 时 我都需要重新计算轮播的宽度 以便所有浮动缩略图很好地并排排列 其一 我宁愿不必在 JS 中
  • 当元素具有多个类时如何在 switch 语句中检查 className

    在下面的示例中 我只想单击该选项以在警报中显示 我正在尝试使用 switch 语句来确定单击了哪个类 如果我的 div 不包含多个类 则我的示例将有效 我尝试使用classList contains在我的 switch 语句中无济于事 有没
  • 处理 iPhone X 系列上 Chrome 浏览器中的安全区域

    对于我管理的网站 我正在使用新的 iPhone X 系列屏幕安全区域safe area inset

随机推荐