html - 我们如何在分页中使省略号可访问?
问题描述
我正在尝试使分页模块可访问。我对此感觉很好,但不知道如何处理用来表示我们正在跳过一堆页面的省略号。
我的直觉是在“视觉隐藏”的范围内包含一些解释性文本,就像我在这里所做的那样。
<nav aria-label="pagination">
<ul class="pagination__list">
<li class="pagination__item">
<a href="#"><span class="visually-hidden">Page </span>1</a>
</li>
<!-- skipping pages 2 - 10 to keep things manageable -->
<li class="pagination__item">
<span class="pagiantion__skip-indicator"><span class="visually-hidden">Skipping pages 2 to 10</span>…</span>
</li>
<li class="pagination__item">
<a href="#"><span class="visually-hidden">Page </span>11</a>
</li>
<li class="pagination__item">
<a href="#"><span class="visually-hidden">Page </span>12</a>
</li>
<li class="ti_pagination__item">
<a href="#" class="active" aria-current="page"><span class="visually-hidden">Page </span>13</a>
</li>
<li class="pagination__item">
<a href="#"><span class="visually-hidden">Page </span>14</a>
</li>
<li class="pagination__item">
<a href="#"><span class="visually-hidden">Page </span>15</a>
</li>
<!-- skipping pages 16-99 to keep things manageable -->
<li class="pagination__item">
<span class="pagiantion__skip-indicator"><span class="visually-hidden">Skipping pages 16 to 99</span>…</span>
</li>
<!-- Last page -->
<li class="pagination__item">
<a href="#"><span class="visually-hidden">Page </span>100</a>
</li>
</ul>
</nav>
我希望有人可以让我知道这是否是在这种情况下制作的最好的柠檬水,或者向我指出一些好的资源。
解决方案
我最近遇到了同样的问题,在考虑了与您的代码中的选项类似的几个选项之后,我想出了这个:使用role="img"和aria-label="ellipses"来显示视觉隐藏的元素包含省略号。
这将是:
<li class="skiped-pages">
<span class="sr-only" role="img" aria-label="ellipses">...</span>
</li>
大多数屏幕阅读器会将“...”读作长时间的停顿,即使它是在段落上下文之外使用的。这就是为什么我在 aria-label 中添加了“省略号”这个词,对于中断指示器的目的来说,它不太冗长和有意义。
<span>
role="img" 的目的是允许使用 aria-label(在or中使用时不会被屏幕阅读器读出<li>
)。它由屏幕阅读器显示为图像,这对我来说在语义上是可以的,因为“...”实际上是某种代表省略号的符号或图标(在我的例子中,我通过 CSS 用一条花哨的长线替换了省略号)。例如 NVDA (v. 2017 with Chrome 79/FFox 57) 读取"link: page 15" , "Image: ellipses" , "link: page 100"。看看心智模型与您在视觉设计中呈现的心智模型有何相似之处。
考虑到渐进增强,我会在视觉隐藏的元素文本中使用“...”,因为任何单词在样式之前都会看起来很奇怪。
--
在寻找支持此答案的资源时,我注意到 MDN 文档在此处的第三个用例中对表情符号提出了类似的观点:
https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/Role_Img
推荐阅读
- r - 如何在 R 中通过加权平均栅格化点数据?
- rest - Informatica BDM - 如何重试“REST Web 服务使用者”?
- javascript - 如何将逻辑语句引入 XML 视图或如何更改某些 Table 项目的展示方式
- r - Anova not working at multilevel analysis - "$ operator not defined for this S4 class"
- prometheus - Prometheus 同时监听不同的端口
- angular - 自动调整 textarea 最大 5 行限制,然后显示滚动条
- java - 如何仅使用 java 使用特殊字符(包括空格)创建大小为 5 的非重复随机字符串?
- kubernetes - Helm V3 - 找不到官方仓库
- python - 生成具有 60% 0 和 40% 1 的虚拟数据
- android - Android - 当应用程序移至后台并置于前台时,不维护后台堆栈