HTML重构:战术篇

    上文书我们说到HTML重构:战略篇》,书接前言下面是战术篇,我们通过路线图来先有一个大体印象:

    way

  1. HTML规范化(Well-Formedness):语法正确
  2. HTML Validity :语义正确
  3. 不仅仅是语义正确:HTML元素的用法回归正途
  4. 正确还不够:关注你的内容
  5. 哪有个完啊:关注网站可用性(Accessibility)
  6. HTML规范化(Well-Formedness):语法正确

    规范化(Well-Formedness)XML中的概念,它指文档严格遵守约束。规范化的HTML文档结构是一个独一无二的树。HTML规范化是发挥XML工具强大功能的先决条件,可靠地DOM操作也为跨浏览器脚本的提供了一个很好的基础。不规范的页面在浏览器中可能表现千差万别,因为浏览器对错误的理解和处理是不一样的,而规范化的HTML让浏览器行为可预测。好处当然还有很多,比如SEO,快速加载… ...

    下面会有一些规范化的实践指南,作者给出了做这些重构的动机和利弊,大家可以根据自己的情况来选择。下面简单列一下:

  • 文档转为小写Change Name to Lowercase
  • 属性赋值添加引号Quote Attribute Value
  • 省略值不全Fill In Omitted Attribute Value
    例如:<input type="radio" value="debit" checked></input>
  • 空标签添加空属性Replace Empty Tag with Empty-Element Tag
    例如:<hr>变成<hr class='empty' />
  • 添加结束标签Add End-tag
  • 删除重叠Remove Overlap

例如:<strong><em>very important</strong></em>!

  • 文档编码转成UTF-8Convert Text to UTF-8
  • <转义为 &lt ;Escape Less-Than Sign
  • & to &amp;Escape Ampersand
  • Escape Quotation Marks in Attribute Values
    属性值内字符转义:" to &quot; ' to &apos;
  • 添加DOCTYPE声明Introduce an XHTML DOCTYPE Declaration
    <!DOCTYPE html
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "DTD/xhtml1-transitional.dtd">
    <html xmlns="
    http://www.w3.org/1999/xhtml">
  • 实体添加结束符Terminate Each Entity Reference
    &amp之类的实体要不全; 即:&amp;
  • 使用标准实体名Replace Imaginary Entity References
  • 添加根元素Introduce a Root Element
  • 添加XHTML的名称空间Introduce the XHTML Namespace

HTML Validity :语义正确

背景介绍:

HTML验证是通过与标准HTML规则进行比较的方式,分析HTML文档、标记出错误和非标准代码的处理过程。Web页面使用HTML进行渲染,而HTML本身采用了HTML规范作为其规则和标准。通过验证HTML代码穿越多重浏览器标准!

通过验证的文档,能够帮助浏览器反映创作者的意图。通过验证的站点会获得下列优势:页面行为可预测,浏览器兼容问题,未来的浏览器上也可以运行,更容易维护,等等

W3C在线验证地址:http://jigsaw.w3.org/css-validator/

通过验证并不是强制要求的,一个规范化但是没有通过验证的文档照样可以使用XML工具。如果你有特殊的应用比如MathXML,也可以忽略掉通过HTML验证。下面简单列出一些要通过验证要做的工作:

  • 清除非法标签Remove All Nonexistent Tags
  • 添加图像说明Add an alt Attribute
  • 嵌入标签换成对象标签Replace embed with object
  • 添加严格的文档类型声明Introduce a Strict DOCTYPE Declaration
  • Replace center with CSS
  • Replace font with CSS
  • Replace i with em or CSS
  • Replace b with strong or CSS
  • Replace the color Attribute with CSS
  • Convert img Attributes to CSS
  • Replace applet with object
  • Replace Presentational Elements with CSS
  • Nest Inline Elements inside Block Elements

不仅仅是语义正确:HTML元素的用法回归正途

一个Web开发者可能会有这样的忏悔:我错了,我一直都在用表格做布局,我的页面和样式杂糅在一起… …
我们可能把原因归结为历史,以前的开发就没有这种理念,历史是这样的么?

传统的HTML是基于SGML标准,这个标准诞生于Web之前,我们回顾一下:

SGML是1986年出版发布的一个信息管理方面的国际标准(ISO 8879)。该标准定义独立于平台和应用的文本文档的格式、索引和链接信息,为用户提供一种类似于语法的机制,用来定义文档的结构和指示文档结构的标签。其中Markup的含义是指插入到文档中的标记。标记分为两种:一种称为procedard markup,用来描述文档显示的样式;另一种称为descriptive markup,用来描述文档中的文字的用途。制定SGML的基本思想是把文档的内容与样式分开。

回顾历史我们应该像佟掌柜一样感慨了:“我错了,我真的错了”

如何将文档的内容和样式分开?作者同样给出了一些建议:

  • Replace Table Layouts
  • Replace Frames with CSS Positions
  • Move Content to the Front
  • Mark Up Lists as Lists
  • Replace blockquote/ul Indentation with CSS
  • Replace Spacer GIFs
  • Add an ID Attribute
  • Add Width and Height to an Image

正确还不够:关注你的内容

一个网站无论如何专业,而用户关注的是网站提供的内容,内容重于形式。纠正拼写错误Correct Spelling

  • 修复死链Repair Broken Links
    纠正拼写错误,中文网站中也是存在这个问题的,比如错别字
  • 稳定你的链接Move a Page
  • 去掉欢迎页面Remove the Entry Page
  • 隐藏Email地址防止Email爬虫Hide E-mail Addresses

<a href="[email protected]">E-mail Elliotte Harold<a/>
[email protected]
转换成:

<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;
elharo%40metalab%2Eunc%2Eedu">E-mail Elliotte Harold</a>
elharo&#x40;macfaq&#x2E;&#x43;om

哪有个完啊:关注网站可用性(Accessibility)

电影《追捕》最后真由美问杜秋:“完了吧”,杜秋黯然:“哪有个完啊”

HTML重构也要精益求精,规范的文档丰富的内容还不够,下面的话题就是网站可用性。网站可用性可以争论的东西很多,网站可用性方面的专著很多,这里只是冰山上的一点冰屑而已:

  • 图片上包含文字信息就使用文本Convert Images to Text
  • 添加字段说明Add Labels to Form Input
  • 字段命名标准化而不是Input1 Introduce Standard Field Names
  • 打开文本框的自动完成Turn on Autocomplete
  • 添加Tab顺序 Add Tab Indexes to Forms
  • 添加同一页面的跳转链接Introduce Skip Navigation
  • 使用H标签做头信息Add Internal Headings
  • 独一无二的内容尽量提前Move Unique Content to the Front of Links and Headlines
  • 输入框大一点Make the Input Field Bigger
  • 添加表格说明Introduce Table Descriptions
  • 添加缩略词说明Introduce Acronym Elements
  • 添加语言属性Introduce lang Attributes

<html xmlns="http://www.w3.org/1999/xhtml"
lang="en-US" xml:lang="en-US">

坚强2002和你一起回头再说...

你可能感兴趣的:(html,css,浏览器,XHTML,出版)