html - 内联 SVG 可以使用 Alt 标签吗?

标签 html svg accessibility alt

有没有办法给内联 SVG 一个 alt 标签?这是我的内联 SVG 代码,但是 alt 标签没有显示(而且我什至不确定我对 alt 标签进行编码的方式是有效,在线搜索澄清后):

<svg version="1.1" id="svg-header-filter" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="27px" height="27px" viewBox="0 0 37 37" enable-background="new 0 0 37 37" xml:space="preserve" alt="Hello world!">
    <path class="header-filter-circle" d="M17.796,0C7.947,0,0,7.988,0,17.838s7.947,17.787,17.796,17.787c9.848,0,17.829-7.935,17.829-17.783 C35.625,7.988,27.644,0,17.796,0z"/>
    <g>
    <path class="header-filter-icon" fill="#FFFFFF" d="M15.062,30.263v-9.935l-8.607-8.703h22.343l-8.744,8.727v5.029L15.062,30.263z M8.755,12.625l7.291,7.389 v7.898l3.025-2.788v-5.086l7.426-7.413H8.755z"/>
    </g>
</svg>

这是 JSFiddle:http://jsfiddle.net/FsCMM

最佳答案

您应该使用 title 元素而不是 alt 标签来显示工具提示:

<svg version="1.1" id="svg-header-filter" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="27px" height="27px" viewBox="0 0 37 37" enable-background="new 0 0 37 37" xml:space="preserve">
    <title>Hello world!</title>
    <path class="header-filter-circle" d="M17.796,0C7.947,0,0,7.988,0,17.838s7.947,17.787,17.796,17.787c9.848,0,17.829-7.935,17.829-17.783 C35.625,7.988,27.644,0,17.796,0z"/>
    <g>
        <path class="header-filter-icon" fill="#FFFFFF" d="M15.062,30.263v-9.935l-8.607-8.703h22.343l-8.744,8.727v5.029L15.062,30.263z M8.755,12.625l7.291,7.389 v7.898l3.025-2.788v-5.086l7.426-7.413H8.755z"/>
    </g>
</svg>

对于 chrome34:用 g 元素包裹图形并向其插入 title 元素。

<svg version="1.1" id="svg-header-filter" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="27px" height="27px" viewBox="0 0 37 37" enable-background="new 0 0 37 37" xml:space="preserve">
<g>
    <title>Hello world!</title>
    <path class="header-filter-circle" d="M17.796,0C7.947,0,0,7.988,0,17.838s7.947,17.787,17.796,17.787c9.848,0,17.829-7.935,17.829-17.783 C35.625,7.988,27.644,0,17.796,0z"/>
    <g>
        <path class="header-filter-icon" fill="#FFFFFF" d="M15.062,30.263v-9.935l-8.607-8.703h22.343l-8.744,8.727v5.029L15.062,30.263z M8.755,12.625l7.291,7.389 v7.898l3.025-2.788v-5.086l7.426-7.413H8.755z"/>
    </g>
</g>
</svg>

关于html - 内联 SVG 可以使用 Alt 标签吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23146570/

相关文章:

java - 图像无法在外部 Web 浏览器 (Firefox) 中加载

html - 如何在 css 中定位 IE 6 和 IE7

javascript - 如何更改 "html"元素的 CSS

html - css - 向所有部分元素添加一个类

svg - 如何在保持纵横比的同时缩放 SVG 矩形?

html - 使用 SVG 和 HTML/CSS 创建列表

iOS 语音在 UINavigationController 上推送/弹出时宣布新的 View 标题

javascript - Dagre/D3 渲染较大尺寸的节点和边/箭头

jquery-ui - jQuery UI Datepicker 中当前最先进的可访问性是什么?

windows-7 - 屏幕阅读器的 WiX UI 元素顺序错误