html - 用 CSS 替换内容 - 可访问性影响?

标签 html css accessibility

我想用纯 CSS 替换一些第三方生成的内容。其他问题涵盖了各种技术,但基本思想是隐藏现有内容并使用伪选择器添加新内容。

我想知道从可访问性的 Angular 来看,这是否是可以接受的事情。屏幕阅读器会看到两个文本位还是只看到原始文本? CSS 是否应该包含在@media screen {} 中以避免两者都被使用?

在我的情况下,我只能使用 CSS。我无法编辑 HTML 或使用任何 JavaScript。有什么方法可以只向屏幕阅读器显示替换文本吗?

.third-party-content {
  font-size:0;
}

.third-party-content:before {
  content:"lovely replacement";
  font-size:initial;
}
<div class="third-party-content">unwanted garbage</div>

最佳答案

根本不要使用 CSS 生成的文本来传达有意义的信息。

屏幕阅读器的行为不同。他们中有些人总是阅读它,有些人从不阅读,有些人有时读或不读取决于其他属性。 例如,NVDA 大部分时间都在读取 CSS 生成的文本; Jaws 很少这样做(如果有的话,有时也会)。

无论如何,根据基本分离原则:content/structure=HTML,behavior/action=JavaScript,appearance=CSS,让CSS生成有意义的文本在语义上是不正确的。 它应该在 HTML 中完成。事实上,CSS Content 属性不应该用于文本图标和其他纯粹的视觉事物之外的其他东西,如果它们被跳过/不显示/不阅读,这些东西对于一般理解来说并不重要。

关于html - 用 CSS 替换内容 - 可访问性影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51172043/

相关文章:

html - 具有自定义内容和覆盖的 WordPress 全屏菜单

jquery - 使 Bootstrap 4 张卡片每行相等

javascript - 通过javascript隐藏页面背景

javascript - 辅助功能:aria-haspopup 可以用来做什么?

html - 无法使用 aria 仅使用键盘输入显示下拉复选框

css - 在伪元素内容中的两个属性之间添加空格

javascript - 在隐藏字段数组中添加和删除值,无需提交表单

android - 检测我的无障碍服务是否启用

javascript - 如何在python中使用真正的jquery从网页中提取数据?

jquery - 显示对相应菜单悬停有影响的图像