在HTML元素中,毫无疑问图像比文本具有更丰富的表现形式,比如文章的标题,图片型的往往比纯文本大字型的要更加美观和醒目。但是这过程中要面对的一个问题是:一方面要将图像展示给用户,另一方面又要顾及搜索引擎和屏幕阅读器的需要保留文字信息,这就引出了图像替换的问题。图像替换的概念,就是可以像平常一样将文本添加到文档中,然后使用CSS隐藏文本并在它的位置上显示一个背景图像。这样的话,搜索引擎仍然可以搜索HTML文本,而且如果禁用CSS,文本仍然会显示。
在各种缺陷暴露出来之前,这个概念看起来非常棒。但是,一些比较流行的图像替换方法对于屏幕阅读器是无效的,而且如果关闭图像但是打开CSS,就会出现内容缺失。因此,许多CSS作者停止使用图像替换方法,恢复为使用一般文本。虽然我也主张尽可能避免图像替换,但是仍然相信在某些情况下它是合适的,比如由于公司品牌策略的要求,需要使用特定的字体。为此,你应该很好地掌握各种技术并且了解它们的局限性。
1.经典的FIR方法
Revised Image Replacement
由Todd Fahrner开创的FIR是最早且可能最流行的图像替换技术。对这个方法进行解释是因为它在历史上具有重要意义,而且它是最容易理解的方法之一。但是,这个方法有一些严重的可访问性问题,因此应该避免使用。
它的基本概念非常简单,把要替换掉的文本放在span标签中,然后将替换图像作为背景图像应用于标题元素,并且将span的display值设置为none,从而隐藏span的内容。
这个方法似乎很有效,但是最后一个规则会造成问题。许多流行的屏幕阅读器会忽略那些display值设置为none或hidden的元素。因此会完全忽略这个文本,造成严重的可访问性问题。所以,这种试图改进站点可访问性的技术实际上产生了相反的效果。
下面列举的方法中,设置背景和隐藏文字的原理并无很大的差异,只不过使用的CSS属性有所不同,比如有的用display,有的用margin或者text-indent,如果对这些属性不是很了解,可以参考入门教程中的相关资料,本文中对具体的代码功能就不一一解析了。
2.单像素图片方法
Revised Image Replacement
Darvas提出的这种方法,基本原理与FIR相同,改进的是它还通过添加一张单像素GIF透明图像来加载ALT文本;
不足:增加了一个额外的无意义标签。
3.Radu方法
Revised Image Replacement
Radu的方法是通过设置大负值margin来实现文本隐藏,并且在IE5.0中有效;
不足:“图像关闭/CSS开启”的情况下无效。
4.Leahy/Langridge方法
Revised Image Replacement
Leahy/Langridge的方法不需要额外的span标签,并且理论上通过设置overflow属性为hidden解决了其可访问性的问题;
不足:“图像关闭/CSS开启”的情况下无效,在IE5中需要盒模型纠正。
5.Phark方法
Revised Image Replacement
Phark的方法利用text-indent来隐藏文本,在JAWS阅读器上验证通过了其有效性;
不足:“图像关闭/CSS开启”的情况下无效,IE5中无效。