Есть ли способ подавить всплывающие заголовки на ссылках, но при этом оставить их на странице для слабовидящих?
Подавить заголовки ссылок
Ответы (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 ссылаясь на).
Очевидно, что если вы полностью удалите тег заголовка, проблема будет решена, но вы сказали, что вам нужно оставить его там, так что это мой обходной путь, который использовался раньше.
Это работает в jQuery.
var val;
$('[YOUR_SELECTOR]').hover(function() {
val = $(this).attr('title');
$(this).removeAttr('title');
},function() {
$(this).attr('title',val);
})
... возможно, это было бы не идеально, но вы всегда можете попробовать вместо атрибута title
в <a href>
<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, я бы предложил что-нибудь более работоспособное, но даже тогда я не уверен, что это сработает.
Ссылки в моем браузере не показывают подобных подсказок, если у них нет атрибута title
.
Если хотите, вы можете использовать Greasemonkey для запуска этого фрагмента javascript. на каждой странице, чтобы удалить их.
var anchorTags;
anchorTags = document.getElementsByTagName("a");
for(var i = 0; i < anchorTags.length; i++) {
anchorTags[i].removeAttribute("title");
}