当前位置:主页 > 聚焦 >

浅谈网页中提升SVG文件可访问性的几种方法

时间:2020-12-20 18:23:04

  (html教程)

  

SVG是一种图像文件格式,它的英文全称为Scalable Vector Graphics,意思为可缩放的矢量图形。本文就来为大家介绍7个提升网页SVG文件可访问性的方案。

  

1、作为图片使用的 SVG 文件

  如果你的 SVG 是作为 <img> 的 src引入的,务必为 <img> 添加 role="img" 属性:

  <img src="

  如果不加 role="img",有些屏幕阅读器不会将 <img src="xxx.svg"> 认作图片,只是读出 alt 值。

  2、作为图标使用的 SVG

  SVG 作为图标使用时,请使用 aria-hidden="true" 对访问设备隐藏,添加一个视觉上隐藏(visually-hidden)的兄弟元素作为图标的文本语义说明。

  <a href="#"> <svg class="icon icon-close" viewBox="0 0 32 32" aria-hidden="true"> <use xlink:href="#icon-close"></use> </svg> <span class="sr-only">Close</span> </a> <svg display="none" version="1.1" viewBox="0 0 32 32"> <defs> <g id="icon-close"> <path class="path1" d="M31.708 25.707v0l-9.708-9.708 9.708-9.708c0.104-0.104 0.18-0.227 0.229-0.356 0.134-0.355 0.058-0.771-0.229-1.058l-4.586-4.586c-0.286-0.286-0.702-0.361-1.057-0.229-0.131 0.049-0.254 0.125-0.357 0.229l-9.708 9.708-9.708-9.708c-0.105-0.104-0.227-0.18-0.357-0.228-0.356-0.133-0.771-0.057-1.057 0.229l-4.586 4.585c-0.286 0.286-0.361 0.702-0.231 1.058 0.051 0.13 0.125 0.252 0.23 0.356l9.709 9.708-9.708 9.708c-0.105 0.104-0.18 0.228-0.23 0.357-0.132 0.354-0.056 0.771 0.23 1.057l4.586 4.586c0.286 0.286 0.702 0.361 1.057 0.229 0.131-0.050 0.252-0.125 0.357-0.229l9.708-9.708 9.708 9.708c0.104 0.104 0.227 0.18 0.357 0.229 0.355 0.133 0.771 0.057 1.057-0.229l4.586-4.586c0.286-0.286 0.362-0.702 0.229-1.057-0.049-0.129-0.126-0.253-0.229-0.357z"> </path> </g> </defs> </svg> <style> .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; } </style>

  如上,为 <svg> 添加了 aria-hidden="true",让其对访问设备隐藏。之后的 .sr-only 就是所谓的视觉隐藏元素——只是视觉上看不见,但会被屏幕阅读读到。

  3、IE 的 BUG

  网页如果需要兼容 IE,那么在使用 <svg> 的时候,需要显式添加 focusable="false" 属性。

  <svg focusable="false">...</svg>

  原因是为:在 IE 浏览器上关于 SVG 的一个 BUG。大家知道,SVG 默认是不会被聚焦的,但在 IE 中,如果 SVG 包含在像链接、按钮这样的可聚焦元素里时,使用 Tab 是可以被聚焦的。这就导致父元素聚焦后,子元素又被聚焦的情况发生。

  4、Safari 10 的 BUG

  在 Safari 10 中,如果 <svg> 中包含 <use>,务必在两者中间使用空格隔开。

  <svg> <use>...</use> </svg>

  否则,使用键盘 Tab 访问到这里的时候,跳不过去。不够之后的版本的已经修复了,如果你的网页需要支持 Safari 10 的话,就需要注意这个。

  5、作为图片使用的 SVG

  有时需要将 SVG 文件作为单独的图片使用,那么跟第二条类似的是,添加一个视觉隐藏元素作为语义说明使用。

  <a href="

  之所以没有选择以 <svg role="img" aria-label="Simply Accessible"> 的形式添加说明,是因为如果 <svg> 不是在可聚焦元素里使用的时候,有些屏幕阅读器不会正确朗读 aria-label 属性。

  6、支持 IE8- 浏览器

  在 IE8- 浏览器中,<svg> 中的 <desc> 标签会被显示出来,因此需要支持此类浏览器的话需要隐藏它们。

  <!-- 下面语句的作用范围从 IE5~IE9 --> <!--[if !IE]> --> <desc>...</desc> <!-- <![endif]-->

7、色彩对比

  设计 SVG 图标时,一定要考虑到色弱用户、或在高对比黑色背景主题下(High Contrast theme)使用的用户。举一个例子,设计图标的时候,可以考虑使用实心的背景加上颜色鲜明边框。

  编程入门!!

热点推荐
1 韩国国税厅提议修订《刑事诉讼法》强化

韩国国税厅官员提议修订《刑事诉讼法》,以强化对个人自持虚拟资产的扣押执行规则。今年...

2 韩国股市与纳斯达克100指数相关系数升至

消息,据彭博社披露,韩国综合股价指数与纳斯达克100指数的60日相关系数升至0.46,接近过去...

3 Polymarket:美联储7月29日维持利率不变概率

消息,Polymarket交易者目前预计美联储在7月29日的决策中维持利率不变的概率为93.5%。...

4 长鑫存储巨鲸挂出832万美元卖单,挂单规

消息,长鑫存储巨鲸在HyperLiquid上挂出832万美元的卖单,挂单规模已超过CXMT单日成交额。当前...

5 BTC ETF两周吸引2.73亿美元资金

消息,BTC交易所交易基金在两周内吸引了2.73亿美元的资金流入,尽管这一数字与此前八周流出...

6 Schwab新兴市场ETF与iShares全球ETF:哪个更适

消息,Schwab新兴市场ETF与iShares全球ETF之间的对比引发了投资者的关注。Schwab ETF主要针对新兴经...

7 沉睡鲸鱼在5年后转移700枚BTC,当前价值约

一只沉睡的鲸鱼在5年后转移了700枚比特币,最初购买时花费约2234万美元,目前价值约4530万美...

8 Zhu Su:石油或许是AI的最佳类比,最终将

消息,三箭资本联合创始人Zhu Su表示,石油或许是AI的最佳类比,两者都存在多种形态并最终走...

9 币安将于7月21日停止支持MOVR和GLMR主网充

消息,币安官方公告称,将于2026年7月21日19:00停止支持moonriver 和moonbeam 主网的充值和提现业务...

10 摩根士丹利:欧洲柴油供应紧缩压力或将

消息,摩根士丹利指出,由于一系列重大供应挑战同时出现,欧洲正面临柴油供应紧缩局面,...

成都来彰科技 蜀ICP备2025134723号-1

资讯来源互联网,如有版权问题请联系管理员删除。