html - 更改屏幕阅读器自定义无序列表字符的标签

标签 html css accessibility voiceover

如果您实现自定义无序列表字符,屏幕阅读器(或至少 VoiceOver)会在读出每个列表项之前读出您使用的该字符的名称。相反,如果您没有更改元素符号字符,VoiceOver 将播报“元素符号”。

如何更改屏幕阅读器为这个 Angular 色宣布的标签,例如将其设置回“子弹”?

ul li:before {
    content: '○';
}

<ul>
    <li>You are a beautiful human being</li>
</ul>

VoiceOver 宣布“白色圆圈你是一个美丽的人。”

最佳答案

您无法更改字符的声明,但通过将其放置在另一个元素内并在该元素上放置一个 aria-label,您可以让屏幕阅读器覆盖该元素内所有文本的声明。这是一个例子:

<!doctype html>
<html>
    <head>
        <title>Bullet list examples</title>
        <style>
        ul {
            list-style-type: none;
        }
        ul.justcontent li:before {
            content: 'x';
        }
        ul.withspan li:before {
            content: '';
        }
        ul.withspan li span:before {
            content: 'x';
        }
        </style>
    </head>
    <body>
        <ul class="justcontent">
            <li>You are a beautiful human being</li>
        </ul>
        <ul class="withspan">
            <li><span aria-label="bullet"></span>You are a beautiful human being</li>
        </ul>
    </body>
</html>

关于html - 更改屏幕阅读器自定义无序列表字符的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27614899/

相关文章:

javascript - 图像和文本查询

html - 3行流体布局中的div重叠定位

accessibility - 我可以使用 aria-描述的引用多个元素吗?

objective-c - 在 UITableView header 中包含的 UIImageView 上设置 accessibilityLabel

html - 如何在 UI 中显示时缩进原始 json?

html - 调整窗口大小时保持元素与背景的相对位置?

html - CSS 替换 YouTube 嵌入的黑条

java - 当我的应用程序运行时拒绝振动(我的应用程序除外)

javascript - 在 AngularJS 中提交表单后更新表格

JQuery UI 隐藏/显示 div 位置在 Chrome 上跳转