有什么方法可以抑制链接上的弹出标题,但仍将它们保留在视障人士的页面上?
6 回答
这是浏览器解释链接标题并显示工具提示/弹出窗口的功能。没有办法压制他们。我试过了(因为客户也不喜欢它们)但没有办法绕过它们。
我知道这已经解决,但我也找到了这个解决方法:使用 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 工具提示的文本放在参考)。
显然,如果你完全删除标题标签,问题就解决了,但你说你需要把它保留在那里,所以这是我以前使用的解决方法。
...它可能并不理想,但你总是可以尝试,代替标签中的title
属性<a href>
,a :<span>
<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,我会建议一些更可行的方法,但即便如此我也不相信它会起作用。
这适用于 jQuery。
var val;
$('[YOUR_SELECTOR]').hover(function() {
val = $(this).attr('title');
$(this).removeAttr('title');
},function() {
$(this).attr('title',val);
})
我的浏览器中的链接不会显示类似的工具提示,除非它们具有title
属性。
如果你愿意,你可以使用Greasemonkey在每个页面上运行这段 javascript 来删除它们。
var anchorTags;
anchorTags = document.getElementsByTagName("a");
for(var i = 0; i < anchorTags.length; i++) {
anchorTags[i].removeAttribute("title");
}