我是一个Web应用程序的开发者,它具有文本编辑器。我试图在编辑器中构建跟踪插入和删除的功能,我希望它是可访问的。我使用ins和del标记来标记更改,我使用这个页面(https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ins#Accessibility_concernes)作为指导,指导如何在跟踪的更改的开头和结尾添加消息,以便JAWS读取,让用户知道正在读取跟踪的更改。这在Firefox中非常有效。但是,当我在Chrome中打开同一个页面时,JAWS在遇到伪元素之前立即停止阅读该行。有人能帮我找出哪里做错了吗?或者建议一种替代方法,让我在Firefox和Chrome中为JAWS用户提供此功能吗?
我在下面包含了一个简单的HTML页面,它将演示我在运行时遇到的问题:
<html>
<head>
<style>
del::before, del::after, ins::before, ins::after {
clip-path: polygon( 0% 0%, 100% 0%, 100% 100%, 0% 100% );
-webkit-clip-path: inset(100%);
clip: rect(1px, 1px, 1px, 1px);
height: 1px;
overflow: hidden;
position: absolute;
white-space:nowrap;
width:1px;
}
del::before {
content: " [start delete] ";
}
del::after {
content: " [end delete] ";
}
ins::before {
content: " [start insert] ";
}
ins::after {
content: " [end insert] ";
}
</style>
</head>
<body>
<div contenteditable="true" style="border: 1px solid black;">
<p>
This is a div where I am <ins>removing</ins><del>adding</del> text
</p>
<p>
<span>Regular text just to see how JAWS handles reading this.
</p>
</div>
</body>
</html>
1条答案
按热度按时间bf1o4zei1#
内容不在DOM中,屏幕阅读器阅读的是DOM,而不是屏幕上的可见内容。因此,仅使用
sr-only
将您的内容放入HTML中,即在屏幕上不可见,但在DOM中可供屏幕阅读器使用。和仅限sr类的css:-