2009-11-14 39 views
5

我不想重複標題中的文字嗎?這是可能的任何JavaScript,jQuery的,CSS解決方案?或任何可以禁用顯示alt =文本並啓用title = texr並作爲工具提示的解決方案?有沒有一種方法來顯示alt =「文本」作爲Firefox中的鼠標懸停工具提示,就像IE自動執行的一樣?

+7

這是Internet Explorer將替代文本顯示爲工具提示的一個錯誤。 (微軟可能會稱這是一個功能,但替代文本僅用於在圖像無法顯示時顯示。) – Gumbo 2009-11-14 17:22:51

回答

23

alt文本用於替代表示圖像。 title文本是爲工具提示。

IE的行爲是不正確在這方面,Firefox永遠不會實現它。 (在Bugzilla的數據庫中的錯誤是#25537,這驗證WONTFIX。)

不僅如此,但即使Microsoft has admitted that their behavior is incorrect,並IE 8不顯示alt文本提示了

所以不要依靠alt文本顯示爲工具提示。改爲使用title

+0

我知道,但我不想再次重複ALT文本作爲標題文本,並希望顯示在兩個瀏覽器鼠標的工具提示。 – 2009-11-14 17:03:37

+4

@Jitendra:不管怎樣,你不應該爲'title'重複'alt'文本。 'alt'文本應該是你希望用戶看到他們是否**不能看到圖像,而'title'應該是工具提示。如果你在HTML中定義了「alt」和「title」,IE將使用'title'作爲工具提示。所以如果你只想爲所有現代瀏覽器使用一個元素,可以使用'title',而不是'alt'! – 2009-11-14 17:08:41

19

正確的方法是使用標題屬性。

例如

<div title="This is your tooltip">...content...</div> 

的「alt」屬性僅設計提供「替代」文本時的圖像元素被使用(但不提供給用戶...例如盲人用戶,或用戶提供基於文本的瀏覽器等。 )

+0

您剛剛說過,盲人用戶無法看到圖像,但他們可以看到指定的Alt文本? :o – 2009-11-14 17:12:30

+5

@Rakesh Juyal:盲人用戶將擁有屏幕閱讀軟件。屏幕閱讀器可以閱讀**文字**,但不能閱讀圖像。 – 2009-11-14 17:15:27

+0

@Daniel:gr8我從來不知道它thanx +1 – 2009-11-14 17:29:48

4

就像scunliffe說的那樣,正確的方法是在title屬性中。它更好地遵守標準,而不是依靠IE的非標準行爲。請記住,title屬性是爲可以看到圖像的用戶提供的工具提示,alt文本適用於不能(雖然他們也可以看到標題)的用戶。如果這真的讓你感到迷惑,你可以使用javascript來爲所有圖片設置標題屬性爲alt屬性,給你一個跨瀏覽器的效果。 :d

事情是這樣的:

var images=document.getElementsByTagName("img"); 
for (var item in images) { 
    item.title = item.alt; 
} 

OR(W3 DOM風格)

for (var item in images) { 
    item.setAttribute("title", item.getAttribute("alt")); 
} 

OR(jQuery的)

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

(沒有測試任何這些尚未,所以可能需要稍作修改)

+5

重複使用'title'屬性的'alt'文本對於可訪問性來說是個壞主意。事實上沒有相同的文本適用於兩者的情況。 – 2009-11-14 17:11:50

+0

這是我寫這個答案時的第一點陳述之一,但我想不出一個好例子。你能提供一個嗎? :D – 2009-11-15 16:00:02

+0

這些都不起作用 – 2010-02-12 08:25:09

1

請注意,用戶可以通過將高級配置參數browser.chrome.toolbar_tips設置爲false來抑制Firefox中的title屬性工具提示。

+0

但是你根本沒有得到任何工具提示,這不是OP想要的。 – 2009-11-14 17:20:42

1

jQuery tooltip腳本將採用標題的內容並將其顯示在工具提示(包括HTML格式)中。雖然它並不修復顯示替代文本的IE錯誤,但可以在加載頁面後添加一些腳本來清除alt屬性;但如前所述,這是一個壞主意,因爲它不會允許文檔閱讀器按照設計工作。

+0

我不想從源代碼中刪除替代文本。我想在所有瀏覽器中使用標題文本作爲工具提示 – 2009-11-15 10:33:41

0

戈登的回答是有益的,但jQuery的不工作的原因是因爲this需求是一個jQuery選擇的,像這樣的對象:

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

有人還缺少)收出功能.each()

相關問題