HTML small标记使用技巧

类似于<em></em>之类的短语元素,既可以改进文档结构,同时也保留了预期的视觉样式。但<small></small>在平时应用中不是很常见,第一眼的影响是淘宝UED是不是在这个小问题上疏忽了?

关于<small></small>,网上搜索下来的结果也很零碎,有的说不建议使用,也有的在废弃标签里没有提到它的名字。好在《精通HTML 语义、标准和样式》一书中对此作了详细的解释。

<small>和<hr><pre><sup><sub><i><b>等一帮兄弟一样,被定义为表示性元素,W3C的说法是:为能够简单地指定字体信息的元素,无语义。例如:<b>标记,是毫无疑问要用<em>或<h3>替代;但<i>标记,很难说在想要将页面内的一段外文斜体表示的时候(外文显示的惯例)直接使用它有什么不对,因为当使用者用<span class="">……</span>去表现一段斜体的话,空间占用要比前者多了很多。

而更为复杂的<big><small>,该书的作者Paul Haine并没有给出一个明确的答案,从理论上说,它们是纯粹的表示性元素,应该使用css去替代它们。但行业内的一些有分量的人物(Joe Clark)却建议使用它们,以取得“按照重要性加权”的视觉效果。讨论的结果是:有得必有失,要具体问题具体分析。

回到淘宝的这一段代码中,<small></small>标记之中是一段跳过导航的链接:<a class="invisible" href="#Content">跳过导航及工具栏</a>。我认为,淘宝UED在思考之后采用了和<i>标记一样的思路,与其定义一个<span class="skipNavigation"></span>占用大量html空间,不如直接使用<small>。更重要的一点是跳过导航的功能就是为用户,准确的说是为残疾人用户在使用朗读浏览器或者无css样式定义的情况下使用的,简洁的<small></small>可能更符合标准化的精神。

唯一的一点疑问是,css裸奔下的<small>的确是以下一号的字体显示了其非重要性的本意。但对于盲人用户,针对朗读浏览器,是否将<small></small>改变成<h3></h3>更优化了用户体验?

HTML small标记使用技巧