我尝试在鼠标悬停矩形时显示工具提示。我尝试使用<g>
并为其设置title
并将title
设置为<rect>
本身,但不会产生任何可见的输出(Chrome上的))。
HTML
<svg width="200px" height="200px">
<g title="blue rectangle">
<rect width="50px" height="50px" fill="blue" x="10px" y="10px"></rect>
</g>
<rect width="50px" height="50px" fill="red" x="60px" y="60px" title="red rectangle"></rect>
</svg>
观察
感谢 @Jacob Gray 评论,问题仍然存在于Chrome上(FireFox表现正常)。
有人能指出我正确的方向吗?
答案 0 :(得分:12)
W3C spec不鼓励使用title
属性。它甚至带有警告。
警告!强>
目前不鼓励依赖title属性,因为许多用户代理不会按照本规范的要求以可访问的方式公开属性(例如,需要鼠标等指针设备才能显示工具提示,这不包括键盘 - 仅限用户和仅限触摸的用户,例如任何拥有现代手机或平板电脑的用户。
但是,正如this answer Phrogz中提到的那样,SVG实际上有一个元素。
MDN:SVG <title>
元素
SVG图形中的每个容器元素或图形元素都可以提供标题描述字符串,其中描述是纯文本的。当当前SVG文档片段在可视媒体上呈现为SVG时,标题元素不会呈现为图形的一部分。但是,某些用户代理可以例如将标题元素显示为工具提示。交替呈现是可能的,包括视觉和听觉,它们显示标题元素但不显示路径元素或其他图形元素。 title元素通常可以改善SVG文档的可访问性
W3C SVG Spec <desc>
&amp; <title>
元素
<svg width="200px" height="200px">
<g>
<title>blue rectangle</title>
<rect width="50px" height="50px" fill="blue" x="10px" y="10px"></rect>
</g>
<rect width="50px" height="50px" fill="red" x="60px" y="60px" title="red rectangle"></rect>
</svg>
&#13;
答案 1 :(得分:2)
我已经修复了Firefox from version 46之后SVG元素的title属性的错误显示。
Chrome和Firefox现在的行为相同,它们都需要SVG工具提示的子<title>
元素。请注意,那里没有任何变化,现在两个UA都已经以这种方式为许多版本工作。