<a href="link.html" title="Titletext">
…コードです。
Slimboxtitleのために属性を使用する必要がありますが、マウスをリンクの上に置いたときに表示されるタイトルテキストを非表示にしたいと考えています。
何か案は?
素敵なシンプルはどうですか:
<a href="link.html" title="Titletext"><span title=" ">text</span></a>
(より良いのは、ネストされたタイトルに実際に役立つものを入れることです。)
a タグで画像タグを使用していると仮定すると、画像に別のタイトル (スペースでも) を使用することができ、その上にカーソルを合わせるとリンクのタイトルが上書きされます。
これは jQuery を使用すると非常に簡単です
$("li.menu-item > a").attr('title', '');
これにより、li クラスのメニュー項目の要素からタイトルが削除されます。
いくつかのサイトにリストされている「素敵でシンプルな方法はどうですか」という提案に関して、私は個人的には 2 つの理由でこれを提案しません。
スクリーン リーダーや視覚障害のあるユーザーは、読み上げられるタイトル属性に依存しています。これが最初の目的であり、アンカー タグの理由であり、米国政府の Web アクセシビリティ セクション 508 の大きな側面であると私は信じています。この場合、スクリーン リーダーはすべてのタイトルを読み上げると思います。最初のもの、次に 2 番目のものは、視覚障害のあるユーザーにとって非常に混乱する可能性があります。異なるテキストを保持している場合、なぜ 2 つの esp が聞こえるのか理解できません。彼らが聞いているのは2つの異なるアンカーですか?もしそうなら、なぜ彼らは聞いた別のページをクリックまたは選択できず、(シナリオとして) 1 つの Web ページしか表示されないのですか?
タイトルの Google と他の多くの検索エンジンの両方に追加のテキストを配置すると、このアクションがブラック ハット seo と見なされ、その検索エンジンのリストからサイトが禁止される可能性があります (別名スタッフィング)。
個人的には、タイトル属性を本来の機能として保持し、Javascript または css を使用してそれを非表示にするのが最善の方法だと思います。これらの方法は、スクリーン リーダー、Web クローラー、および視覚障害のあるユーザーには影響しません。
私は jquery に夢中になりました... ;) ポートフォリオにはこれが必要でした: ライトボックスにはタイトルタグが必要でしたが、マウスオーバーにはありませんでした。これは私にとってはうまくいきました、ヒントをありがとう!
$(function(){
$("li.menu-item > a").hover(function(){
$(this).stop().attr('title', '');},
function(){$(this).stop().attr();
});
});
// Suppress tooltip display for links that have the classname 'suppress'
var links = document.getElementsByTagName('a');
for (var i = 0; i < links.length; i++) {
if (links[i].className == 'suppress') {
links[i]._title = links[i].title;
links[i].onmouseover = function() {
this.title = '';
}
links[i].onmouseout = function() {
this.title = this._title;
}
}}
私のコメントで質問にリンクされている最初のだまされた人からのAron Rotteveelの回答を引用するには (リンクと <abbr> のブラウザ ツールチップを無効にする)
最も簡単な方法は次のとおりです。
スリムボックスを使用した後、その下に次のコードを追加します。
$('*[title]').removeAttr('title');
それが役立つことを願っています..
titleSlimbox では属性を使用する必要はありません。このページの上部にある複数の画像の例を参照してください: http://code.google.com/p/slimbox/wiki/MooToolsAPI .
titleアンカーから属性を単純に削除し、アンカーのイベントを使用して呼び出す Slimbox 関数にtitleテキスト (画像の説明) を渡すことができます。openonclick
DOM 内のリンクをループして、title 属性を空の文字列に設定できませんでしたか。
var DOMlinks = document.links;
for(i=0;i<DOMlinks.length;i++){
DOMlinks[i].title = ""
}
空のjQuery ツールチップでオーバーライド/オーバーレイしますか?
jqueryを使用している場合は、次のことができます
$("a").mouseover(function(e){ preventdefault();} );
(テストはしていませんが)
David Thomas のアイデアを使用すると、jQuery を使用してより洗練されたソリューションを作成できます。
$('[title]').each(function(){
$(this).data('original-title', $(this).attr('title'));
}).hover(
function () {
$(this).attr('title','')
}, function () {
$(this).attr('title',$(this).data('original-title'))
});
jQuery ソリューション - これは簡単です。
var hiddenTitle; //holds the title of the hovered object
$("li.menu-item > a").hover(function() {
hiddenTitle = $(this).attr('title'); //stores title
$(this).attr('title',''); //removes title
}, function() {
$(this).attr('title',hiddenTitle); //restores title
});
別の質問で読んだように、「タイトル」属性を「データタイトル」に切り替えて、障害のあるユーザーのスクリーンリーダーで利用できるようにすることをお勧めします。Lokin が言ったように、障害のあるユーザーや障害のあるユーザーにとってサイトの使いやすさを維持することも、開発時に考慮する必要があります。
保証はありませんが、Slimbox の動作によっては、タイトルを含めて、ページ読み込みの数秒後に jQuery などを使用して削除できる場合があります。Slimbox が Title 属性にインデックスを付け、それを読み取った後にどこかに保存すると仮定すると、これが発生した後に安全に削除できる可能性があります。