Подавить заголовки ссылок - PullRequest
3 голосов
/ 01 мая 2009

Можно ли как-нибудь подавить всплывающие заголовки в ссылках, но при этом сохранить их на странице для слабовидящих?

Ответы [ 6 ]

4 голосов
/ 01 мая 2009

Это функция браузера для интерпретации заголовка ссылки и отображения всплывающей подсказки / всплывающей подсказки. Там нет никакого способа, чтобы подавить их. Я пытался (потому что клиенту они тоже не нравились), и нет никакого способа их обойти.

3 голосов
/ 19 августа 2009

Я знаю, что это было решено, но я также нашел этот обходной путь: Скрыть родную подсказку, используя jQuery

1 голос
/ 22 июля 2015

У меня была эта проблема с проектом, в котором клиент хотел отобразить свою собственную подсказку (которая была сделана с помощью CSS), но она также показывалась из-за всплывающей подсказки, инициированной браузером, поэтому она показывалась дважды. Мы обошли это, удалив атрибут title и вместо этого используя data для заполнения текста в CSS.

Я не уверен, что вы подразумеваете под сохранением их на странице для слабовидящих, так как они видны только в исходном коде?

Например:

<a href="link" title="something">Link title here</a>

будет отображать ссылку «Название ссылки здесь» на странице, а также раздражающее всплывающее окно при наведении на нее.

<a href="link" data="something">Link title here</a>

будет показывать ссылку «Название ссылки здесь», но НЕ будет показывать раздражающее всплывающее окно при наведении, хотя вы все равно можете использовать тег data для ссылки на то, что вы хотите поместить туда (в нашем случае мы помещаем текст для всплывающая подсказка для CSS).

Очевидно, что если вы полностью удалите тег заголовка, проблема будет решена, но вы сказали, что вам нужно сохранить его там, так что это мой обходной путь, который использовался ранее.

0 голосов
/ 20 января 2013

Это работает в jQuery.

var val;
$('[YOUR_SELECTOR]').hover(function() {
    val = $(this).attr('title');
    $(this).removeAttr('title');
  },function() {
    $(this).attr('title',val);
})
0 голосов
/ 01 мая 2009

... возможно, это не будет идеальным, но вы всегда можете попробовать вместо атрибута 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, я бы предложил что-то более подходящее, но даже тогда я не уверен, что это сработает.

0 голосов
/ 01 мая 2009

Ссылки в моем браузере не отображают всплывающие подсказки, если они не имеют атрибута title.

Если хотите, вы можете использовать Greasemonkey , чтобы запустить этот бит javascript на странице evey и удалить их.

var anchorTags;
anchorTags = document.getElementsByTagName("a");
for(var i = 0; i < anchorTags.length; i++) {
  anchorTags[i].removeAttribute("title");
}
...