作者:JunChen 2005-5-23 12:00:35
原文:http://www.456bereastreet.com/archive/200412/the_alt_and_title_attributes/
翻译:JunChen
首发:http://blog.handsbrain.com/junchen/archive/2005/05/21/3355.aspx
版权:本文版权归译者Junchen所有,转载请先联系译者。
当浏览器卖主扭曲了标准并且自顾自的不按规则去做一些事,他们可能会造成一些问题,或者至少产生了混淆。例子之一就是一些浏览器处理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属性意在用来替换提交按钮的图片。比如:.
使用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中,描述連結是被「不贊成」的。
如果對圖片的長的描述對於任何瀏覽者都有用,那麼你得考慮讓它簡單的顯示在同一個文檔裡面,而不是鏈接到其他頁面里或者藏起來。這樣每個人都可以閱讀。這是一種簡單低技術含量的方法。
更多資訊
想了解更多關於alt,title和longdesc屬性?看這裡:
Guidelines on alt texts in img elements
Writing good ALT text
Accessible alternatives
Accessibility footnotes
The image problem
Title Attribot – TUserTake
The title attribute