【发布时间】:2009-05-01 00:56:22
【问题描述】:
有什么方法可以抑制链接上的弹出标题,但仍将它们保留在页面上以供视障人士使用?
【问题讨论】:
有什么方法可以抑制链接上的弹出标题,但仍将它们保留在页面上以供视障人士使用?
【问题讨论】:
这是浏览器解释链接标题并显示工具提示/弹出窗口的功能。没有办法压制他们。我试过了(因为客户也不喜欢它们)但没有办法绕过它们。
【讨论】:
我知道这已经解决,但我也找到了这个解决方法:Hide native tooltip using jQuery
【讨论】:
我在一个项目中遇到了这个问题,客户想要显示他们自己的工具提示(使用 CSS 完成),但由于浏览器启动的工具提示也显示了,所以它显示了两次。我们通过删除 'title' 属性并使用 'data' 来填充 CSS 中的文本来解决这个问题。
我不确定您将它们保留在视障人士的页面上是什么意思,因为它们仅在源代码中可见?
例如:
<a href="link" title="something">Link title here</a>
会在页面上显示链接“此处的链接标题”以及当您将鼠标悬停在该链接上时令人讨厌的弹出窗口。
<a href="link" data="something">Link title here</a>
将显示链接“此处的链接标题”,但不会在悬停时显示烦人的弹出窗口,尽管您仍然可以使用 data 标记来引用您想要放在那里的任何内容(在我们的例子中,我们将文本放在CSS 参考的工具提示)。
显然,如果您完全删除标题标签,问题就解决了,但您说您需要保留它,所以这是我以前使用的解决方法。
【讨论】:
这适用于 jQuery。
var val;
$('[YOUR_SELECTOR]').hover(function() {
val = $(this).attr('title');
$(this).removeAttr('title');
},function() {
$(this).attr('title',val);
})
【讨论】:
...这可能并不理想,但您总是可以尝试在<a href> 中使用<span> 来代替title 属性<a> 标签:
/* screen.css */
a { }
a span.titleText {
display: none;
position: absolute;
bottom: 1.2em;
left: 0;
}
a:hover span.titleText,
a:active span.titleText,
a:focus span.titleText {
display: block;
}
/* audio.css */
a span {
display: inline; /* or whatever the relevant attribute would
be in an audio stylesheet. */
}
<head>
<link href="screen.css" type="text/css" rel="stylesheet" media="screen" />
<link href="audio.css" type="text/css" rel="stylesheet" media="screen-reader, audio" />
</head>
<a href="http://some.url.com">
<span class="titleText">This is the title</span>This is the link
</a>
但是,我不建议将其作为特别实用的解决方案。而且我相当肯定它不会验证。如果我知道 JS,我会建议一些更可行的方法,但即便如此我也不相信它会起作用。
【讨论】:
我的浏览器中的链接不会显示类似的工具提示,除非它们具有 title 属性。
如果你愿意,你可以使用Greasemonkey 在每个页面上运行这段 javascript 来删除它们。
var anchorTags;
anchorTags = document.getElementsByTagName("a");
for(var i = 0; i < anchorTags.length; i++) {
anchorTags[i].removeAttribute("title");
}
【讨论】: