Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >设置屏幕阅读器的困难图标

设置屏幕阅读器的困难图标
EN

Stack Overflow用户
提问于 2021-05-18 02:29:07
回答 1查看 40关注 0票数 0

我有一个在线课程,有一个困难的评级,显示为以下变化:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div class="course-difficulty">
    <label>Difficulty: </label>
    <span class="fas fa-star"></span>
    <span class="fas fa-star"></span>
</div>

给屏幕阅读器贴上标签的最佳做法是什么?我可以计算星级,所以标签逻辑上可以应用于父div作为“难点2”,或者这应该是针对单个图标吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-18 02:43:42

有几件事,首先,在这里使用<label>并不十分有效。<label>被设计成链接到交互元素(输入)。

如果这是只显示(即不能对困难进行表决),那么答案很简单:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.visually-hidden { 
    border: 0;
    padding: 0;
    margin: 0;
    position: absolute !important;
    height: 1px; 
    width: 1px;
    overflow: hidden;
    clip: rect(1px 1px 1px 1px); /* IE6, IE7 - a 0 height clip, off to the bottom right of the visible 1px box */
    clip: rect(1px, 1px, 1px, 1px); /*maybe deprecated but we need to support legacy browsers */
    clip-path: inset(50%); /*modern browsers, clip-path works inwards from each corner*/
    white-space: nowrap; /* added line to stop words getting smushed together (as they go onto seperate lines and some screen readers do not understand line feeds as a space */
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!-- option 1 invisible text (screen reader only text) -->
<div class="course-difficulty">
    <p>Difficulty: </p>
    <div aria-hidden="true">
        <span class="fas fa-star"></span>
        <span class="fas fa-star"></span>
    </div>
    <span class="visually-hidden">2 out of 5</span>
</div>

<!-- option 2 aria-label -->
<div class="course-difficulty">
    <p aria-label="Difficulty: 2 out of 5">Difficulty: </p>
    <div aria-hidden="true">
        <span class="fas fa-star"></span>
        <span class="fas fa-star"></span>
    </div>
</div>

有两种变体。

在这两个选项中,我们都将星星封装在一个aria-hidden div中,以将它们隐藏在屏幕读取器中(因为一些屏幕阅读器可能试图读取图标)。我们也更改了一个段落的标签,因为它更有意义。

在第一个选项中,我们使用visually-hidden text在视觉上隐藏文本,但将其提供给屏幕阅读器,解释其困难之处(以及有多少“明星”)。

在第二个选项中,我们使用aria-label覆盖文本,以包括难度等级。

我个人更喜欢选项1,因为它与屏幕阅读器/浏览器组合具有最好的兼容性,并且只在文本浏览器上工作(有些盲文用户更喜欢使用这种浏览器)。

然而,使用aria-label没有什么问题,因为现在99%的屏幕读取器/浏览器组合都可以使用这种方法,而且边缘情况是最小的。

如果系统允许投票,那么您将需要使用单选按钮等,如果是这样的话,请告诉我,我可以帮助您。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67584457

复制
相关文章
关于 循环引用问题
多个对象相互持有,A对象强引用B对象,同时B对象也强引用于A对象,两者相互等待对方发消息告诉自己需要Release,一直等待,形成闭环,内存无法释放,导致内存泄露。
honey缘木鱼
2019/12/20
3.3K0
关于 循环引用问题
fastjson 重复引用和循环引用问题
数据传输使用json格式再方便不过了。 fastjson 由阿里巴巴那伙人使用Java语言编写,号称最快的JSON库 前两天遇到一个问题 后台的数据转化为json字符串后发送到前台出现了$ref字样的东西,后来明白了这是引用,在传输的数据中出现相同的对象时,fastjson默认开启引用检测将相同的对象写成引用的形式. 说到引用分为两种,重复引用和循环引用
Mshu
2018/10/31
2.6K0
PHP 循环引用的问题
问题 为了引出问题, 先来看下面一段代码: <?php $arr = [ 'a', 'b', 'c', 'd', ]; foreach ($arr as &$each){ e
烟草的香味
2019/07/25
3.7K0
PHP 循环引用的问题
Spring循环依赖问题修复
拆分的时候,把错误都处理完后,准备把工程起起来,发现弹簧的循环依赖问题。具体问题如下
端游岚
2018/12/19
3.5K0
Spring循环依赖问题修复
Golang代码循环依赖问题
其实就 package A 引入了 package B ,然后 package B 又引入了 package A ,因此形成了循环依赖。
王小明_HIT
2021/12/02
1.2K0
Golang代码循环依赖问题
python模块循环引用导致问题
这个问题遇到几次了,代码写多了之后,莫名其妙报错。现在终于知道了是因为循环引用的问题。重现一下:
py3study
2020/01/15
7360
python循环引用带来的MemoryError错误解决
在工作中,有一天django服务开始报错MemoryError的错误,没有遇到过这样的错误,上来之后还是很蒙蔽的,问了几个业内的人,他们 都给我说让我改服务器里面配置的东西, 因为是要给大家用的,服务器要保证长久运行,不能临时去修改这个,导致在大家无法使用平台呢,我想着是一个服务启动的时候 引发的,短暂的停服后,并没有解决掉这个问题。还是依旧存在,如果用命令去释放,只会短暂的解决。自己刚开始 也没有想到gc模块,在百度搜索, 找半天 终于找到了,知乎的链接,大概的方式就是用gc 直接去处理。
雷子
2021/03/15
1.5K0
解决循环依赖问题:优雅处理依赖关系的技巧
在软件开发中,依赖是不可避免的。我们经常需要在应用程序的不同组件之间建立依赖关系,以实现功能的模块化和复用。然而,有时候依赖关系可能变得复杂,甚至导致循环依赖的问题。在本文中,我们将通过项目中实际遇到的异常探讨一些解决循环依赖问题的技巧,帮助你在开发过程中优雅地处理依赖关系。
修己xj
2023/08/25
8650
解决循环依赖问题:优雅处理依赖关系的技巧
小记 TypeScript 中的循环引用问题
平时编写 TypeScript 代码时,一般都倾向于使用模块(Module),通过结合使用 import 和 export 我们便可以方便的进行模块的导入和导出.
用户2615200
2020/10/15
5.8K0
iOS常见的内存问题——循环引用
小编在这段儿时间测试过程中发现了好多内存问题,其中较大部分都是由于循环引用造成的内存泄漏,这里小编就借此类问题来给大家分享一下循环引用引发的原因及常见解决方案。
用户5521279
2019/12/10
1.8K0
iOS常见的内存问题——循环引用
Python 实战项目解决循环依赖问题
由于我在 Python 领域还是个初学者,没有遇到类似问题,但是根据分析,问题应该是出在了 循环依赖。
宋天伦
2023/10/20
4140
Python 实战项目解决循环依赖问题
由于我在 Python 领域还是个初学者,没有遇到类似问题,但是根据分析,问题应该是出在了 循环依赖。
宋天伦
2023/10/20
2350
Spring如何解决循环依赖问题
(1)通过构造方法进行依赖注入时产生的循环依赖问题。 (2)通过setter方法进行依赖注入且是在多例(原型)模式下产生的循环依赖问题。 (3)通过setter方法进行依赖注入且是在单例模式下产生的循环依赖问题。 在Spring中,只有第(3)种方式的循环依赖问题被解决了,其他两种方式在遇到循环依赖问题时都会产生异常。这是因为:
红目香薰
2022/11/29
8500
Spring 如何解决循环依赖问题?
这个问题算是关于Spring的一个高频面试题,因为如果不刻意研读,相信即使读过源码,面试者也不一定能够一下子思考出个中奥秘。
Java技术栈
2019/11/28
1.6K0
Spring 如何解决循环依赖问题?
三探循环依赖 → 记一次线上偶现的循环依赖问题
Spring 的循环依赖,源码详细分析 → 真的非要三级缓存吗 中讲到了循环依赖问题
青石路
2022/05/10
8410
三探循环依赖 → 记一次线上偶现的循环依赖问题
通过循环引用问题来分析Spring源码
本文主要分析Spring的循环依赖问题。开始正文之前,我们需要定义这2个类。LoopReferenceA中引用LoopReferenceB,LoopReferenceB中引用LoopReferenceA。
用户2032165
2018/09/03
1.4K0
通过循环引用问题来分析Spring源码
Spring中解决循环依赖报错的问题
当一个ClassA依赖于ClassB,然后ClassB又反过来依赖ClassA,这就形成了一个循环依赖:
Happyjava
2019/07/16
2.9K0
Spring中解决循环依赖报错的问题
iOS循环引用
iOS循环引用 当前类的闭包/Block属性,用到了当前类,就会造成循环引用 此闭包/Block应该是当前类的属性,我们经常对Block进行copy,copy到堆中,以便后用。 单方向引用是不会产生循环引用。需要self引用闭包/Block,Block中使用self。 有两个规则: 如果你是通过引用来访问一个实例变量,那么将强引用至self。 如果你是通过值来访问一个实例变量,那么将直接强引用至这个“值”变量。 Object-C Block循环引用情况 一般来说我们总会在设置Block之后,在合适的时间
用户1941540
2018/05/11
7980
面试题:Spring 的循环依赖问题
# [Spring 的循环依赖问题](https://www.cnblogs.com/mghio/p/15024461.html)
程序员黄小斜
2021/12/06
5330
循环依赖 之 手写代码模拟spring循环依赖
如上图: A依赖了B, B同时依赖了A和C , C依赖了A. 这也是循环依赖. , 形成了一个闭环
用户5546570
2020/11/12
7960
循环依赖 之 手写代码模拟spring循环依赖

相似问题

循环依赖关系-结构和函数指针相互引用

211

Django模型相互引用

15

C++类相互依赖,导致循环依赖错误

45

相互使用的类的循环引用问题

38

具有相互引用/循环依赖的类的复制构造函数

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文