當瀏覽器賣主扭曲了標準並且自顧自的不按規則去做一些事,他們可能會造成一些問題,或者至少產生了混淆。例子之一就是一些瀏覽器處理alt屬性(一般會被錯誤的稱為alt標籤)的方式,例如擁有大量使用者的Windows的IE瀏覽器。
取代文字(alt text)並不是用來做提示(tool tip),或者更確切的說,它並不是為圖片提供額外說明訊息的。相反地,title屬性才應該用來為元素提供額外說明資訊。這些資訊在大部分影像瀏覽器裡顯示為提示(tool tip),雖然製造商可以任意採取其他方式渲染title屬性的文字。
很多人看來對這兩個屬性感到迷惑(最近這個問題在Web Standards Group郵件列表裡變多了), 所以我寫下我的想法,如何去用它們。
alt屬性
為無法顯示影像、表單或applets的使用者代理程式(UA),alt屬性用來指定替換文字。替換文字的語言由lang屬性指定。
來源:How to specify alternate text.
Alt屬性(注意是“屬性”而不是“標籤”)包括替換說明,對於圖像和圖像熱點是必須的。它只能用在img、area和input元素中(包括applet元素)。對於input元素,alt屬性意在用來替換提交按鈕的圖片。如:<input type="image" src="image.gif" alt="Submit" />.
使用alt屬性是為了給那些不能看到你文件中圖像的瀏覽者文字說明。這包括那些使用本來就不支援圖像顯示或圖像顯示被關閉的瀏覽器的用戶,視覺障礙的用戶和使用螢幕閱讀器的用戶。替換文字是用來替代圖像而不是提供額外說明文字的。
在寫替換文字之前仔細想想,保證那些文字確實為那些看不到圖像的人提供了說明訊息,並且在上下文中有意義。對於那些裝飾性的圖片可以使用空的值(alt="",引號中間沒有空格),而不是使用不相關的替換文字例如“blue bullet”或“spacer.gif”。不要忽略它,如果你忽略了,那麼一些螢幕閱讀器會直接閱讀圖像檔案的檔案名,那些文字瀏覽器,例如Lynx會顯示圖像檔案的檔案名,而那對於你的瀏覽者就沒什麼用了。
包含文字的圖像圖片設定替換文字是最簡單的,圖像中包含的文字一般來說就可以作為alt屬性值。
至於替換文字的長度,看看WCAG 2.0(網站內容可用性指南2.0)是怎麼說的:
Alt屬性值得長度必須少於100個英文字元或使用者必須保證替換文字盡可能的短。
我把它理解為「盡可能短,盡需要長」。
即使你想讓它顯示為提示(tool tip),也不要給文字元素使用alt屬性,這並不是它的用法。我至今所知,那樣做僅能在Windows的IE瀏覽器和古老的Netscape 4.*(windows版本)有效。沒有一個Mac的瀏覽器會將它顯示為提示(tool tip)。
當瀏覽器顯示替換文字為提示(tool tip)後,那些錯誤使用alt屬性的行為也受到了鼓勵。有些人開始寫無意思的替換文字,因為他們傾向於認為它是一個額外的說明訊息,而不是不能顯示圖像的替換。其他人可能不想讓提示(tool tip)出現,然後就完全忽略了寫alt屬性值。這些錯誤的做法,都給那些無法看到圖像的瀏覽者造成了困難。
額外的說明資訊和非本質的資訊請使用title屬性。
title屬性
title屬性為設定該屬性的元素提供建議性的信息。
來源: The title attribute.
title屬性可以用在除了base,basefont,head,html,meta,param,script和title以外的所有標籤。但是並不是必須的。可能這正是為什麼很多人不明白何時使用它。
使用title屬性提供非本質的額外資訊。大部分的視覺化瀏覽器在滑鼠懸浮在特定元素上時顯示title文字為提示訊息(tool tip),然而這又由製造商來決定如何渲染title文字。有些瀏覽器會將title文字顯示在狀態列裡。例如早期版本的Safari瀏覽器。
title屬性有一個很好的用途,即為連結添加描述性文字,特別是當連接本身並不是十分清楚的表達了連結的目的。這樣就使得訪客知道那些連結將會帶他們到什麼地方,他們就不會載入一個可能完全不感興趣的頁面。另外一個潛在的應用是為圖像提供額外的說明訊息,例如日期或其他非本質的資訊。
title屬性值可以比alt屬性值設定的更長。不過要注意的是,有些瀏覽器會截斷過長的文字(例如工具提示或其他)。例如Mozilla核心的瀏覽器只能顯示最先的60個字元。這被認為是一個Mozilla bug,這是你要注意的。
使用前先考慮
我的建議是保證替換文字(alt text)精要。在大多數的應用程式裡,都應該留白,alt=""(注意兩引號中沒有空格)。 想想那些圖像,為那些瀏覽者提供了什麼樣的信息,你應該用什麼文字去描述它,或者你該為看不到圖像的人提供什麼信息? 將替換文字寫成「照片:站在大樓外的CEO,穿著灰色西裝和黑色領帶,望著天」對於看不到圖像的人真的有幫助?如果你覺得是,那你就寫吧。在很多情況下,我覺得讓替換文字留白比較好。
對於title屬性,比較難於給予嚴格的使用說明。我大部分用在那些不能自我釋意的連結上,例如同一頁上的相同的連結文字,不同的連結頁面。有時候也為一些按鈕或表單元素提供更多的說明文字。
更長的描述
當一張圖片需要更長的描述,而超過alt屬性的限制,那麼還有一些選擇。
longdesc屬性可以用來提供連結到一個包含圖片文字描述的單獨頁面。這意味著把瀏覽者連結到另外的頁面,這可能會造成理解上的困難。另外瀏覽器對於longdesc屬性的支援也是不一致的,而且不是非常好。
longdesc屬性可以包含一個連結到目前文件的其他部分(錨點)來取代連結到另外的頁面。在Accessibility footnotes, Andy Clarke很好的解釋說明瞭如何應用。
描述連結(D links)可以用來補充longdesc。一個描述連結就是一個常規的鏈接,連接到含有替換文字的頁面。該連結被置於圖像的旁邊,並且在所有瀏覽器中都是可是的。對於它的有效性人們有很多不同意見,我的個人意見不大喜歡這個注意。 WCAG也是,在他們的工作草案HTML Techniques for WCAG 2.0中,描述連結是被「不贊成」的。
如果對圖片的長的描述對於任何瀏覽者都有用,那麼你得考慮讓它簡單的顯示在同一個文檔裡面,而不是鏈接到其他頁面里或者藏起來。這樣每個人都可以閱讀。這是一種簡單低技術含量的方法。