6


3

タイトルの代替テキストをもう一度繰り返したくないですか。 これは、任意のJavaScript、jquery、CSSソリューションで可能ですか? またはalt = textを表示してtitle = texrを有効にし、ツールチップとして無効にできる解決策はありますか。

6 Answer


25


`alt`テキストは画像の*代替*表現のためのものです。 `title`テキストはツールチップ用です。

この点に関してIEの振る舞いは*不正確*であり、Firefoxは決してそれを実装しません。 (Bugzillaデータベースのバグは #25537です。これは検証済みのWONTFIXです。)

それだけでなく、https://web.archive.org/web/20090624020206/http://connect.microsoft.com/IE/feedback/ViewFeedback.aspx?FeedbackID=334225 [Microsoftはその動作が正しくないと認めていますそして、* IE 8はもうツールチップとして `alt`テキストを表示しません。

そのため、ツールチップとして表示されている `alt`テキストに頼らないでください。 代わりに `title`を使ってください。


19


これを行う正しい方法は、* title *属性を使用することです。

例えば

...content...

"alt"属性は、画像要素が使用されるときに "代替"テキストを提供するようにのみ設計されています(しかしユーザーには利用できません…​ 例えば 盲目のユーザー、またはテキストベースのブラウザを使用しているユーザーなど)


4


scunliffeが言うように、これを行う正しい方法は `title`属性にあります。 それはIEの非標準的な振る舞いに頼るよりも標準に従うほうが良いです。 title属性は画像を見ることができるユーザーのためのツールチップのためのもので、alt textは見ることができないユーザーのためのものです(彼らはタイトルを見ることもできますが)。 これが本当にあなたを悩ませているなら、あなたはただあなたのクロスブラウザ効果を与えて、あなたのすべてのイメージのためにalt属性にtitle属性を設定するためにJavaScriptを使うことができます。 :D

このようなもの:

var images = document.getElementsByTagName( "img"); for(画像内のvarアイテム){item.title = item.alt; }

OR(W3 DOMスタイル)

(画像内のvarアイテム){item.setAttribute( "title"、item.getAttribute( "alt")); }

OR(jQuery)

$( "img")。each(function(){this.attr( "title"、this.attr( "alt"));}

(まだこれらのいずれもテストしていないので、わずかな修正が必要になるかもしれません)


1


ユーザーはFirefoxで高度な設定パラメータ browser.chrome.toolbar_tips`を false`に設定することで `title`属性のツールチップを抑制することができることに注意してください。


1


この jQuery tooltipスクリプトは、タイトルの内容を取得してツールチップに表示します(HTMLフォーマットを含む)。 それは、代替テキストを表示するというIEのバグを修正するものではありませんが、ページがロードされた後に代替属性をクリアするためのスクリプトを追加することができます。しかし、前述したように、これはドキュメントリーダーが設計どおりに動作することを許可しないので、悪い考えです。


0


Gordonの答えは役に立ちましたが、jQueryが機能しなかったのは、 `this`がjQueryセレクタのオブジェクトである必要があるからです。

jQuery(" img ")。each(function(){jQuery(this).attr(" title "、jQuery(this).attr(" alt "))});

`.each()`関数を閉じるための `)`もありませんでした。