全局属性
有几个新的全局属性,它们可以添加给任何元素。本节介绍它们。
contenteditable
由Microsoft发明,经过反向工程后由所有其他的浏览器实现,contenteditable现在成为HTML的正式的部分。
contenteditable对浏览器来说意味着两件事情:首先,用户可以使用这一属性来编辑元素的内容,因此元素必须是可选取的,并且浏览器必须提供脱字符号以标记当前编辑位置;其次,对文档所做的修改会影响到指定为可选取和可编辑的元素的选取内容,即你可以让文本粗体、改变字体、添加列表、标题等。contenteditable是一个布尔类型的属性,因此你可以将其设置为true或false。尽管标记大小写是无关的,DOM属性必须是contentEditable(注意capital E)。DOM还有一个isContent- Editable来确定元素是否可编辑,因为contenteditable标志可能从一个父元素继承而来。
广州网站建设,网站建设,广州网页设计,广州网站设计
你也可以设置document.designMode ='on',(注意,不是‘true’)来使得整个文档都可以编辑。只有使用JavaScript才能做到。
最后,任何用户选择的(强调的)内容都有很多的命令可以对其运行,例如document.execCommand('bold')。通常将文本设置为粗体或斜体的键盘命令会影响到可编辑元素中的DOM。
如果你想要对CMS的某种形式使用contenteditable,可能需要在某些时候把修改保存到服务器。没有特定的API方法来做到这点,但是由于你的用户的修改已经改变了DOM,你需要把可编辑元素(或者如果使用designMode,需要把整个文档)的innerHTML送回到服务器,以保存到你的CMS中。
contextmenu
contextmenu和<menu>、<command>相关,而后者都不会在本书中介绍(参见后面的“本书中没有介绍的功能”一节)。
data-*
可以使用data-*属性把信息从标记传递到脚本。它可以是任何XML兼容的名称。参见本书第4章的介绍。
draggable
draggable表示该元素可以使用拖放 API进行拖动(参见本书第9章)。
hidden
这个属性类似于aria-hidden,它告诉浏览器这个元素的内容不应该以任何方式显示。它不仅隐藏内容,而且保持它“随时待命”,以防你可能稍后使用JavaScript来删除该属性并使该元素从隐藏的状态“跳出”。
引用规范(而不是试图进一步解释它):“隐藏的属性不能用来隐藏在其他显示中可能合法地显示的内容”。例如,对一个标签页对话框中隐藏的面板使用hidden就是不正确的,因为标签页界面只是一种溢出表现形式,某人可以使用带有滚动条的一个大页面来同样很好地显示所有的表单控件。类似地,使用这一属性只对一种表现隐藏内容也是不正确的,如果某些内容标记为hidden,它对所有的表现都隐藏,例如屏幕阅读器。
即便你知道稍后将要使用某些脚本编程来“不再隐藏”某些内容,但对待隐藏的内容,还是应该就好像它根本不存在一样。因此,不要添加指向隐藏的内容的链接,也不要使用aria-describedby或aria-labelledby把其他元素和它联系起来。
item、itemprop、subject
这些属性与微数据规范相关(参见后面的“本书中没有介绍的功能”一节),该主题在本书中没有介绍。
role、aria-* attributes
正如你已经见到过的,HTML 5把WAI-ARIA当作是语言的合法增加。
spellcheck
这个布尔属性告诉浏览器检查元素的拼写和语法。如果没有这个属性,默认的状态表示元素根据默认行为来操作,可能是根据父元素自己的spellcheck状态。
tabindex (="-1")
tabindex主要是一个旧的概念,它允许我们指定,当用户使用键盘导航一个页面的时候(通常使用Tab键,尽管某些浏览器,如最著名的Opera,可能使用不同的键组合来导航),页面上的元素获得焦点的顺序。
当站点使用深度嵌套的布局表格来构建时,这非常常用,但是如今这已经不再那么常用了。默认的标签页顺序是由元素出现在标记中的顺序来决定的,因此顺序正确和结构良好的文档应该不再需要额外的标签页顺序来提示。
广州网站建设,网站建设,广州网页设计,广州网站设计
然而,tabindex确实有一个有用之处。通常只有链接、表单元素和图像映射区域可以通过键盘获得聚焦。添加一个tabindex可以使得其他元素也成为可聚焦的,因此从JavaScript执行focus()命令,就可以把浏览器的焦点移动到它们。这也会使得这些元素成为键盘可聚焦的,这可不是我们想要的结果。
使用一个负整数(按照惯例,tabindex="-1")允许元素通过编程来获得焦点,但是不应该允许使用顺序聚焦导航来到达元素。
在克服IE中的一个Bug的时候,这很有用,在某些情况下,像标题这样的元素是页内链接的目标,但对于屏幕阅读器来说又无法获得焦点,导致信息成为不可访问的(参见www.juicystudio.com/article/ie-keyboard-navigation.php了解更多信息)。在HTML 4中“-1”对于属性来说是一个无效的值,并且在除表单字段和链接以外的任何元素上,该属性自身也是无效的。然而它现在在浏览器中生效了,并且它解决了一个真正的问题,HTML 5使其变为到处合法有效。



