JAWS 无法使用 Chrome 中的 ::before 和 ::after 伪元素读取 ins/del 元素

JAWS not able to read ins/del elements with ::before and ::after pseudo-elements in Chrome

我是一个具有文本编辑器的 Web 应用程序的开发人员。我正在尝试在编辑器中构建功能以跟踪插入和删除,并且我希望它可以访问。我正在使用 ins 和 del 标签来标记更改,我正在使用此页面 (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ins#Accessibility_concerns) 作为指导,指导如何将消息添加到跟踪更改的开头和结尾,以便 JAWS 阅读以让用户知道正在读取跟踪的更改。这在 Firefox 中非常有效。但是,当我在 Chrome 中调出相同的页面时,JAWS 在遇到 ::before 伪元素时立即停止读取该行。谁能帮我弄清楚我做错了什么或建议一种替代方法,让我在 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>

内容不在 DOM 中,屏幕 reader 正在阅读 DOM,不是屏幕上可见的内容。 因此,仅使用 sr-only 将您的内容放在 HTML 中,即在屏幕上不可见,但在 DOM 中可用于屏幕-reader.

<div contenteditable="true" style="border: 1px solid black;">
    <p>This is a div where I am 
       <span class="sr-only">start insert</span>
       <ins>removing</ins>
       <span class="sr-only">end insert</span>
       <span class="sr-only">start delete</span>
       <del>adding</del>
       <span class="sr-only">end delete</span>
     text
    </p>
    <p>
        <span>Regular text just to see how JAWS handles reading this.
    </p>
 </div> 

和 sr-only css class :-

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0,0,0,0);
    white-space: nowrap;
    border: 0;
}