HTML5 需要代言人来推动其发展。有很多人都承担了这个角色,在 Mozilla,我们认为通过一系列访谈和短视频向大家介绍其中的一些人是一个好主意。形式很简单——我们向专家发送 10 个问题让他们回答,然后进行简短的视频访谈,让他们自我介绍并详细阐述一些答案。
今天我们要重点介绍的是 约翰·奥尔索普,他是《使用 Web 标准进行开发》的作者,也是 Webdirections 会议的组织者。
正如您将在视频中看到的,约翰从不拐弯抹角,并且毫不犹豫地传播关于整个网络以及独立于技术的积极信息。他从网络连接还意味着忍受哔哔声开始就参与其中,并花了很多时间构建软件和在线生成器,以便人们能够为网络构建内容。
他一直对 HTML5 语义改进的缺乏直言不讳,并且每次有人声称移动设备上的原生应用总是优于基于 Web 标准的应用时,他都会毫不犹豫地站出来说话。
视频访谈
您可以在 此处任何支持 HTML5 的设备上观看视频(由 vid.ly 提供)。
约翰·奥尔索普的 10 个问题
1) 您已经参与互联网很长时间了,见证了很多事物兴衰。是什么让您相信 HTML5?
有趣的是,我可能被一些人认为是反对 HTML5 的人。我曾经 对 HTML5 中的语义提出过批评,包括对一些特定决策的批评,更重要的是对 HTML5 中扩展语义的方法的批评。
我对 HTML5 的兴趣,从广义上讲(包括 CSS3、与 DOM 相关的扩展、地理位置、DAP 等),在于看到网络成为一个越来越强大的应用程序平台。
在过去 20 年左右的时间里,我们已经看到网络彻底改变了出版、新闻和其他本质上基于文本的媒体。这一新兴的技术一代有望彻底改变更多领域。
2) 在您的理解中,HTML5 中哪些方面仍然需要调整?关于规范的当前状态,您有什么不满意的地方?
好吧,我仍然认为,在以任何真正有用的方式提高语言的语义丰富性和表达能力方面,我们已经错失良机。而且遗憾的是,我并没有看到有任何进展。
我还认为 HTML 需要向 CSS 学习——CSS2,一个庞大的规范,越来越陷入细枝末节,未能最终定稿也成为了一种笑谈。
在 CSS3 中,我们看到了规范的模块化,创新速度更快,实验更多。事实上,我认为正是实验性的 CSS3 功能点引发了围绕我们所说的 HTML5 的兴奋,远远超出了新的 DOCTYPE 和 header 元素等。
HTML5 规范的核心实际上是单一的,并且正在遭受与 CSS2 相同的困境。我们甚至看到了类似的轻率的笑话,说它将在 2020 年完成,这会影响许多开发人员是否会采用一些被认为(错误地,尽管在某种程度上可以理解)尚未准备好用于商业用途的东西。HTML5 初始单一规范的一些方面已经模块化,而像地理位置这样的相关技术,通常被认为是 HTML5 的一部分,一直都是它们自己独立的小型活动。
所以,如果有什么的话,我希望看到 HTML5 规范的模块化程度越来越高。
3) 您似乎目前花了很多时间构建代码生成器。 CSS 渐变生成器 和 音频嵌入生成器 只是其中两个。人们经常使用它们吗?为什么将 Firefox 和 Webkit 分开,而不是同时生成两者?
澄清一下,我所有新的工具(音频、视频和一些正在开发中的其他工具),以及对现有工具的升级(线性渐变和径向渐变)都是跨浏览器的——它们可以在所有支持其所关注技术的浏览器中工作,并为所有现代浏览器创建代码(在某些情况下,它们甚至还不支持特定功能——例如 Opera 和径向渐变)。
在过去(其中一些工具现在已经 2-3 年了),我决定只专注于那些支持特定技术的浏览器。我为渐变工具创建了单独的 Firefox 和 Webkit 版本,因为它们支持截然不同的渐变模型,这使得使用单个界面生成渐变的两个单独版本变得混乱,并且基本上不可能。
需要注意的是,这些工具的主要动机是帮助人们学习这些各种功能的概念和语法。我认为许多 CSS3 功能实际上非常复杂,并且以更传统的文本方式学习它们变得越来越困难。例如,即使您不知道 CSS 渐变的工作原理,也可以使用我的工具为所有现代浏览器生成径向渐变或线性渐变,只需几秒钟。但是我写的两篇关于渐变的文章加起来总共有近 10000 字,还有二三十张插图。
很多人使用它们吗?——它们当然产生了相当多的流量。它们确实很受欢迎——而且我认为重要的是,人们非常欣赏它们——即使是非常知名的 CSS 专家也告诉我他们非常欣赏这些工具的存在,我知道其他人也使用它们来实际测试浏览器实现。所以我认为它们非常值得去做。
最后我想说的是,我还构建它们是为了让我自己学习——我已经为 Web 开发人员开发工具 15 年了,从 CSS 最早的时代开始,我发现了解一项技术(及其和你的局限性)的最佳方式是构建一个工具来使用它。
4) 您还是一位会议组织者,并举办研讨会。目前与新的开放 Web 技术相关的热门话题有哪些?您是否想涵盖更多尚未被要求的内容?
新的 CSS3 功能肯定引起了很多关注——动画、渐变等炫酷效果等等。而且我们确实看到越来越多的关注点集中在与应用程序开发相关的技术上——离线 Web 应用程序、地理位置、更广泛意义上的 JavaScript。从某种意义上说,我认为很多传统的 Web 设计已经“完成”。存在被广泛接受和理解的标记实践、模式和技术。我们越来越多地利用页面架构模式来构建页面和站点设计。但相比之下,Web 应用程序开发领域真的是一片未知的领域。
5) 让你恼火并 让你写博客 的一个万无一失的方法是说,设备上的原生体验总是优于使用开放 Web 技术。不过,如果从最终用户的角度来看,情况似乎确实如此——原生应用程序中的内容看起来更流畅。当原生应用程序及其赚钱的应用商店具有如此大的吸引力时,我们如何才能让基于标准的开发对开发人员更有吸引力?我们如何打破开放技术应用程序质量较差的观念?
这个问题涉及很多方面,所以让我先说明我的基本观点。我认为原生应用程序天生看起来更好、用户体验更好等等的说法是胡说八道,仅仅因为它们是用 Objective-C 构建的(当人们说原生时,他们几乎总是指他们认为是用 Cocoa Touch 构建的 iOS 应用程序)。
您观察到许多“原生”应用程序比 Web 应用程序更流畅等等是合理的。我认为使用 CocoaTouch 为 iOS 创建一个千篇一律的原生应用程序确实*比较*容易,而且苹果自 NeXT 时代以来一直在开发的优秀工具也功不可没。但同样重要的是要注意,对于许多类别的应用程序,例如游戏,这些应用程序使用 Unity3D 等技术,所以在某种意义上,人们在 iOS 上使用的许多最成功、最引人入胜的应用程序并不是原生的。我认为这实际上归结为工具——对于使用 Web 技术开发应用程序,这些工具总体上远不如苹果的工具那么先进。对我来说,这代表着一个机会。
至于巨额财富的诱惑——它也是那些被反复提及的神话之一。事实上,它甚至在苹果 App Store 出现任何应用程序之前就已经开始了!现在我们已经看到了几年的活动,我们学到了什么?毫无疑问,有一些大型的赢家——但所有迹象都表明,几乎没有人通过在应用商店销售应用程序来赚钱。
整个行业都在进行应用程序发现,所以 App Store 曾经承诺的可以让小公司更容易被用户发现的优势并没有实现。
一旦你开始客观地查看任何类型的数字,就很难看到构建原生 iOS 应用程序并在苹果 App Store 上销售的商业案例,而不是简单地把这笔钱花在拉斯维加斯度周末。你会少浪费很多时间。
最后,我们可以解决 Web 技术应用程序被认为质量较差的挑战的最佳方法是继续构建质量更高的应用程序。有很多这样的应用程序——而且你通常不知道,因为它们被包装成原生应用程序。
6) 我现在担心展示案例。最新的“Chrome 实验”(与 OK Go 合作的 交互式视频)甚至在我的配备 Chrome 的 Macbook Air 上都无法运行,并且让我的风扇发出飞机起飞的噪音(讽刺的是,它在我的 Chromebook 上也无法运行)。在我看来,有一种危险的趋势,即实验性网站期望特定的浏览器甚至硬件。我们是否正面临着新的“最佳浏览效果为 IE6 和 1024×786 分辨率”的时代?
我理解这种担忧,但认为我们没有看到,也不会看到回到那些糟糕的旧日子的情况。“最佳浏览效果为”曾经出现在许多生产网站上。“实验”就是实验——处于技术的最前沿,将技术推向其能力的极限。所以,我喜欢看到这些实验。我们自己也参与了一些。我们通常用开场片头来开始我们的会议(我们很久以前就开始这样做,但现在我们看到很多人都在这样做)。在过去一年左右的时间里,我们一直在委托人们使用 Web 技术来创建这些序列——而且我们对他们针对非常非常特定的设置进行设计毫无问题——毕竟,它是在为非常特定的情况而设计的。
我老实说认为我们不会回到“最佳浏览效果为”的时代。开发人员和浏览器制造商已经吸取了教训,知道这对每个人来说都是多么糟糕。
7) 虽然许多人都在使用炫酷的 CSS3 过渡、动画、3D 变换、WebGL 和视频,但在我看来,HTML5 的语义和表单却被遗忘了。更重要的是,告诉人们需要 section、article 和 time 元素,而没有浏览器使用它们来创建大纲或进行联合发布,这似乎是一种欺骗。您认为这种情况会发生变化吗?我们如何才能让人们更真实地感受到这一点?我们是否过于频繁地使用了“使用这种或那种标记,因为这是正确的事情”的论点?
我倾向于认为使用各种新的 HTML5 元素是一种迷信行为。我并没有看到任何实际的好处,而且仍然存在遗留浏览器挑战(IE6 和 7)。而且我怀疑是否会有什么特别的好处——最终,通过说“这是一个部分”、“这是一个导航”等等,我们提供的额外信息非常少。如果语义更丰富,那么浏览器开发人员、搜索引擎开发人员等等可能会利用更丰富的标记做更多事情,但正如我提到的,我认为我们已经得到了我们拥有的。
至于表单,现在,这里有很多更实用的内容,现在和将来都会用到。我们可以立即使用 number、email 和 url 等新元素以及 required 等属性(我自己也在使用),因为它们在旧版浏览器中可以很好地回退。
事实上,在我完成一个关于动画的小项目之后,这是我的下一个重点领域!HTML5 表单内容太棒了!
8) 让我们谈谈可访问性。我感觉现在的可访问性领域落后太多。虽然 HTML5 和 jQuery 告诉人们“少写代码,实现更多功能”,但 ARIA 角色似乎冗长且难以添加。移动和触摸界面的许多需求与残疾人的需求重叠。然而,在我看来,a11y 界对新技术的兴趣不足,因为它尚未得到证实。您是否觉得很难将两者联系起来?
我离可访问性专家还差得很远,所以在这个特定领域,我可能没有什么真正有价值的内容可以补充。
ARIA 角色是我用来丰富 HTML5 语义的方法,而不是像目前那样添加少量新元素。
ARIA 角色有两个方面。首先是 role 属性,最初在 XHTML 中引入,作为为元素添加有关其作用的额外语义信息的一种手段——该元素正在扮演的角色。例如,我们有一种常见的标记模式,即 div 元素扮演页面标题的角色。我们可以使用 role 属性对其进行标记,如下所示 <div role=”header”>
role 实际上与 ARIA 完全分开。ARIA 为 role 属性带来的东西是一个词汇表,即 role 的一些可能值,我们可以用它来为我们的页面添加更多语义信息。但是您并不局限于 ARIA 的词汇表,实际上可以定义您自己的词汇表。ARIA 的词汇表实际上比 HTML5 的词汇表要广泛得多。
我认为使用属性和值来提供有关元素的附加信息的标记模式非常知名,并且被开发人员广泛使用——谁不或多或少地这样使用 class 呢?
因此,我认为 role 对开发人员来说并不是一个特别难以采用的挑战。
然后,role 具有一个优势,即您可以从 IE7 及更高版本的所有浏览器中使用 CSS 进行样式设置,并且无需 JavaScript。对于 HTML5 元素,我们也需要针对 IE7 和 IE6 使用 JavaScript。
需要注意的是,ARIA 词汇表是用于富互联网应用程序的通用词汇表,并非专门为使用 HTML 开发的应用程序设计的。遗憾的是,ARIA 词汇表和 HTML5 语义之间并不完全匹配。
我想,未来网络可访问性的最大挑战在于,虽然使基本上基于文本的静态内容可访问并不算太难,并且现在已经得到了很好的理解,但使应用程序、动态媒体和丰富的交互式内容可访问则是一个更为重大的挑战。
9)在我看来,现在是时候停止进行展示和演示,而是开始记录人们可以自己做些什么,并使用开放式网络技术构建真正的产品了。
我喜欢展示、演示和概念验证,但我同意,我也认为现在是时候真正引起人们对现实世界示例的关注了。我想,通过我的文章和工具,我试图做的是帮助开发人员今天采用这些技术。许多其他人也在这样做。
9)(续) 遗憾的是,在会议方面,舞台上展示的很多东西都是为演讲而写的演示。您发现了什么例外情况吗?我记得一些 @media 有一个很棒的演讲,讲的是 Blogger 如何通过转向 CSS 布局来节省资金。我们需要更多像这样的有确凿证据的演讲。您是否积极尝试寻找现实生活中的展示案例?
绝对的——我们的目标之一是让参与者身体力行。我们积极寻找那些超越观点的人,他们可以根据项目经验进行发言,展示成功案例,谈论他们面临的挑战以及解决这些挑战的方法。
10)下一个重大挑战是什么?您希望网络走向何方,浏览器制造商接下来应该就哪些方面达成一致?
那些年纪够大的人会记得,突然之间,所有东西都配备了 LED 然后是 LCD 屏幕——曾经是模拟的、带有机械刻度盘等的东西,比如微波炉,突然有了显示屏,用于显示时间、温度设置等等。
我认为,比我们意识到的要快得多,高分辨率触摸屏将无处不在,几乎出现在每台设备上。
并非所有这些设备都一定会连接到网络,但其中许多将连接。但它们的 UI 本质上将是浏览器技术。
因此,将会有巨大的机会使用 HTML、CSS、JavaScript 和相关的网络技术为各种设备开发用户体验。
我们看到的另一个非常重要的趋势是,虽然朝着这个方向迈出了蹒跚的步伐,但我认为这将真正成为技术使用范式转变,那就是“开机即网页”。
回顾 3 或 4 年前。您笔记本电脑的硬件、芯片、主板、RAM 速度是一件大事。人们真的很在乎。他们会炫耀这些东西!苹果在 12 年左右的时间里经历了 2 次极其复杂且昂贵的 CPU 架构变更,原因就在于此。现在几乎没有人关心了。硬件不再重要了。它已经商品化了。
下一个要商品化的层次将是操作系统。现在,在移动领域,更不用说平板电脑领域,iOS 占据如此主导地位,这似乎难以想象,但对我来说,这是一个非常过渡的时期。网络将使操作系统商品化。ChromeOS 是一个商业化的例子。Boot to Gecko,在我看来,Mozilla 很早就应该开始着手这项工作,是一个更实验性的例子。
我们目前称之为 HTML5 的技术将成为运行在这些设备上的应用程序的构建块。
这个难题中尚缺失的部分是新兴的设备 API 标准,它将硬件和系统 API(如相机、通讯录、日历、消息服务(例如短信))公开给浏览器。我们已经看到对这方面的一些支持,例如 Android 3 设备中的相机。我相信这也是“Boot to Gecko”项目的重要组成部分。
您是否认识我应该为“HTML5 人物”采访的人?请在 Twitter 上告诉我:@codepo8
关于 Chris Heilmann
HTML5 和开放网络的布道者。让我们来修复它!
6 条评论