HTML5良好的设计理念

回顾HTML的发展历程,曾经出现了XHTML规范,但没有得到较好的发展。特别是XHTML2,对语法解析过于严格,严重地违反了著名的Postel法则:“发送时保守;接收时要开放”。
根据Postel法则,对自己发送出去的东西要严格要求,而对接受的东西则要放松限制。HTML5的设计理念就遵循了这个法则,同时HTML5也强调了其兼容性、实用性和互操作性。

一、 化繁为简
HTML5为了做到尽可能简化,避免了一些不必要的复杂设计。例如:DOCTYPE的改进;在过去的HTML版本中,第一行DOCTYPE过于繁杂;几乎没有几个人能够记得住,在实际的WEB开发中也没有什么意义。而在HTML5中就非常简单:

<!DOCTYPE html>

HTML5改进的方面如下:

  • 简化了DOCTYPE
  • 简化了字符集声明。
  • 以浏览器的原生能力代替脚本代码的实现。
  • 简单而强大的 HTML5 API

为了让一切变得简单,HTML5可谓是下足了功夫。为了避免造成误解,HTML5对每一个细节都有着非常明确的规范说明,不允许有任何的歧义和模糊出现。

二、向下兼容
遵循Postel法则,HTML5有着很强的兼容能力。在这方面,HTML5没有颠覆性的革新,允许存在不严谨的写法,例如:一些标签的属性值没有用引号括起来;标签属性中包含大写的字母;有的标签也没有闭合等等。然而这些不严谨的错误处理方案,在HTML5的规范中都有着明确的规定,也希望未在在浏览器中有一定的支持。当然对于WEB开发者来说,还是严谨一点比较好。
对于HTML5的一些新特性,如果旧的浏览器不支持,也不会影响网页的显示。在HTML5的规范中,也考虑到了这方面的内容。如果在HTML5中的input标签的type属性增加了很多类型,当浏览器不支持这些类型的时候,默认的会将其视为text,实现了优雅的降级。
三、支持合理存在的内容
HTML5的设计者们花费了大量的经理来研究通用的行为。例如,Google分析了上百万的页面,从中提取了DIV标签的ID名称。例如、;很多人都是这个样子标记导航区域的:

<div class="nav">
	<!-- 导航区域 -->
</div>

既然该行为已经大量存在,HTML5就会想办法去改进,所以就直接增加了一个nav的标签,用于导航区域!!!
四、解决实用性的问题
对于HTML5无法实现的一些功能,用于会寻求其他方法来实现,例如:绘图、多媒体、地理位置、实时获取信息等应用,通常会开发一些相对应的插件间接的去实现。HTML5的设计者研究了这些需求,开发了一系列用于WEB应用的接口。
HTML5规范的制定是非常开放的,所有人都可以获取草案的内容,也可以参与进来,提出宝贵的意见。因为开放,所以可以得到更加全面的发展。一切以用户需求为最终目的,用户需要什么,也就规范什么。所以,当你在使用HTML5的新功能时,会发现正是期待已久的东西!!
五、最终用户优先
这个设计理念本质上是一种解决冲突的机制。在遇到无法解决的冲突的时候,规范会把最终用户的诉求放在第一位。因此,HTML5的绝大部分功能都是非常实用的。HTML5规范的制定遵循如下的优先顺序:

用户 > 编写HTML的开发者 > 浏览器厂商 > 规范制定者 > 理念纯粹型

可见,用户与开发者的重要性要远远高于规范和理念。例如:有很多需要实现一个新的功能,HTML5规范设计者们会研究这种需求,并纳入会犯;HTML5规范了一套错误吃力机制,一遍WEB开发者写了不够严谨的代码时,接纳这种不严谨的做法。
所以,当你在使用HTML5时,会发现它比以前的版本友好多了。
六、通用访问
这个原则可以分成如下三个方面

  • 可访问性:HTML5考虑了残障用户的需求,以屏幕阅读器为基础的元素也已经被添加到规范中。
  • 媒体中立:HTML5规范不仅仅是为了某些浏览器而设计的。也许有一天,HTML5的新功能在不同的设备和平台上都能运行。
  • 支持所有的雨中:例如,在新的 <ruby> 元素支持在东亚页面的排版中会用到Ruby注释。